From 7527a4c9ceca07d5e6d949dfc9807b0ec4c15a5d Mon Sep 17 00:00:00 2001 From: openEO CI Date: Fri, 24 Jan 2025 21:09:53 +0000 Subject: [PATCH] deploy: 6d7d37f49b5346ad03675931e5341d687b8e4f17 --- css/{1485.09203724.css => 1485.e0b5a390.css} | 2 +- css/{1694.948a160d.css => 1694.cb3d0aea.css} | 2 +- css/1765.be9db0fd.css | 6 ------ css/1765.df87f4cd.css | 6 ++++++ css/2388.16242cfc.css | 6 ++++++ css/2388.b2b0c7da.css | 6 ------ css/6709.de23863b.css | 1 - css/6709.def3a5a5.css | 1 + css/{9403.3c3c478b.css => 9403.10c1c477.css} | 2 +- index.html | 2 +- js/1160.ae29cd40.js | 2 -- js/1160.ae29cd40.js.map | 1 - js/1160.f8da4afe.js | 2 ++ js/1160.f8da4afe.js.map | 1 + js/{1485.92fba867.js => 1485.fbaeda97.js} | 2 +- js/{1485.92fba867.js.map => 1485.fbaeda97.js.map} | 2 +- js/{2668.4da4ee01.js => 2668.5aac89cc.js} | 2 +- js/{2668.4da4ee01.js.map => 2668.5aac89cc.js.map} | 2 +- js/{3298.88b3bce8.js => 3298.57f5c4ef.js} | 2 +- js/{3298.88b3bce8.js.map => 3298.57f5c4ef.js.map} | 2 +- js/{3592.ef09860c.js => 3592.6df6431f.js} | 2 +- js/{3592.ef09860c.js.map => 3592.6df6431f.js.map} | 2 +- js/{4111.38310551.js => 4111.ce83ebbc.js} | 2 +- js/{4111.38310551.js.map => 4111.ce83ebbc.js.map} | 2 +- js/{4285.90f10343.js => 4285.dac135b5.js} | 2 +- js/{4285.90f10343.js.map => 4285.dac135b5.js.map} | 2 +- js/4394.d94fc855.js | 2 ++ js/4394.d94fc855.js.map | 1 + js/4394.f147b645.js | 2 -- js/4394.f147b645.js.map | 1 - js/{4710.5c91b0d3.js => 4710.b471ae93.js} | 2 +- js/{4710.5c91b0d3.js.map => 4710.b471ae93.js.map} | 2 +- js/{510.9d459a06.js => 510.5a6e3195.js} | 2 +- js/{510.9d459a06.js.map => 510.5a6e3195.js.map} | 2 +- js/{552.3b4e55e2.js => 552.03d86df0.js} | 2 +- js/{552.3b4e55e2.js.map => 552.03d86df0.js.map} | 2 +- js/{768.8ff8aaf2.js => 768.e71c0931.js} | 2 +- js/{768.8ff8aaf2.js.map => 768.e71c0931.js.map} | 2 +- js/{8396.80d94f20.js => 8396.6387c5ef.js} | 2 +- js/{8396.80d94f20.js.map => 8396.6387c5ef.js.map} | 2 +- js/{887.575d445d.js => 887.10ec50ff.js} | 2 +- js/{887.575d445d.js.map => 887.10ec50ff.js.map} | 2 +- js/{9882.aa162fda.js => 9882.0cfed7b6.js} | 2 +- js/{9882.aa162fda.js.map => 9882.0cfed7b6.js.map} | 2 +- js/{app.7eddb026.js => app.c3a32488.js} | 4 ++-- js/{app.7eddb026.js.map => app.c3a32488.js.map} | 2 +- js/chunk-vendors-8cbd2506.ad3b4085.js | 6 ++++++ js/chunk-vendors-8cbd2506.ad3b4085.js.map | 1 + js/chunk-vendors-8cbd2506.e713aa87.js | 6 ------ js/chunk-vendors-8cbd2506.e713aa87.js.map | 1 - 50 files changed, 59 insertions(+), 59 deletions(-) rename css/{1485.09203724.css => 1485.e0b5a390.css} (57%) rename css/{1694.948a160d.css => 1694.cb3d0aea.css} (62%) delete mode 100644 css/1765.be9db0fd.css create mode 100644 css/1765.df87f4cd.css create mode 100644 css/2388.16242cfc.css delete mode 100644 css/2388.b2b0c7da.css delete mode 100644 css/6709.de23863b.css create mode 100644 css/6709.def3a5a5.css rename css/{9403.3c3c478b.css => 9403.10c1c477.css} (65%) delete mode 100644 js/1160.ae29cd40.js delete mode 100644 js/1160.ae29cd40.js.map create mode 100644 js/1160.f8da4afe.js create mode 100644 js/1160.f8da4afe.js.map rename js/{1485.92fba867.js => 1485.fbaeda97.js} (99%) rename js/{1485.92fba867.js.map => 1485.fbaeda97.js.map} (99%) rename js/{2668.4da4ee01.js => 2668.5aac89cc.js} (99%) rename js/{2668.4da4ee01.js.map => 2668.5aac89cc.js.map} (99%) rename js/{3298.88b3bce8.js => 3298.57f5c4ef.js} (99%) rename js/{3298.88b3bce8.js.map => 3298.57f5c4ef.js.map} (99%) rename js/{3592.ef09860c.js => 3592.6df6431f.js} (98%) rename js/{3592.ef09860c.js.map => 3592.6df6431f.js.map} (99%) rename js/{4111.38310551.js => 4111.ce83ebbc.js} (99%) rename js/{4111.38310551.js.map => 4111.ce83ebbc.js.map} (99%) rename js/{4285.90f10343.js => 4285.dac135b5.js} (99%) rename js/{4285.90f10343.js.map => 4285.dac135b5.js.map} (99%) create mode 100644 js/4394.d94fc855.js create mode 100644 js/4394.d94fc855.js.map delete mode 100644 js/4394.f147b645.js delete mode 100644 js/4394.f147b645.js.map rename js/{4710.5c91b0d3.js => 4710.b471ae93.js} (99%) rename js/{4710.5c91b0d3.js.map => 4710.b471ae93.js.map} (99%) rename js/{510.9d459a06.js => 510.5a6e3195.js} (99%) rename js/{510.9d459a06.js.map => 510.5a6e3195.js.map} (99%) rename js/{552.3b4e55e2.js => 552.03d86df0.js} (99%) rename js/{552.3b4e55e2.js.map => 552.03d86df0.js.map} (99%) rename js/{768.8ff8aaf2.js => 768.e71c0931.js} (97%) rename js/{768.8ff8aaf2.js.map => 768.e71c0931.js.map} (98%) rename js/{8396.80d94f20.js => 8396.6387c5ef.js} (98%) rename js/{8396.80d94f20.js.map => 8396.6387c5ef.js.map} (99%) rename js/{887.575d445d.js => 887.10ec50ff.js} (99%) rename js/{887.575d445d.js.map => 887.10ec50ff.js.map} (99%) rename js/{9882.aa162fda.js => 9882.0cfed7b6.js} (99%) rename js/{9882.aa162fda.js.map => 9882.0cfed7b6.js.map} (99%) rename js/{app.7eddb026.js => app.c3a32488.js} (97%) rename js/{app.7eddb026.js.map => app.c3a32488.js.map} (99%) create mode 100644 js/chunk-vendors-8cbd2506.ad3b4085.js create mode 100644 js/chunk-vendors-8cbd2506.ad3b4085.js.map delete mode 100644 js/chunk-vendors-8cbd2506.e713aa87.js delete mode 100644 js/chunk-vendors-8cbd2506.e713aa87.js.map diff --git a/css/1485.09203724.css b/css/1485.e0b5a390.css similarity index 57% rename from css/1485.09203724.css rename to css/1485.e0b5a390.css index 8ed1c451..24758cb9 100644 --- a/css/1485.09203724.css +++ b/css/1485.e0b5a390.css @@ -4,4 +4,4 @@ * A geocoder extension compatible with OpenLayers v7. * https://github.com/kirtan-desai/ol-geocoder * Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time) - */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-control.ol-timeline{bottom:0;left:0;right:0;transition:.3s;background-color:#fff6}.ol-control.ol-timeline.ol-collapsed{transform:translateY(100%)}.ol-timeline{overflow:hidden;padding:2px 0 0}.ol-timeline .ol-scroll{overflow:hidden;padding:0;scroll-behavior:smooth;line-height:1em;height:6em;padding:0 50%}.ol-timeline .ol-scroll.ol-move{scroll-behavior:unset}.ol-timeline.ol-hasbutton .ol-scroll{margin-left:1.5em;padding:0 calc(50% - .75em)}.ol-timeline .ol-buttons{display:none;position:absolute;top:0;background:#ffffff80;width:1.5em;bottom:0;left:0;z-index:10}.ol-timeline.ol-hasbutton .ol-buttons{display:block}.ol-timeline .ol-buttons button{font-size:1em;margin:1px;position:relative}.ol-timeline .ol-buttons .ol-zoom-in:before,.ol-timeline .ol-buttons .ol-zoom-out:before{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ol-timeline .ol-buttons .ol-zoom-out:before{content:"−"}.ol-timeline .ol-scroll>div{height:100%;position:relative}.ol-timeline .ol-scroll .ol-times{background:#ffffff80;height:1em;bottom:0;position:absolute;left:-1000px;right:-1000px}.ol-timeline .ol-scroll .ol-time{position:absolute;font-size:.7em;color:#999;bottom:0;transform:translateX(-50%)}.ol-timeline .ol-scroll .ol-time.ol-year{color:#666;z-index:1}.ol-timeline .ol-scroll .ol-time:before{content:"";position:absolute;bottom:1.2em;left:50%;height:500px;border-left:1px solid currentColor}.ol-timeline .ol-scroll .ol-features{position:absolute;top:0;bottom:1em;left:-200px;right:-1000px;margin:0 0 0 200px;overflow:hidden}.ol-timeline .ol-scroll .ol-feature{position:absolute;font-size:.7em;color:#999;top:0;background:#fff;max-width:3em;max-height:2.4em;min-height:1em;line-height:1.2em;border:1px solid #ccc;overflow:hidden;padding:0 .5em 0 0;transition:all .3s;cursor:pointer;box-sizing:border-box}.ol-timeline.ol-zoomhover .ol-scroll .ol-feature.ol-select,.ol-timeline.ol-zoomhover .ol-scroll .ol-feature:hover{z-index:1;transform:scale(1.2);background:#eee}.ol-timeline .ol-center-date{display:none;position:absolute;left:50%;height:100%;width:2px;bottom:0;z-index:2;pointer-events:none;transform:translateX(-50%);background-color:red;opacity:.4}.ol-timeline.ol-hasbutton .ol-center-date{left:calc(50% + .75em)}.ol-timeline.ol-pointer .ol-center-date{display:block}.ol-timeline.ol-pointer .ol-center-date:after,.ol-timeline.ol-pointer .ol-center-date:before{content:"";border:.3em solid #0000;border-width:.3em .25em;position:absolute;left:50%;transform:translateX(-50%)}.ol-timeline.ol-pointer .ol-center-date:before{border-top-color:red;top:0}.ol-timeline.ol-pointer .ol-center-date:after{border-bottom-color:red;bottom:0}.ol-timeline.ol-interval .ol-center-date{display:block;background-color:initial;border:0 solid #000;border-width:0 10000px;box-sizing:initial;opacity:.2}.ol-swipe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);touch-action:none}.ol-swipe:before{content:"";position:absolute;top:-5000px;bottom:-5000px;left:50%;width:4px;background:#fff;z-index:-1;transform:translate(-2px)}.ol-swipe.horizontal:before{left:-5000px;right:-5000px;top:50%;bottom:auto;width:auto;height:4px}.ol-swipe,.ol-swipe button{cursor:ew-resize}.ol-swipe.horizontal,.ol-swipe.horizontal button{cursor:ns-resize}.ol-swipe button:after,.ol-swipe button:before,.ol-swipe:after{content:"";position:absolute;top:25%;bottom:25%;left:50%;width:2px;background:currentColor;transform:translate(-1px);-webkit-transform:translate(-1px)}.ol-swipe button:after{transform:translateX(4px)}.ol-swipe button:before{transform:translateX(-6px)}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.map-viewer{position:relative}.map-viewer .map-loading{position:absolute;top:0;left:0;background-color:#0009;width:100%;height:100%;z-index:9999;color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column}.map-viewer .map-loading>i{font-size:2em}.ol-control.geotiff-channels{bottom:calc(22px + 1em);right:8px;position:absolute;max-height:150px;overflow-y:auto}#chart{position:relative}#chart .close{position:absolute;top:0;right:.5em;padding:.5em;cursor:pointer;color:#000}#chart .close:hover{color:red} \ No newline at end of file + */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{width:0;height:0;opacity:0}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher li:has(>div>[type=checkbox]:focus),.ol-layerswitcher li:has(>div>[type=radio]:focus){border-color:#369;box-shadow:inset 0 0 0 1px #369}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-control.ol-timeline{bottom:0;left:0;right:0;transition:.3s;background-color:#fff6}.ol-control.ol-timeline.ol-collapsed{transform:translateY(100%)}.ol-timeline{overflow:hidden;padding:2px 0 0}.ol-timeline .ol-scroll{overflow:hidden;padding:0;scroll-behavior:smooth;line-height:1em;height:6em;padding:0 50%}.ol-timeline .ol-scroll.ol-move{scroll-behavior:unset}.ol-timeline.ol-hasbutton .ol-scroll{margin-left:1.5em;padding:0 calc(50% - .75em)}.ol-timeline .ol-buttons{display:none;position:absolute;top:0;background:#ffffff80;width:1.5em;bottom:0;left:0;z-index:10}.ol-timeline.ol-hasbutton .ol-buttons{display:block}.ol-timeline .ol-buttons button{font-size:1em;margin:1px;position:relative}.ol-timeline .ol-buttons .ol-zoom-in:before,.ol-timeline .ol-buttons .ol-zoom-out:before{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ol-timeline .ol-buttons .ol-zoom-out:before{content:"−"}.ol-timeline .ol-scroll>div{height:100%;position:relative}.ol-timeline .ol-scroll .ol-times{background:#ffffff80;height:1em;bottom:0;position:absolute;left:-1000px;right:-1000px}.ol-timeline .ol-scroll .ol-time{position:absolute;font-size:.7em;color:#999;bottom:0;transform:translateX(-50%)}.ol-timeline .ol-scroll .ol-time.ol-year{color:#666;z-index:1}.ol-timeline .ol-scroll .ol-time:before{content:"";position:absolute;bottom:1.2em;left:50%;height:500px;border-left:1px solid currentColor}.ol-timeline .ol-scroll .ol-features{position:absolute;top:0;bottom:1em;left:-200px;right:-1000px;margin:0 0 0 200px;overflow:hidden}.ol-timeline .ol-scroll .ol-feature{position:absolute;font-size:.7em;color:#999;top:0;background:#fff;max-width:3em;max-height:2.4em;min-height:1em;line-height:1.2em;border:1px solid #ccc;overflow:hidden;padding:0 .5em 0 0;transition:all .3s;cursor:pointer;box-sizing:border-box}.ol-timeline.ol-zoomhover .ol-scroll .ol-feature.ol-select,.ol-timeline.ol-zoomhover .ol-scroll .ol-feature:hover{z-index:1;transform:scale(1.2);background:#eee}.ol-timeline .ol-center-date{display:none;position:absolute;left:50%;height:100%;width:2px;bottom:0;z-index:2;pointer-events:none;transform:translateX(-50%);background-color:red;opacity:.4}.ol-timeline.ol-hasbutton .ol-center-date{left:calc(50% + .75em)}.ol-timeline.ol-pointer .ol-center-date{display:block}.ol-timeline.ol-pointer .ol-center-date:after,.ol-timeline.ol-pointer .ol-center-date:before{content:"";border:.3em solid #0000;border-width:.3em .25em;position:absolute;left:50%;transform:translateX(-50%)}.ol-timeline.ol-pointer .ol-center-date:before{border-top-color:red;top:0}.ol-timeline.ol-pointer .ol-center-date:after{border-bottom-color:red;bottom:0}.ol-timeline.ol-interval .ol-center-date{display:block;background-color:initial;border:0 solid #000;border-width:0 10000px;box-sizing:initial;opacity:.2}.ol-swipe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);touch-action:none}.ol-swipe:before{content:"";position:absolute;top:-5000px;bottom:-5000px;left:50%;width:4px;background:#fff;z-index:-1;transform:translate(-2px)}.ol-swipe.horizontal:before{left:-5000px;right:-5000px;top:50%;bottom:auto;width:auto;height:4px}.ol-swipe,.ol-swipe button{cursor:ew-resize}.ol-swipe.horizontal,.ol-swipe.horizontal button{cursor:ns-resize}.ol-swipe button:after,.ol-swipe button:before,.ol-swipe:after{content:"";position:absolute;top:25%;bottom:25%;left:50%;width:2px;background:currentColor;transform:translate(-1px);-webkit-transform:translate(-1px)}.ol-swipe button:after{transform:translateX(4px)}.ol-swipe button:before{transform:translateX(-6px)}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.map-viewer{position:relative}.map-viewer .map-loading{position:absolute;top:0;left:0;background-color:#0009;width:100%;height:100%;z-index:9999;color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column}.map-viewer .map-loading>i{font-size:2em}.ol-control.geotiff-channels{bottom:calc(22px + 1em);right:8px;position:absolute;max-height:150px;overflow-y:auto}#chart{position:relative}#chart .close{position:absolute;top:0;right:.5em;padding:.5em;cursor:pointer;color:#000}#chart .close:hover{color:red} \ No newline at end of file diff --git a/css/1694.948a160d.css b/css/1694.cb3d0aea.css similarity index 62% rename from css/1694.948a160d.css rename to css/1694.cb3d0aea.css index 79bbe2f8..72c329a9 100644 --- a/css/1694.948a160d.css +++ b/css/1694.cb3d0aea.css @@ -4,4 +4,4 @@ * A geocoder extension compatible with OpenLayers v7. * https://github.com/kirtan-desai/ol-geocoder * Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time) - */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.ol-control i{cursor:default}.ol-control.ol-bar{left:50%;min-height:1em;min-width:1em;position:absolute;top:.5em;transform:translate(-50%);-webkit-transform:translate(-50%);white-space:nowrap}.ol-control.ol-toggle .ol-option-bar{display:none}.ol-control.ol-bar .ol-control{position:relative;top:auto;left:auto;right:auto;bottom:auto;display:inline-block;vertical-align:middle;background-color:initial;padding:0;margin:0;transform:none;-webkit-transform:none}.ol-control.ol-bar .ol-bar{position:static}.ol-control.ol-bar .ol-control button{margin:2px 1px;outline:none}.ol-control.ol-bar.ol-left{left:.5em;top:50%;transform:translateY(-50%)}.ol-control.ol-bar.ol-left .ol-control{display:block}.ol-control.ol-bar.ol-right{left:auto;right:.5em;top:50%;transform:translateY(-50%)}.ol-control.ol-bar.ol-right .ol-control{display:block}.ol-control.ol-bar.ol-bottom{top:auto;bottom:.5em}.ol-control.ol-bar.ol-top.ol-left,.ol-control.ol-bar.ol-top.ol-right{top:4.5em;transform:none}.ol-touch .ol-control.ol-bar.ol-top.ol-left,.ol-touch .ol-control.ol-bar.ol-top.ol-right{top:5.5em}.ol-control.ol-bar.ol-bottom.ol-left,.ol-control.ol-bar.ol-bottom.ol-right{top:auto;bottom:.5em;transform:none}.ol-control.ol-bar.ol-group{margin:1px 1px 1px 0}.ol-control.ol-bar.ol-left .ol-group,.ol-control.ol-bar.ol-right .ol-group{margin:1px 1px 0 1px}.ol-control.ol-bar.ol-group button{border-radius:0;margin:0 0 0 1px}.ol-control.ol-bar.ol-left .ol-group button,.ol-control.ol-bar.ol-left.ol-group button,.ol-control.ol-bar.ol-right .ol-group button,.ol-control.ol-bar.ol-right.ol-group button{margin:0 0 1px 0}.ol-control.ol-bar.ol-group .ol-control:first-child>button{border-radius:5px 0 0 5px}.ol-control.ol-bar.ol-group .ol-control:last-child>button{border-radius:0 5px 5px 0}.ol-control.ol-bar.ol-left .ol-group .ol-control:first-child>button,.ol-control.ol-bar.ol-left.ol-group .ol-control:first-child>button,.ol-control.ol-bar.ol-right .ol-group .ol-control:first-child>button,.ol-control.ol-bar.ol-right.ol-group .ol-control:first-child>button{border-radius:5px 5px 0 0}.ol-control.ol-bar.ol-left .ol-group .ol-control:last-child>button,.ol-control.ol-bar.ol-left.ol-group .ol-control:last-child>button,.ol-control.ol-bar.ol-right .ol-group .ol-control:last-child>button,.ol-control.ol-bar.ol-right.ol-group .ol-control:last-child>button{border-radius:0 0 5px 5px}.ol-control.ol-bar .ol-rotate{opacity:1;visibility:visible}.ol-control.ol-bar .ol-rotate button{display:block}.ol-control.ol-bar .ol-toggle.ol-active button:hover,.ol-control.ol-bar .ol-toggle.ol-active>button{background-color:#0af;color:#fff}.ol-control.ol-toggle button:disabled{background-color:#ccc}.ol-control.ol-bar .ol-control.ol-option-bar{display:none;position:absolute;top:100%;left:0;margin:5px 0;border-radius:0;background-color:#fffc;box-shadow:0 0 0 1px #003c8880,1px 1px 2px #00000080}.ol-control.ol-bar .ol-option-bar:before{content:"";border:.5em solid #0000;border-color:#0000 #0000 #003c8880;position:absolute;bottom:100%;left:.3em;pointer-events:none}.ol-control.ol-bar .ol-option-bar .ol-control{display:table-cell}.ol-control.ol-bar .ol-control .ol-bar{display:none}.ol-control.ol-bar .ol-control.ol-active>.ol-option-bar{display:block}.ol-control.ol-bar .ol-control.ol-collapsed ul{display:none}.ol-control.ol-bar .ol-control.ol-text-button>div,.ol-control.ol-bar .ol-control.ol-text-button>div:hover{background-color:initial;color:#003c8880;width:auto;min-width:1.375em;margin:0}.ol-control.ol-bar .ol-control.ol-text-button{font-size:.9em;border-left:1px solid #003c88cc;border-radius:0}.ol-control.ol-bar .ol-control.ol-text-button:first-child{border-left:0}.ol-control.ol-bar .ol-control.ol-text-button>div{padding:.11em .3em;font-weight:400;font-size:1.14em;font-family:Arial,Helvetica,sans-serif}.ol-control.ol-bar .ol-control.ol-text-button div:hover{color:#003c88}.ol-control.ol-bar.ol-bottom .ol-option-bar{top:auto;bottom:100%}.ol-control.ol-bar.ol-bottom .ol-option-bar:before{border-color:#003c8880 #0000 #0000;bottom:auto;top:100%}.ol-control.ol-bar.ol-left .ol-option-bar{left:100%;top:0;bottom:auto;margin:0 5px}.ol-control.ol-bar.ol-left .ol-option-bar:before{border-color:#0000 #003c8880 #0000 #0000;bottom:auto;right:100%;left:auto;top:.3em}.ol-control.ol-bar.ol-right .ol-option-bar{right:100%;left:auto;top:0;bottom:auto;margin:0 5px}.ol-control.ol-bar.ol-right .ol-option-bar:before{border-color:#0000 #0000 #0000 #003c8880;bottom:auto;left:100%;top:.3em}.ol-control.ol-bar.ol-left .ol-option-bar .ol-option-bar,.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar{top:100%;bottom:auto;left:.3em;right:auto;margin:5px 0}.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar{right:.3em;left:auto}.ol-control.ol-bar.ol-left .ol-option-bar .ol-option-bar:before,.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar:before{border-color:#0000 #0000 #003c8880;bottom:100%;top:auto;left:.3em;right:auto}.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar:before{right:.3em;left:auto}.ol-editbar .ol-button button{position:relative;display:inline-block;font-style:normal;box-sizing:border-box;vertical-align:middle}.ol-editbar .ol-button button:after,.ol-editbar .ol-button button:before{content:"";border-width:0;position:absolute;box-sizing:border-box;background-color:currentColor}.ol-editbar .ol-button button:focus{outline:none}.ol-editbar .ol-selection>button:before{width:.6em;height:1em;background-color:initial;border:.5em solid currentColor;border-width:0 .25em .65em;border-color:currentColor #0000;box-shadow:0 .6em 0 -.23em;top:.35em;left:.5em;transform:translate(-50%,-50%) rotate(-30deg)}.ol-editbar .ol-selection0>button:after{width:.28em;height:.6em;background-color:initial;border:.5em solid currentColor;border-width:0 .05em .7em;border-color:currentColor #0000;top:.5em;left:.7em;transform:rotate(-45deg)}.ol-editbar .ol-delete button:after,.ol-editbar .ol-delete button:before{width:1em;height:.2em;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg)}.ol-editbar .ol-delete button:after{transform:translate(-50%,-50%) rotate(-45deg)}.ol-editbar .ol-info button:before{width:.25em;height:.6em;border-radius:.03em;top:.47em;left:50%;transform:translateX(-50%)}.ol-editbar .ol-info button:after{width:.25em;height:.2em;border-radius:.03em;box-shadow:-.1em .35em,-.1em .82em,.1em .82em;top:.12em;left:50%;transform:translateX(-50%)}.ol-editbar .ol-drawpoint button:before{width:.7em;height:.7em;border-radius:50%;top:.2em}.ol-editbar .ol-drawpoint button:after,.ol-editbar .ol-drawpoint button:before{border:.15em solid currentColor;background-color:initial;left:50%;transform:translateX(-50%)}.ol-editbar .ol-drawpoint button:after{width:.4em;height:.4em;border-color:currentColor #0000;border-width:.4em .2em 0;top:.8em}.ol-editbar .ol-drawhole>button:before,.ol-editbar .ol-drawline>button:before,.ol-editbar .ol-drawpolygon>button:before{width:.8em;height:.8em;border:.13em solid currentColor;background-color:initial;border-width:.2em .13em .09em;top:.2em;left:.25em;transform:rotate(10deg) perspective(1em) rotateX(40deg)}.ol-editbar .ol-drawline>button:before{border-bottom:0}.ol-editbar .ol-drawhole>button:after,.ol-editbar .ol-drawline>button:after,.ol-editbar .ol-drawpolygon>button:after{width:.3em;height:.3em;top:.2em;left:.25em;box-shadow:-.2em .55em,.6em .1em,.65em .7em}.ol-editbar .ol-drawhole>button:after{box-shadow:-.2em .55em,.6em .1em,.65em .7em,.25em .35em}.ol-editbar .ol-offset>button i,.ol-editbar .ol-transform>button i{position:absolute;width:.9em;height:.9em;overflow:hidden;top:50%;left:50%;transform:translate(-50%,-50%)}.ol-editbar .ol-offset>button i{width:.8em;height:.8em}.ol-editbar .ol-offset>button i:before,.ol-editbar .ol-transform>button i:after,.ol-editbar .ol-transform>button i:before{content:"";height:1em;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg);box-shadow:.5em 0 0 .1em,-.5em 0 0 .1em;width:.1em;position:absolute;background-color:currentColor}.ol-editbar .ol-offset>button i:before{box-shadow:.45em 0 0 .1em,-.45em 0 0 .1em}.ol-editbar .ol-transform>button i:after{transform:translate(-50%,-50%) rotate(-45deg)}.ol-editbar .ol-split>button:before{width:.3em;height:.3em;top:.81em;left:.75em;border-radius:50%;box-shadow:.1em -.4em,-.15em -.25em}.ol-editbar .ol-split>button:after{width:.8em;height:.8em;top:.15em;left:-.1em;border:.1em solid currentColor;border-width:0 .2em .2em 0;background-color:initial;border-radius:.1em;transform:rotate(20deg) scaleY(.6) rotate(-45deg)}.ol-editbar .ol-drawregular>button:before{width:.9em;height:.9em;top:50%;left:50%;border:.1em solid currentColor;background-color:initial;transform:translate(-50%,-50%)}.ol-editbar .ol-drawregular .ol-bar .ol-text-button>div>div>div{border:.5em solid currentColor;border-color:#0000 currentColor;display:inline-block;cursor:pointer;vertical-align:text-bottom}.ol-control.ol-bar.ol-editbar .ol-drawregular .ol-bar,.ol-editbar .ol-drawregular .ol-bar:before{left:50%;transform:translateX(-50%)}.ol-editbar .ol-drawregular .ol-bar .ol-text-button{min-width:6em;text-align:center}.ol-editbar .ol-drawregular .ol-bar .ol-text-button>div>div>div:first-child{border-width:.5em .5em .5em 0;margin:0 .5em 0 0}.ol-editbar .ol-drawregular .ol-bar .ol-text-button>div>div>div:last-child{border-width:.5em 0 .5em .5em;margin:0 0 0 .5em}.geojson-map-editor{height:100%}.geojson-editor[data-v-6d150dd6]{max-width:100%;display:flex;flex-direction:column}.info[data-v-6d150dd6]{display:block;text-align:center;font-style:italic;color:#555;margin-top:.5em}.areaSelector[data-v-0b98f1e9],.geoJsonEditor[data-v-0b98f1e9]{height:500px;flex-grow:1}.textarea[data-v-0b98f1e9]{width:100%;height:250px}.externalData span[data-v-0b98f1e9]{display:inline-block;background-color:#ddd;padding:2px 5px;border-radius:3px}.externalData tt[data-v-0b98f1e9]{font-size:1.1em;font-weight:700}.callbackEditor[data-v-0b98f1e9]{height:450px;min-width:50px;width:100%}.fieldContainer .description{display:flex;align-items:center;font-size:.9em;margin-bottom:10px}.fieldContainer .description .fas{margin-right:.5em}.fieldContainer .description p{margin:0}.fieldContainer .dataTypeChooser{margin-bottom:10px}.deleteBtn[data-v-e173c10e]{margin-left:10px}.parameters .fieldRow{display:flex;padding-top:1em;margin-top:1em;border-top:1px dotted #ccc}.parameters .fieldRow:first-of-type{border:0;margin:0;padding:0}.parameters .fieldRow .description{font-size:.8em;width:100%}.parameters .fieldRow .required{color:red;font-weight:700}.parameters .fieldRow .fieldLabel{min-width:30%;width:30%;padding-right:1em}.parameters .fieldRow .fieldLabel.highlight{width:calc(35% - 5px);border-left:5px solid #1665b6;padding-left:5px}.parameters .fieldRow .fieldLabel.info{width:100%}.parameters .fieldRow .fieldEditorContainer{flex-grow:1;display:flex}.parameters .fieldRow .fieldContainer{min-width:50%;width:70%;flex-grow:1}.parameters .fieldRow .fieldValue{display:flex;flex-grow:1}.parameters .fieldRow .fieldValue input,.parameters .fieldRow .fieldValue select,.parameters .fieldRow .fieldValue textarea{flex-grow:1;width:100%}.parameters .fieldRow input[type=checkbox].fieldValue{display:inline-block;flex-grow:unset}.parameters .description .styled-description{line-height:1.1em}.parameters .description .styled-description p{margin:.2em 0} \ No newline at end of file + */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{width:0;height:0;opacity:0}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher li:has(>div>[type=checkbox]:focus),.ol-layerswitcher li:has(>div>[type=radio]:focus){border-color:#369;box-shadow:inset 0 0 0 1px #369}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.ol-control i{cursor:default}.ol-control.ol-bar{left:50%;min-height:1em;min-width:1em;position:absolute;top:.5em;transform:translate(-50%);-webkit-transform:translate(-50%);white-space:nowrap}.ol-control.ol-toggle .ol-option-bar{display:none}.ol-control.ol-bar .ol-control{position:relative;top:auto;left:auto;right:auto;bottom:auto;display:inline-block;vertical-align:middle;background-color:initial;padding:0;margin:0;transform:none;-webkit-transform:none}.ol-control.ol-bar .ol-bar{position:static}.ol-control.ol-bar .ol-control button{margin:2px 1px;outline:none}.ol-control.ol-bar.ol-left{left:.5em;top:50%;transform:translateY(-50%)}.ol-control.ol-bar.ol-left .ol-control{display:block}.ol-control.ol-bar.ol-right{left:auto;right:.5em;top:50%;transform:translateY(-50%)}.ol-control.ol-bar.ol-right .ol-control{display:block}.ol-control.ol-bar.ol-bottom{top:auto;bottom:.5em}.ol-control.ol-bar.ol-top.ol-left,.ol-control.ol-bar.ol-top.ol-right{top:4.5em;transform:none}.ol-touch .ol-control.ol-bar.ol-top.ol-left,.ol-touch .ol-control.ol-bar.ol-top.ol-right{top:5.5em}.ol-control.ol-bar.ol-bottom.ol-left,.ol-control.ol-bar.ol-bottom.ol-right{top:auto;bottom:.5em;transform:none}.ol-control.ol-bar.ol-group{margin:1px 1px 1px 0}.ol-control.ol-bar.ol-left .ol-group,.ol-control.ol-bar.ol-right .ol-group{margin:1px 1px 0 1px}.ol-control.ol-bar.ol-group button{border-radius:0;margin:0 0 0 1px}.ol-control.ol-bar.ol-left .ol-group button,.ol-control.ol-bar.ol-left.ol-group button,.ol-control.ol-bar.ol-right .ol-group button,.ol-control.ol-bar.ol-right.ol-group button{margin:0 0 1px 0}.ol-control.ol-bar.ol-group .ol-control:first-child>button{border-radius:5px 0 0 5px}.ol-control.ol-bar.ol-group .ol-control:last-child>button{border-radius:0 5px 5px 0}.ol-control.ol-bar.ol-left .ol-group .ol-control:first-child>button,.ol-control.ol-bar.ol-left.ol-group .ol-control:first-child>button,.ol-control.ol-bar.ol-right .ol-group .ol-control:first-child>button,.ol-control.ol-bar.ol-right.ol-group .ol-control:first-child>button{border-radius:5px 5px 0 0}.ol-control.ol-bar.ol-left .ol-group .ol-control:last-child>button,.ol-control.ol-bar.ol-left.ol-group .ol-control:last-child>button,.ol-control.ol-bar.ol-right .ol-group .ol-control:last-child>button,.ol-control.ol-bar.ol-right.ol-group .ol-control:last-child>button{border-radius:0 0 5px 5px}.ol-control.ol-bar .ol-rotate{opacity:1;visibility:visible}.ol-control.ol-bar .ol-rotate button{display:block}.ol-control.ol-bar .ol-toggle.ol-active button:hover,.ol-control.ol-bar .ol-toggle.ol-active>button{background-color:#0af;color:#fff}.ol-control.ol-toggle button:disabled{background-color:#ccc}.ol-control.ol-bar .ol-control.ol-option-bar{display:none;position:absolute;top:100%;left:0;margin:5px 0;border-radius:0;background-color:#fffc;box-shadow:0 0 0 1px #003c8880,1px 1px 2px #00000080}.ol-control.ol-bar .ol-option-bar:before{content:"";border:.5em solid #0000;border-color:#0000 #0000 #003c8880;position:absolute;bottom:100%;left:.3em;pointer-events:none}.ol-control.ol-bar .ol-option-bar .ol-control{display:table-cell}.ol-control.ol-bar .ol-control .ol-bar{display:none}.ol-control.ol-bar .ol-control.ol-active>.ol-option-bar{display:block}.ol-control.ol-bar .ol-control.ol-collapsed ul{display:none}.ol-control.ol-bar .ol-control.ol-text-button>div,.ol-control.ol-bar .ol-control.ol-text-button>div:hover{background-color:initial;color:#003c8880;width:auto;min-width:1.375em;margin:0}.ol-control.ol-bar .ol-control.ol-text-button{font-size:.9em;border-left:1px solid #003c88cc;border-radius:0}.ol-control.ol-bar .ol-control.ol-text-button:first-child{border-left:0}.ol-control.ol-bar .ol-control.ol-text-button>div{padding:.11em .3em;font-weight:400;font-size:1.14em;font-family:Arial,Helvetica,sans-serif}.ol-control.ol-bar .ol-control.ol-text-button div:hover{color:#003c88}.ol-control.ol-bar.ol-bottom .ol-option-bar{top:auto;bottom:100%}.ol-control.ol-bar.ol-bottom .ol-option-bar:before{border-color:#003c8880 #0000 #0000;bottom:auto;top:100%}.ol-control.ol-bar.ol-left .ol-option-bar{left:100%;top:0;bottom:auto;margin:0 5px}.ol-control.ol-bar.ol-left .ol-option-bar:before{border-color:#0000 #003c8880 #0000 #0000;bottom:auto;right:100%;left:auto;top:.3em}.ol-control.ol-bar.ol-right .ol-option-bar{right:100%;left:auto;top:0;bottom:auto;margin:0 5px}.ol-control.ol-bar.ol-right .ol-option-bar:before{border-color:#0000 #0000 #0000 #003c8880;bottom:auto;left:100%;top:.3em}.ol-control.ol-bar.ol-left .ol-option-bar .ol-option-bar,.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar{top:100%;bottom:auto;left:.3em;right:auto;margin:5px 0}.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar{right:.3em;left:auto}.ol-control.ol-bar.ol-left .ol-option-bar .ol-option-bar:before,.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar:before{border-color:#0000 #0000 #003c8880;bottom:100%;top:auto;left:.3em;right:auto}.ol-control.ol-bar.ol-right .ol-option-bar .ol-option-bar:before{right:.3em;left:auto}.ol-editbar .ol-button button{position:relative;display:inline-block;font-style:normal;box-sizing:border-box;vertical-align:middle}.ol-editbar .ol-button button:after,.ol-editbar .ol-button button:before{content:"";border-width:0;position:absolute;box-sizing:border-box;background-color:currentColor}.ol-editbar .ol-button button:focus{outline:none}.ol-editbar .ol-selection>button:before{width:.6em;height:1em;background-color:initial;border:.5em solid currentColor;border-width:0 .25em .65em;border-color:currentColor #0000;box-shadow:0 .6em 0 -.23em;top:.35em;left:.5em;transform:translate(-50%,-50%) rotate(-30deg)}.ol-editbar .ol-selection0>button:after{width:.28em;height:.6em;background-color:initial;border:.5em solid currentColor;border-width:0 .05em .7em;border-color:currentColor #0000;top:.5em;left:.7em;transform:rotate(-45deg)}.ol-editbar .ol-delete button:after,.ol-editbar .ol-delete button:before{width:1em;height:.2em;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg)}.ol-editbar .ol-delete button:after{transform:translate(-50%,-50%) rotate(-45deg)}.ol-editbar .ol-info button:before{width:.25em;height:.6em;border-radius:.03em;top:.47em;left:50%;transform:translateX(-50%)}.ol-editbar .ol-info button:after{width:.25em;height:.2em;border-radius:.03em;box-shadow:-.1em .35em,-.1em .82em,.1em .82em;top:.12em;left:50%;transform:translateX(-50%)}.ol-editbar .ol-drawpoint button:before{width:.7em;height:.7em;border-radius:50%;top:.2em}.ol-editbar .ol-drawpoint button:after,.ol-editbar .ol-drawpoint button:before{border:.15em solid currentColor;background-color:initial;left:50%;transform:translateX(-50%)}.ol-editbar .ol-drawpoint button:after{width:.4em;height:.4em;border-color:currentColor #0000;border-width:.4em .2em 0;top:.8em}.ol-editbar .ol-drawhole>button:before,.ol-editbar .ol-drawline>button:before,.ol-editbar .ol-drawpolygon>button:before{width:.8em;height:.8em;border:.13em solid currentColor;background-color:initial;border-width:.2em .13em .09em;top:.2em;left:.25em;transform:rotate(10deg) perspective(1em) rotateX(40deg)}.ol-editbar .ol-drawline>button:before{border-bottom:0}.ol-editbar .ol-drawhole>button:after,.ol-editbar .ol-drawline>button:after,.ol-editbar .ol-drawpolygon>button:after{width:.3em;height:.3em;top:.2em;left:.25em;box-shadow:-.2em .55em,.6em .1em,.65em .7em}.ol-editbar .ol-drawhole>button:after{box-shadow:-.2em .55em,.6em .1em,.65em .7em,.25em .35em}.ol-editbar .ol-offset>button i,.ol-editbar .ol-transform>button i{position:absolute;width:.9em;height:.9em;overflow:hidden;top:50%;left:50%;transform:translate(-50%,-50%)}.ol-editbar .ol-offset>button i{width:.8em;height:.8em}.ol-editbar .ol-offset>button i:before,.ol-editbar .ol-transform>button i:after,.ol-editbar .ol-transform>button i:before{content:"";height:1em;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg);box-shadow:.5em 0 0 .1em,-.5em 0 0 .1em;width:.1em;position:absolute;background-color:currentColor}.ol-editbar .ol-offset>button i:before{box-shadow:.45em 0 0 .1em,-.45em 0 0 .1em}.ol-editbar .ol-transform>button i:after{transform:translate(-50%,-50%) rotate(-45deg)}.ol-editbar .ol-split>button:before{width:.3em;height:.3em;top:.81em;left:.75em;border-radius:50%;box-shadow:.1em -.4em,-.15em -.25em}.ol-editbar .ol-split>button:after{width:.8em;height:.8em;top:.15em;left:-.1em;border:.1em solid currentColor;border-width:0 .2em .2em 0;background-color:initial;border-radius:.1em;transform:rotate(20deg) scaleY(.6) rotate(-45deg)}.ol-editbar .ol-drawregular>button:before{width:.9em;height:.9em;top:50%;left:50%;border:.1em solid currentColor;background-color:initial;transform:translate(-50%,-50%)}.ol-editbar .ol-drawregular .ol-bar .ol-text-button>div>div>div{border:.5em solid currentColor;border-color:#0000 currentColor;display:inline-block;cursor:pointer;vertical-align:text-bottom}.ol-control.ol-bar.ol-editbar .ol-drawregular .ol-bar,.ol-editbar .ol-drawregular .ol-bar:before{left:50%;transform:translateX(-50%)}.ol-editbar .ol-drawregular .ol-bar .ol-text-button{min-width:6em;text-align:center}.ol-editbar .ol-drawregular .ol-bar .ol-text-button>div>div>div:first-child{border-width:.5em .5em .5em 0;margin:0 .5em 0 0}.ol-editbar .ol-drawregular .ol-bar .ol-text-button>div>div>div:last-child{border-width:.5em 0 .5em .5em;margin:0 0 0 .5em}.geojson-map-editor{height:100%}.geojson-editor[data-v-6d150dd6]{max-width:100%;display:flex;flex-direction:column}.info[data-v-6d150dd6]{display:block;text-align:center;font-style:italic;color:#555;margin-top:.5em}.areaSelector[data-v-0b98f1e9],.geoJsonEditor[data-v-0b98f1e9]{height:500px;flex-grow:1}.textarea[data-v-0b98f1e9]{width:100%;height:250px}.externalData span[data-v-0b98f1e9]{display:inline-block;background-color:#ddd;padding:2px 5px;border-radius:3px}.externalData tt[data-v-0b98f1e9]{font-size:1.1em;font-weight:700}.callbackEditor[data-v-0b98f1e9]{height:450px;min-width:50px;width:100%}.fieldContainer .description{display:flex;align-items:center;font-size:.9em;margin-bottom:10px}.fieldContainer .description .fas{margin-right:.5em}.fieldContainer .description p{margin:0}.fieldContainer .dataTypeChooser{margin-bottom:10px}.deleteBtn[data-v-e173c10e]{margin-left:10px}.parameters .fieldRow{display:flex;padding-top:1em;margin-top:1em;border-top:1px dotted #ccc}.parameters .fieldRow:first-of-type{border:0;margin:0;padding:0}.parameters .fieldRow .description{font-size:.8em;width:100%}.parameters .fieldRow .required{color:red;font-weight:700}.parameters .fieldRow .fieldLabel{min-width:30%;width:30%;padding-right:1em}.parameters .fieldRow .fieldLabel.highlight{width:calc(35% - 5px);border-left:5px solid #1665b6;padding-left:5px}.parameters .fieldRow .fieldLabel.info{width:100%}.parameters .fieldRow .fieldEditorContainer{flex-grow:1;display:flex}.parameters .fieldRow .fieldContainer{min-width:50%;width:70%;flex-grow:1}.parameters .fieldRow .fieldValue{display:flex;flex-grow:1}.parameters .fieldRow .fieldValue input,.parameters .fieldRow .fieldValue select,.parameters .fieldRow .fieldValue textarea{flex-grow:1;width:100%}.parameters .fieldRow input[type=checkbox].fieldValue{display:inline-block;flex-grow:unset}.parameters .description .styled-description{line-height:1.1em}.parameters .description .styled-description p{margin:.2em 0} \ No newline at end of file diff --git a/css/1765.be9db0fd.css b/css/1765.be9db0fd.css deleted file mode 100644 index bda13c21..00000000 --- a/css/1765.be9db0fd.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * @kirtandesai/ol-geocoder - v5.0.3 - * A geocoder extension compatible with OpenLayers v7. - * https://github.com/kirtan-desai/ol-geocoder - * Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time) - */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1}.choose-collection .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-collection .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.choose-collection .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:40px;height:38px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid #0000;border-top-color:#41b883;box-shadow:0 0 0 1px #0000}.multiselect__spinner:before{animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:initial;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 #0000 #0000;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.select-container{display:flex;flex-grow:1}.select-container>div{flex-grow:1}.select-container>button{margin-left:10px}.select-container .multiselect__option--highlight,.select-container .multiselect__option--highlight:after,.select-container .multiselect__option--selected.multiselect__option--highlight{background:#1665b6}.mode[data-v-449febe3]{padding-left:3em}.mode>li[data-v-449febe3]{list-style-type:none;margin-bottom:1em;line-height:1.5em}.mode>li>label>strong[data-v-449febe3]{display:inline-block;margin-bottom:.5em;margin-left:.5em}.mode>li>input[data-v-449febe3]{margin-left:-3em;display:inline-block}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated,.vue-component.searchable-list .action-bar>.experimental{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}.choose-index .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-index .vue-component.searchable-list ul.list>li>summary{margin:0}.choose-index .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title{display:flex}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title strong{flex-grow:1}.choose-index .vue-component.searchable-list ul.list>li>summary .summary code{display:block}.choose-index .domain{background-color:#000}.choose-index .domain.water{background-color:#00008b}.choose-index .domain.vegetation{background-color:#006400}.choose-index .domain.burn{background-color:#b8860b}.choose-index .domain.soil{background-color:#5c4033}.choose-index .domain.urban{background-color:maroon}.choose-index .domain.radar{background-color:#9400d3}.choose-index .domain.snow{background-color:#008b8b}.mx-icon-double-left:after,.mx-icon-double-left:before,.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-left:before,.mx-icon-right:before{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-45deg) scale(.7);transform:rotate(-45deg) scale(.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-right:before{-webkit-transform:rotate(135deg) scale(.7);transform:rotate(135deg) scale(.7)}.mx-btn{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:initial;outline:none;border:1px solid #0000001a;border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn.disabled,.mx-btn:disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .24s ease-out;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:#9093994d;-webkit-transition:background-color .3s;transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:focus,.mx-input:hover{border-color:#409aff}.mx-input.disabled,.mx-input:disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;line-height:1;color:#00000080;vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:#000c}.mx-datepicker-main{font:14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}@media(max-width:750px){.mx-range-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-double-left,.mx-btn-icon-left{float:left}.mx-btn-icon-double-right,.mx-btn-icon-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;-webkit-box-sizing:border-box;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.hover-in-range,.mx-calendar-content .cell.in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell.active,.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:initial}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:initial;border-spacing:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.mx-table th{font-weight:500}.mx-table td,.mx-table th{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{-webkit-box-flex:1;-ms-flex:1;flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list:after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.datepicker button{margin:0} \ No newline at end of file diff --git a/css/1765.df87f4cd.css b/css/1765.df87f4cd.css new file mode 100644 index 00000000..716f006f --- /dev/null +++ b/css/1765.df87f4cd.css @@ -0,0 +1,6 @@ +/*! + * @kirtandesai/ol-geocoder - v5.0.3 + * A geocoder extension compatible with OpenLayers v7. + * https://github.com/kirtan-desai/ol-geocoder + * Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time) + */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{width:0;height:0;opacity:0}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher li:has(>div>[type=checkbox]:focus),.ol-layerswitcher li:has(>div>[type=radio]:focus){border-color:#369;box-shadow:inset 0 0 0 1px #369}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1}.choose-collection .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-collection .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.choose-collection .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:40px;height:38px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid #0000;border-top-color:#41b883;box-shadow:0 0 0 1px #0000}.multiselect__spinner:before{animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:initial;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 #0000 #0000;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.select-container{display:flex;flex-grow:1}.select-container>div{flex-grow:1}.select-container>button{margin-left:10px}.select-container .multiselect__option--highlight,.select-container .multiselect__option--highlight:after,.select-container .multiselect__option--selected.multiselect__option--highlight{background:#1665b6}.mode[data-v-449febe3]{padding-left:3em}.mode>li[data-v-449febe3]{list-style-type:none;margin-bottom:1em;line-height:1.5em}.mode>li>label>strong[data-v-449febe3]{display:inline-block;margin-bottom:.5em;margin-left:.5em}.mode>li>input[data-v-449febe3]{margin-left:-3em;display:inline-block}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.vue-component.searchable-list.expandable .heading{cursor:pointer;padding-left:1em}.vue-component.searchable-list.expandable .heading:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list.expandable.expanded .heading:before{content:"▾"}.vue-component.searchable-list .action-bar{width:100%;display:flex;margin-bottom:1em;padding:1px;gap:.5em}.vue-component.searchable-list .action-bar:empty{display:none}.vue-component.searchable-list .action-bar>.search-box{min-width:150px;flex:1;margin:0}.vue-component.searchable-list .action-bar>.deprecated,.vue-component.searchable-list .action-bar>.experimental{white-space:nowrap;align-content:center}.vue-component.searchable-list .details{display:none}.vue-component.searchable-list .list .details h2,.vue-component.searchable-list .list .details h3,.vue-component.searchable-list .list .details h4,.vue-component.searchable-list .list .details h5,.vue-component.searchable-list .list .details h6{font-size:1em}.vue-component.searchable-list ul.list{margin-left:0;padding-left:0;list-style-type:none}.vue-component.searchable-list ul.list>li{margin-bottom:.5em}.vue-component.searchable-list ul.list>li>summary{margin-bottom:.5em;margin-left:1em;line-height:1.33em}.vue-component.searchable-list ul.list>li>summary strong{display:block;text-overflow:ellipsis;overflow:hidden}.vue-component.searchable-list ul.list>li>summary strong .copy{display:none}.vue-component.searchable-list ul.list>li>summary strong.inline{display:inline}.vue-component.searchable-list ul.list>li>summary.experimental strong{color:#8a2be2}.vue-component.searchable-list ul.list>li>summary.deprecated strong{text-decoration:line-through}.vue-component.searchable-list ul.list>li>summary:before{content:"▸";margin-left:-1em;float:left;font-size:1em}.vue-component.searchable-list ul.list>li>summary .badges.block{display:block}.vue-component.searchable-list ul.expandable>li>summary{cursor:pointer}.vue-component.searchable-list ul.expandable>li>summary:hover strong .copy{display:inline-block!important}.vue-component.searchable-list ul.expandable>li.expanded{margin-bottom:2em}.vue-component.searchable-list ul.expandable>li.expanded .details{display:block;margin-left:1em}.vue-component.searchable-list ul.expandable>li.expanded>summary:before{content:"▾"}.vue-component.searchable-list ul.expandable>li.expanded>summary .hideOnExpand{display:none}.choose-index .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-index .vue-component.searchable-list ul.list>li>summary{margin:0}.choose-index .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title{display:flex}.choose-index .vue-component.searchable-list ul.list>li>summary .summary .title strong{flex-grow:1}.choose-index .vue-component.searchable-list ul.list>li>summary .summary code{display:block}.choose-index .domain{background-color:#000}.choose-index .domain.water{background-color:#00008b}.choose-index .domain.vegetation{background-color:#006400}.choose-index .domain.burn{background-color:#b8860b}.choose-index .domain.soil{background-color:#5c4033}.choose-index .domain.urban{background-color:maroon}.choose-index .domain.radar{background-color:#9400d3}.choose-index .domain.snow{background-color:#008b8b}.mx-icon-double-left:after,.mx-icon-double-left:before,.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-left:before,.mx-icon-right:before{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-45deg) scale(.7);transform:rotate(-45deg) scale(.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-right:before{-webkit-transform:rotate(135deg) scale(.7);transform:rotate(135deg) scale(.7)}.mx-btn{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:initial;outline:none;border:1px solid #0000001a;border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn.disabled,.mx-btn:disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .24s ease-out;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:#9093994d;-webkit-transition:background-color .3s;transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:focus,.mx-input:hover{border-color:#409aff}.mx-input.disabled,.mx-input:disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;line-height:1;color:#00000080;vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:#000c}.mx-datepicker-main{font:14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}@media(max-width:750px){.mx-range-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-double-left,.mx-btn-icon-left{float:left}.mx-btn-icon-double-right,.mx-btn-icon-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;-webkit-box-sizing:border-box;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.hover-in-range,.mx-calendar-content .cell.in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell.active,.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:initial}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:initial;border-spacing:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.mx-table th{font-weight:500}.mx-table td,.mx-table th{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{-webkit-box-flex:1;-ms-flex:1;flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list:after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.datepicker button{margin:0} \ No newline at end of file diff --git a/css/2388.16242cfc.css b/css/2388.16242cfc.css new file mode 100644 index 00000000..538ecf8b --- /dev/null +++ b/css/2388.16242cfc.css @@ -0,0 +1,6 @@ +/*! + * @kirtandesai/ol-geocoder - v5.0.3 + * A geocoder extension compatible with OpenLayers v7. + * https://github.com/kirtan-desai/ol-geocoder + * Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time) + */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{width:0;height:0;opacity:0}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher li:has(>div>[type=checkbox]:focus),.ol-layerswitcher li:has(>div>[type=radio]:focus){border-color:#369;box-shadow:inset 0 0 0 1px #369}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.choose-collection .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-collection .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.choose-collection .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:40px;height:38px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid #0000;border-top-color:#41b883;box-shadow:0 0 0 1px #0000}.multiselect__spinner:before{animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:initial;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 #0000 #0000;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.select-container{display:flex;flex-grow:1}.select-container>div{flex-grow:1}.select-container>button{margin-left:10px}.select-container .multiselect__option--highlight,.select-container .multiselect__option--highlight:after,.select-container .multiselect__option--selected.multiselect__option--highlight{background:#1665b6}.mode[data-v-449febe3]{padding-left:3em}.mode>li[data-v-449febe3]{list-style-type:none;margin-bottom:1em;line-height:1.5em}.mode>li>label>strong[data-v-449febe3]{display:inline-block;margin-bottom:.5em;margin-left:.5em}.mode>li>input[data-v-449febe3]{margin-left:-3em;display:inline-block}.mx-icon-double-left:after,.mx-icon-double-left:before,.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-left:before,.mx-icon-right:before{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-45deg) scale(.7);transform:rotate(-45deg) scale(.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-right:before{-webkit-transform:rotate(135deg) scale(.7);transform:rotate(135deg) scale(.7)}.mx-btn{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:initial;outline:none;border:1px solid #0000001a;border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn.disabled,.mx-btn:disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .24s ease-out;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:#9093994d;-webkit-transition:background-color .3s;transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:focus,.mx-input:hover{border-color:#409aff}.mx-input.disabled,.mx-input:disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;line-height:1;color:#00000080;vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:#000c}.mx-datepicker-main{font:14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}@media(max-width:750px){.mx-range-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-double-left,.mx-btn-icon-left{float:left}.mx-btn-icon-double-right,.mx-btn-icon-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;-webkit-box-sizing:border-box;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.hover-in-range,.mx-calendar-content .cell.in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell.active,.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:initial}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:initial;border-spacing:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.mx-table th{font-weight:500}.mx-table td,.mx-table th{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{-webkit-box-flex:1;-ms-flex:1;flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list:after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.datepicker button{margin:0} \ No newline at end of file diff --git a/css/2388.b2b0c7da.css b/css/2388.b2b0c7da.css deleted file mode 100644 index f577298b..00000000 --- a/css/2388.b2b0c7da.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * @kirtandesai/ol-geocoder - v5.0.3 - * A geocoder extension compatible with OpenLayers v7. - * https://github.com/kirtan-desai/ol-geocoder - * Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time) - */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1}.vue-component .highlight-box{box-shadow:0 0 0 .2em #c8e1ff}.vue-component code.id{color:maroon}.vue-component abbr{-webkit-text-decoration:underline dotted 1px;text-decoration:underline dotted 1px}.vue-component .unit{opacity:.6}.vue-component .status[data-value=submitted]{color:#000}.vue-component .status[data-value=running]{color:#ff8c00}.vue-component .status[data-value=queued]{color:#00008b}.vue-component .status[data-value=finished]{color:#006400}.vue-component .status[data-value=canceled]{color:#a9a9a9}.vue-component .status[data-value=error]{color:red}.vue-component.inline.process{margin-left:1em}.vue-component.inline h1{font-size:1.17em}.vue-component.inline h2{font-size:1.1em}.vue-component.inline h3{font-size:1.05em}.vue-component.inline h4,.vue-component.inline h5,.vue-component.inline h6{font-size:1em}.vue-component .comma-separated-list{display:inline;list-style:none;padding:0}.vue-component .comma-separated-list li{display:inline;padding:0}.vue-component .comma-separated-list li:after{content:", "}.vue-component .comma-separated-list li:last-child:after{content:""}.vue-component .required{color:red;font-weight:700}.vue-component.message-block{margin:1em 0;padding:.5em}.vue-component.message-block>strong{display:block;margin-bottom:.5em}.vue-component.message-block>p{margin:0}.vue-component .param-name,.vue-component .process-name{color:#369}.vue-component .param-argument,.vue-component .return-value{color:#936}.vue-component .data-type{color:#693}.vue-component .param-optional{font-weight:700}.vue-component .badges{margin:0;padding:0;list-style-type:none;display:inline-block}.vue-component .badges .badge{display:inline-block;font-size:.8em;margin:.25em;padding:.35em .5em .25em .5em;line-height:1em;text-align:center;white-space:nowrap;text-transform:uppercase;vertical-align:initial;border-radius:.5em;color:#fff;background-color:#6c757d}.vue-component .badges:not(.inline){margin-left:-.25em;margin-right:-.25em}.vue-component .badges.small .badge{padding:.25em .35em .2em .35em;font-size:.75em}.vue-component .badges.inline{margin-left:.5em;border-radius:.25em}.vue-component .badges.inline .badge{margin-top:0;margin-bottom:0}.vue-component .badges .badge a{color:#fff;border-bottom:1px dotted #fff;text-decoration:none}.vue-component .badges .badge a.badge-fill{margin:-.35em -.5em;padding:.35em .5em;display:block;border-bottom:0}.vue-component .badges.small .badge a.badge-fill{margin:-.2em -.3em;padding:.25em .35em}.vue-component .badges .badge a:hover{color:#fff;border-bottom-style:solid}.vue-component .badges .default{background-color:#555}.vue-component .badges .green{background-color:green}.vue-component .badges .red{background-color:maroon}.vue-component .badges .option1{background-color:#369}.vue-component .badges .option2{background-color:#693}.vue-component .badges .option3{background-color:#936}.vue-component .badges .option4{background-color:#963}.vue-component .badges .deprecated{background-color:red}.vue-component .badges .experimental{background-color:#8a2be2}.vue-component .badges .action{border:1px solid #000;background-color:#fff;color:#000;margin:.33em;cursor:pointer;text-transform:none}.vue-component .badges .action:hover{background-color:#000;color:#fff}.vue-component .badges .action:hover>a{color:#fff}.vue-component .badges .action>a{color:#000}.vue-component .badges .docker{background-color:#0db7ed}.vue-component .tabular{display:flex;margin:.2em 0;padding:1px}.vue-component .tabular label{flex:1;font-weight:700}.vue-component .tabular .value{flex:3}.vue-component .tabular .value td>div,.vue-component .tabular .value>.formatted>ul,.vue-component .tabular .value>ul,.vue-component .tabular ul.value{max-height:15em;overflow:auto}.vue-component .tabular .value pre{margin:0}.vue-component.stac .map{background:#0000;height:350px}.vue-component.stac .tabular{margin:.5em 0}.vue-component.stac .tabular.wrap{display:block}.vue-component.stac .tabular.wrap .value{margin-top:.5em;margin-left:1em;margin-bottom:.5em}.vue-component.stac .tabular .value ul{padding-left:20px}.assets.empty,.vue-component.stac .links:empty{display:none}.vue-component.stac .thumbnails{overflow-x:auto;overflow-y:hidden;width:100%;white-space:nowrap}.vue-component.stac .thumbnails a{margin:5px;display:inline-block}.vue-component.stac .thumbnails a img{padding:2px;max-height:200px;vertical-align:middle;border:2px solid #0000}.vue-component.stac .thumbnails a:hover img{border:2px solid #00000080}.vue-component .federation>ul>li{margin-bottom:.5em}.vue-component .federation>ul>li>small{display:block}.vue-component .federation>ul>li>h4{margin:0}.vue-component .federation .fed-header{margin:.2em 0}.vue-component .federation .fed-header>.fed-title{display:inline-block;vertical-align:bottom}.choose-collection .vue-component.searchable-list ul.list>li{margin-bottom:0}.choose-collection .vue-component.searchable-list ul.list>li>summary{margin:0;line-height:inherit}.choose-collection .vue-component.searchable-list ul.list>li>summary:before{content:"";margin-left:0;float:none}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:40px;height:38px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid #0000;border-top-color:#41b883;box-shadow:0 0 0 1px #0000}.multiselect__spinner:before{animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:initial;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 #0000 #0000;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.select-container{display:flex;flex-grow:1}.select-container>div{flex-grow:1}.select-container>button{margin-left:10px}.select-container .multiselect__option--highlight,.select-container .multiselect__option--highlight:after,.select-container .multiselect__option--selected.multiselect__option--highlight{background:#1665b6}.mode[data-v-449febe3]{padding-left:3em}.mode>li[data-v-449febe3]{list-style-type:none;margin-bottom:1em;line-height:1.5em}.mode>li>label>strong[data-v-449febe3]{display:inline-block;margin-bottom:.5em;margin-left:.5em}.mode>li>input[data-v-449febe3]{margin-left:-3em;display:inline-block}.mx-icon-double-left:after,.mx-icon-double-left:before,.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-left:before,.mx-icon-right:before{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-45deg) scale(.7);transform:rotate(-45deg) scale(.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-double-right:after,.mx-icon-double-right:before,.mx-icon-right:before{-webkit-transform:rotate(135deg) scale(.7);transform:rotate(135deg) scale(.7)}.mx-btn{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:initial;outline:none;border:1px solid #0000001a;border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn.disabled,.mx-btn:disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .24s ease-out;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:#9093994d;-webkit-transition:background-color .3s;transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:34px;padding:6px 30px;padding-left:10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.mx-input:focus,.mx-input:hover{border-color:#409aff}.mx-input.disabled,.mx-input:disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;line-height:1;color:#00000080;vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:#000c}.mx-datepicker-main{font:14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);z-index:2001}.mx-datepicker-sidebar{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}@media(max-width:750px){.mx-range-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-double-left,.mx-btn-icon-left{float:left}.mx-btn-icon-double-right,.mx-btn-icon-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;-webkit-box-sizing:border-box;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.hover-in-range,.mx-calendar-content .cell.in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell.active,.mx-calendar-week-mode .mx-date-row .cell:hover{color:inherit;background-color:initial}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:initial;border-spacing:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.mx-table th{font-weight:500}.mx-table td,.mx-table th{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{-webkit-box-flex:1;-ms-flex:1;flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list:after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:initial;font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.datepicker button{margin:0} \ No newline at end of file diff --git a/css/6709.de23863b.css b/css/6709.de23863b.css deleted file mode 100644 index 4011d122..00000000 --- a/css/6709.de23863b.css +++ /dev/null @@ -1 +0,0 @@ -:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400} \ No newline at end of file diff --git a/css/6709.def3a5a5.css b/css/6709.def3a5a5.css new file mode 100644 index 00000000..56aef13d --- /dev/null +++ b/css/6709.def3a5a5.css @@ -0,0 +1 @@ +:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{width:0;height:0;opacity:0}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher li:has(>div>[type=checkbox]:focus),.ol-layerswitcher li:has(>div>[type=radio]:focus){border-color:#369;box-shadow:inset 0 0 0 1px #369}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400} \ No newline at end of file diff --git a/css/9403.3c3c478b.css b/css/9403.10c1c477.css similarity index 65% rename from css/9403.3c3c478b.css rename to css/9403.10c1c477.css index a036ee6a..2106a31e 100644 --- a/css/9403.3c3c478b.css +++ b/css/9403.10c1c477.css @@ -3,4 +3,4 @@ * A geocoder extension compatible with OpenLayers v7. * https://github.com/kirtan-desai/ol-geocoder * Built: Thu Nov 17 2022 14:58:36 GMT-0500 (Eastern Standard Time) - */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{display:none}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1} \ No newline at end of file + */.ol-touch .ol-control.gcd-gl-control button{font-size:1.14em}.ol-touch .ol-geocoder.gcd-gl-container{font-size:1.1em}.ol-geocoder.gcd-gl-container{box-sizing:border-box;font-size:.9em;left:.5em;position:absolute;top:4.875em}.ol-geocoder.gcd-gl-container *,.ol-geocoder.gcd-gl-container :after,.ol-geocoder.gcd-gl-container :before{box-sizing:inherit}.ol-geocoder .gcd-gl-control{height:2.1875em;overflow:hidden;transition:width .2s,height .2s;width:2.1875em}.ol-geocoder .gcd-gl-expanded{height:2.1875em;width:15.625em}.ol-geocoder .gcd-gl-input{background-color:#fff;border:1px solid #ccc;color:#222;font-family:inherit;font-size:.875em;left:2.5em;padding:5px;position:absolute;top:.25em;width:14.84375em;z-index:99}.ol-geocoder .gcd-gl-input:focus{border:none;box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 5px #4d90fe;outline:none}.ol-geocoder .gcd-gl-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:1.4;outline:0;position:absolute;right:0;top:0;width:1.5625em;z-index:100}.ol-geocoder .gcd-gl-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:1.5em}.ol-geocoder .gcd-gl-btn{background-image:url(data:image/png;base64,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);background-position:50%;background-repeat:no-repeat;background-size:20px;height:1.5625em;left:.125em;position:absolute;top:.125em;width:1.5625em}.ol-geocoder ul.gcd-gl-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:2em;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:2.1875em;transition:max-height .3s ease-in;white-space:normal;width:16.25em}.ol-geocoder ul.gcd-gl-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-gl-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-gl-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-gl-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-gl-result:empty{display:none}.ol-geocoder.gcd-txt-container{box-sizing:border-box;height:4.375em;left:calc(50% - 12.5em);position:absolute;top:.5em;width:25em}.ol-geocoder.gcd-txt-container *,.ol-geocoder.gcd-txt-container :after,.ol-geocoder.gcd-txt-container :before{box-sizing:inherit}.ol-geocoder .gcd-txt-control{background-color:#fff;border:1px solid #ccc;height:4.375em;overflow:hidden;position:relative;width:100%}.ol-geocoder .gcd-txt-input{background-color:initial;border:none;font-family:inherit;font-size:.875em;height:100%;left:0;padding:5px 30px 5px 40px;position:absolute;text-indent:6px;top:0;width:100%;z-index:99}.ol-geocoder .gcd-txt-input:focus{box-shadow:inset 0 0 0 1px #4d90fe,inset 0 0 6px #4d90fe;outline:none}.ol-geocoder .gcd-txt-reset{background-color:initial;border:none;cursor:pointer;display:inline-block;height:100%;line-height:100%;outline:0;position:absolute;right:0;top:0;vertical-align:middle;width:2.5em;z-index:100}.ol-geocoder .gcd-txt-reset:after{color:#333;content:"\d7";cursor:pointer;display:inline-block;font-size:2em}.ol-geocoder .gcd-txt-glass{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath fill='%23333' d='m29.156 29.961-.709.709a2.006 2.006 0 0 1-2.838 0l-5.676-5.674c-.656-.658-.729-1.644-.281-2.412l-3.104-3.102a9.975 9.975 0 0 1-5.965 1.979C5.043 21.461.552 16.97.552 11.43S5.043 1.398 10.583 1.398c5.541 0 10.031 4.491 10.031 10.032 0 2.579-.98 4.923-2.58 6.7l3.035 3.035c.768-.447 1.754-.375 2.41.283l5.676 5.674c.784.785.784 2.056.001 2.839zM18.088 11.389a7.524 7.524 0 0 0-7.524-7.523 7.523 7.523 0 1 0-.001 15.046 7.525 7.525 0 0 0 7.525-7.523z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.38889em;display:inline-block;height:100%;left:0;position:absolute;top:0;width:2.5em;z-index:100}.ol-geocoder ul.gcd-txt-result{background-color:#fff;border-radius:4px;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 1px 7px #000c;left:0;list-style:none;margin:0;max-height:18.75em;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;top:4.575em;transition:max-height .3s ease-in;white-space:normal;width:25em}.ol-geocoder ul.gcd-txt-result>li{border-bottom:1px solid #eee;line-height:.875rem;overflow:hidden;padding:0;width:100%}.ol-geocoder ul.gcd-txt-result>li>a{display:block;padding:3px 5px;text-decoration:none}.ol-geocoder ul.gcd-txt-result>li>a:hover{background-color:#d4d4d4}.ol-geocoder ul.gcd-txt-result>li:nth-child(odd){background-color:#e0ffe0}.ol-geocoder ul.gcd-txt-result:empty{display:none}.ol-geocoder .gcd-hidden{opacity:0;visibility:hidden}.ol-geocoder .gcd-pseudo-rotate:after{animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-address,.gcd-road{color:#333;font-size:.875em;font-weight:500}.gcd-city{font-weight:400}.gcd-city,.gcd-country{color:#333;font-size:.75em}.gcd-country{font-weight:lighter}.ol-geocoder.gcd-gl-container{z-index:0;left:calc(.5em - 1px)!important;top:calc(6.125em + 8px)!important}.ol-geocoder.gcd-gl-container .ol-control{background-color:#0000}.ol-geocoder.gcd-gl-container ul.gcd-gl-result>li:nth-child(odd){background-color:#f9f9f9}:host,:root{--ol-background-color:#fff;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{font-size:12px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-control.ol-layerswitcher{position:absolute;right:.5em;text-align:left;top:3em;max-height:calc(100% - 6em);box-sizing:border-box;overflow:hidden}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher.ol-collapsed .ol-switcherbottomdiv,.ol-control.ol-layerswitcher.ol-collapsed .ol-switchertopdiv{display:none}.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switcherbottomdiv,.ol-layerswitcher.ol-forceopen.ol-collapsed .ol-switchertopdiv{display:block}.ol-control.ol-layerswitcher .ol-switcherbottomdiv,.ol-control.ol-layerswitcher .ol-switchertopdiv{position:absolute;top:0;left:0;right:0;height:45px;background:#fff;z-index:2;opacity:1;cursor:pointer;border-top:2px solid #0000;border-bottom:2px solid #369;margin:0 2px;box-sizing:border-box}.ol-control.ol-layerswitcher .ol-switcherbottomdiv{top:auto;bottom:0;height:2em;border-top:2px solid #369;border-bottom:2px solid #0000}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:before{content:"";position:absolute;left:50%;top:50%;border:10px solid #0000;width:0;height:0;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);opacity:.8}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:hover:before,.ol-control.ol-layerswitcher .ol-switchertopdiv:hover:before{opacity:1}.ol-control.ol-layerswitcher .ol-switchertopdiv:before{border-bottom-color:#369;border-top:0}.ol-control.ol-layerswitcher .ol-switcherbottomdiv:before{border-top-color:#369;border-bottom:0}.ol-control.ol-layerswitcher .panel-container{background-color:#fff;border-radius:0 0 2px 2px;clear:both;display:block;padding:.5em .5em 0}.ol-layerswitcher .panel{list-style:none;padding:0;margin:0;overflow:hidden;font-family:Tahoma,Geneva,sans-serif;font-size:.9em;transition:top .3s;position:relative;top:0}.ol-layerswitcher .panel ul{list-style:none;padding:0 0 0 20px;overflow:hidden;clear:both}.ol-layerswitcher input[type=checkbox],.ol-layerswitcher input[type=radio]{width:0;height:0;opacity:0}.ol-layerswitcher .panel li{-weblit-transition:-webkit-transform .2s linear;transition:transform .2s linear;clear:both;display:block;border:1px solid #0000;box-sizing:border-box}.ol-layerswitcher .panel li.ol-layer-select{background-color:#003c8833;margin:0 -.5em;padding:0 .5em}.ol-layerswitcher .panel li.drag{opacity:.5;transform:scale(.8);-webkit-transform:scale(.8)}.ol-dragover{background:#33669980;opacity:.8}.forbidden .layerswitcher-opacity div,.forbidden .ol-layerswitcher-buttons div,.ol-layerswitcher .panel li.forbidden{background:#ff000080;color:red!important}.ol-layerswitcher.drag,.ol-layerswitcher.drag *{cursor:not-allowed!important;cursor:no-drop!important}.ol-layerswitcher.drag .panel li.dropover,.ol-layerswitcher.drag .panel li.dropover *{cursor:pointer!important;cursor:n-resize!important;cursor:ns-resize!important;cursor:grab!important;cursor:grabbing!important}.ol-layerswitcher .panel li.dropover{background:#33669980}.ol-layerswitcher .panel li label{display:inline-block;height:1.4em;max-width:12em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 0 0 1.7em;position:relative}.ol-layerswitcher .panel li label span{display:inline-block;width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;padding-right:.2em}.ol-layerswitcher [type=checkbox]+label:before,.ol-layerswitcher [type=checkbox]:checked+label:after,.ol-layerswitcher [type=radio]+label:before,.ol-layerswitcher [type=radio]:checked+label:after{content:"";position:absolute;left:.1em;top:.1em;width:1.2em;height:1.2em;border:2px solid #369;background:#fff;box-sizing:border-box}.ol-layerswitcher li:has(>div>[type=checkbox]:focus),.ol-layerswitcher li:has(>div>[type=radio]:focus){border-color:#369;box-shadow:inset 0 0 0 1px #369}.ol-layerswitcher [type=radio]+label:after,.ol-layerswitcher [type=radio]+label:before{border-radius:50%}.ol-layerswitcher [type=radio]:checked+label:after{background:#369 none repeat scroll 0 0;margin:.3em;width:.6em;height:.6em}.ol-layerswitcher [type=checkbox]:checked+label:after{background:#0000;border-width:0 3px 3px 0;border-style:solid;border-color:#369;width:.7em;height:1em;transform:rotate(45deg);left:.55em;top:-.05em;box-shadow:1px 0 1px 1px #fff}.ol-layerswitcher .panel li.ol-layer-hidden{opacity:.6}.ol-layerswitcher.ol-collapsed .panel-container{display:none}.ol-layerswitcher.ol-forceopen .panel-container{display:block}.ol-layerswitcher-image>button,.ol-layerswitcher>button{background-color:#fff;float:right;z-index:10;position:relative;font-size:1.7em}.ol-touch .ol-layerswitcher-image>button,.ol-touch .ol-layerswitcher>button{font-size:2.5em}.ol-layerswitcher-image>button:after,.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{content:"";position:absolute;width:.75em;height:.75em;border-radius:.15em;transform:scaleY(.8) rotate(45deg)}.ol-layerswitcher-image>button:before,.ol-layerswitcher>button:before{background:#e2e4e1;top:.32em;left:.34em;box-shadow:.1em .1em #325158}.ol-layerswitcher-image>button:after,.ol-layerswitcher>button:after{top:.22em;left:.34em;background:#83bcc5;background-image:radial-gradient(circle at .85em .6em,#70b3be 0,#70b3be .65em,#83bcc5 0)}.ol-layerswitcher-buttons{display:block;float:right;text-align:right}.ol-layerswitcher-buttons>div{cursor:pointer;height:1em;width:1em;margin:2px;line-height:1em;text-align:center;background:#369;vertical-align:middle;color:#fff}.ol-layerswitcher .panel li>div,.ol-layerswitcher-buttons>div{display:inline-block;position:relative}.ol-layerswitcher .ol-separator{display:block;width:0;height:0;padding:0;margin:0}.ol-layerswitcher .layerup{float:right;height:2.5em;background-color:#369;opacity:.5;cursor:move;cursor:ns-resize}.ol-layerswitcher .layerup:after,.ol-layerswitcher .layerup:before{border-color:#fff #0000;border-style:solid;border-width:.4em .4em 0;content:"";height:0;position:absolute;bottom:3px;left:.1em;width:0}.ol-layerswitcher .layerup:after{border-width:0 .4em .4em;top:3px;bottom:auto}.ol-layerswitcher .layerInfo{background:#369;border-radius:100%}.ol-layerswitcher .layerInfo:before{color:#fff;content:"i";display:block;font-size:.8em;font-weight:700;text-align:center;width:1.25em;position:absolute;left:0;top:0}.ol-layerswitcher .layerTrash{background:#369}.ol-layerswitcher .layerTrash:before{color:#fff;content:"\00d7";font-size:1em;top:50%;left:0;right:0;text-align:center;line-height:1em;margin:-.5em 0;position:absolute}.ol-layerswitcher .layerExtent{background:#369}.ol-layerswitcher .layerExtent:before{border-right:1px solid #fff;border-bottom:1px solid #fff;content:"";display:block;position:absolute;left:6px;right:2px;top:6px;bottom:3px}.ol-layerswitcher .layerExtent:after{border-left:1px solid #fff;border-top:1px solid #fff;content:"";display:block;position:absolute;bottom:6px;left:2px;right:6px;top:3px}.ol-layerswitcher .collapse-layers,.ol-layerswitcher .expend-layers{margin:0 2px;background-color:initial}.ol-layerswitcher .collapse-layers:before,.ol-layerswitcher .expend-layers:before{content:"";position:absolute;top:50%;left:0;margin-top:-2px;height:4px;width:100%;background:#369}.ol-layerswitcher .expend-layers:after{content:"";position:absolute;left:50%;top:0;margin-left:-2px;width:4px;height:100%;background:#369}.ol-layerswitcher .layerswitcher-opacity{position:relative;border:1px solid #369;height:3px;width:120px;margin:5px 1em 10px 7px;box-sizing:border-box;border-radius:3px;background:#69c;background:linear-gradient(90deg,#003c8800,#003c8899);cursor:pointer;box-shadow:1px 1px 1px #00000080}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor,.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{position:absolute;width:20px;height:20px;top:50%;left:50%;background:#003c8880;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor:before{content:"";position:absolute;width:50%;height:50%}.ol-touch .ol-layerswitcher .layerswitcher-opacity .layerswitcher-opacity-cursor{width:26px;height:26px}.ol-layerswitcher .layerswitcher-opacity-label{display:none;position:absolute;right:-2.5em;bottom:5px;font-size:.8em}.ol-layerswitcher .layerswitcher-opacity-label:after{content:"%"}.ol-layerswitcher .layerswitcher-progress{display:block;margin:-4px 1em 2px 7px;width:120px}.ol-layerswitcher .layerswitcher-progress div{background-color:#369;height:2px;display:block;width:0}.ol-progress-control[data-v-3a0e8f20]{opacity:1;transition:opacity .4s;bottom:calc(22px + 1em);left:8px;position:absolute;background-color:#003c8880;border-radius:4px;padding:2px;width:150px;text-align:center}.ol-progress-control .progress-label[data-v-3a0e8f20]{font-size:10px;color:#fff;margin-top:2px}.ol-progress-control .progress-bar[data-v-3a0e8f20]{border-radius:4px;border:1px solid #fff;height:10px}.ol-progress-control .progress-bar-inner[data-v-3a0e8f20]{background-color:#fff;height:10px;width:0}.ol-location[data-v-34b57b3b]{z-index:0;left:.5em;top:calc(3.75em + 6px)}.value[data-v-b1521986]{position:absolute;top:.5em;left:calc(2.375em + 6px);max-width:calc(100% - 4.75em - 12px);box-sizing:border-box;background-color:#fff9;white-space:pre-wrap;font-family:monospace;padding:.2em}.pointer[data-v-b1521986]{cursor:pointer}.ol-layerswitcher{top:2.75em!important}.ol-layerswitcher>button{font-size:1em}.ol-layerswitcher>button:after,.ol-layerswitcher>button:before{background:#0000;background-image:none;box-shadow:none;position:inherit;transform:none;display:inline-block;width:auto;height:auto}.ol-layerswitcher>button:after{font-family:Font Awesome\ 5 Free;content:"";font-weight:900;left:1px;top:1px}.ol-scale-line{background-color:#003c8880}.ol-scale-line-inner{color:#fff;border-color:#fff}.ol-control,.ol-unselectable{z-index:2}.ol-control.ol-timeline,.ol-unselectable.ol-timeline{z-index:1}.ol-control.ol-timeline .ol-buttons,.ol-unselectable.ol-timeline .ol-buttons{width:auto;font-size:.8em}.ol-control.ol-timeline .ol-buttons>button,.ol-unselectable.ol-timeline .ol-buttons>button{display:inline-block}.ol-control.ol-timeline .ol-buttons .timeline-date-label,.ol-unselectable.ol-timeline .ol-buttons .timeline-date-label{width:7em;font-weight:400}.choose-bbox[data-v-61a75ac8],.map[data-v-61a75ac8]{display:flex;flex-direction:column;flex-grow:1} \ No newline at end of file diff --git a/index.html b/index.html index 9636e647..58860c23 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -
\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!./GeocoderMixin.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!./GeocoderMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nimport style0 from \"@kirtandesai/ol-geocoder/dist/ol-geocoder.min.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./GeocoderMixin.vue?vue&type=style&index=1&id=643f6883&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 (_vm.texts.length > 0)?_c('div',{staticClass:\"ol-unselectable ol-control value\",class:{pointer: _vm.texts.length > 1},on:{\"click\":_vm.toggle}},[_vm._v(_vm._s(_vm.current))]):_vm._e()\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!./TextControl.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!./TextControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextControl.vue?vue&type=template&id=b1521986&scoped=true\"\nimport script from \"./TextControl.vue?vue&type=script&lang=js\"\nexport * from \"./TextControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextControl.vue?vue&type=style&index=0&id=b1521986&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 \"b1521986\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Splitpanes',{staticClass:\"default-theme\",attrs:{\"horizontal\":\"\"}},[_c('Pane',{attrs:{\"id\":\"map\"}},[_c('div',{staticClass:\"map-viewer\",attrs:{\"id\":_vm.id}},[_c('ProgressControl',{ref:\"progress\",attrs:{\"map\":_vm.map}}),_c('UserLocationControl',{attrs:{\"map\":_vm.map}}),_c('AddDataControl',{attrs:{\"map\":_vm.map},on:{\"add\":_vm.addData}}),(_vm.isGeoTiff)?[_c('TextControl',{attrs:{\"text\":_vm.textControlText}}),_c('div',{staticClass:\"ol-unselectable ol-control geotiff-channels\"},[_vm._l((_vm.geotiffs),function(state){return [(!state.colorMap)?_c('ChannelControl',{key:state.layer.id,attrs:{\"bands\":state.bands,\"defaultChannels\":state.defaultChannels,\"title\":_vm.geotiffs.length > 1 ? state.layer.get('title') : ''},on:{\"update\":(type, data) => _vm.updateGeoTiffStyle(state, type, data)}}):_vm._e()]})],2)]:_vm._e(),(_vm.loading)?_c('div',{staticClass:\"map-loading\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"}),_c('span',[_vm._v(\"Loading map...\")])]):_vm._e()],2)]),(_vm.chart)?_c('Pane',{attrs:{\"id\":\"chart\",\"size\":33}},[_c('span',{staticClass:\"close\",on:{\"click\":_vm.closeChart}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})]),_c('ScatterChart',_vm._b({attrs:{\"height\":220}},'ScatterChart',_vm.chart,false))],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ol-add-data ol-unselectable ol-control\",staticStyle:{\"pointer-events\":\"auto\"}},[_c('button',{attrs:{\"type\":\"button\",\"title\":\"Add external data source\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openModal.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-image\"})])])\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!./AddDataControl.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!./AddDataControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AddDataControl.vue?vue&type=template&id=046026ef&scoped=true\"\nimport script from \"./AddDataControl.vue?vue&type=script&lang=js\"\nexport * from \"./AddDataControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./AddDataControl.vue?vue&type=style&index=0&id=046026ef&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 \"046026ef\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.channels.length > 0),expression:\"channels.length > 0\"}],staticClass:\"channels\"},[_c('table',[_c('thead',[(_vm.title)?_c('tr',[_c('th',{attrs:{\"colspan\":_vm.cols}},[_vm._v(_vm._s(_vm.title))])]):_vm._e(),_c('tr',[(!_vm.isGray)?_c('th',[_vm._v(\"Channel\")]):_vm._e(),(_vm.multiBand)?_c('th',[_vm._v(\"Band\")]):_vm._e(),_c('th',[_vm._v(\"Min\")]),_c('th',[_vm._v(\"Max\")])])]),_c('tbody',_vm._l((_vm.channels),function(channel,i){return _c('tr',{key:i},[(!_vm.isGray)?_c('th',[_vm._v(_vm._s(_vm.labels[i]))]):_vm._e(),(_vm.multiBand)?_c('td',[_c('select',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.id),expression:\"channel.id\",modifiers:{\"number\":true}}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return _vm._n(val)}); _vm.$set(channel, \"id\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.bands),function(band){return _c('option',{key:band.id,domProps:{\"value\":band.id}},[_vm._v(_vm._s(band.name || band.id))])}),0)]):_vm._e(),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.min),expression:\"channel.min\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"required\":\"\"},domProps:{\"value\":(channel.min)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(channel, \"min\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.max),expression:\"channel.max\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"required\":\"\"},domProps:{\"value\":(channel.max)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(channel, \"max\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})])])}),0),(_vm.multiBand)?_c('tfoot',[_c('tr',[_c('td',{attrs:{\"colspan\":_vm.cols}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.isGray),expression:\"isGray\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.isGray)?_vm._i(_vm.isGray,null)>-1:(_vm.isGray)},on:{\"change\":function($event){var $$a=_vm.isGray,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.isGray=$$a.concat([$$v]))}else{$$i>-1&&(_vm.isGray=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.isGray=$$c}}}}),_vm._v(\" Grayscale \")])])]):_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!./ChannelControl.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!./ChannelControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChannelControl.vue?vue&type=template&id=5223a7ca&scoped=true\"\nimport script from \"./ChannelControl.vue?vue&type=script&lang=js\"\nexport * from \"./ChannelControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./ChannelControl.vue?vue&type=style&index=0&id=5223a7ca&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 \"5223a7ca\",\n null\n \n)\n\nexport default component.exports","/**\n * @module ol/xml\n */\nimport {extend} from './array.js';\n\n/**\n * When using {@link module:ol/xml.makeChildAppender} or\n * {@link module:ol/xml.makeSimpleNodeFactory}, the top `objectStack` item needs\n * to have this structure.\n * @typedef {Object} NodeStackItem\n * @property {Element} node Node.\n */\n\n/**\n * @typedef {function(Element, Array<*>): void} Parser\n */\n\n/**\n * @typedef {function(Element, *, Array<*>): void} Serializer\n */\n\n/**\n * @type {string}\n */\nexport const XML_SCHEMA_INSTANCE_URI =\n 'http://www.w3.org/2001/XMLSchema-instance';\n\n/**\n * @param {string} namespaceURI Namespace URI.\n * @param {string} qualifiedName Qualified name.\n * @return {Element} Node.\n */\nexport function createElementNS(namespaceURI, qualifiedName) {\n return getDocument().createElementNS(namespaceURI, qualifiedName);\n}\n\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @return {string} All text content.\n * @api\n */\nexport function getAllTextContent(node, normalizeWhitespace) {\n return getAllTextContent_(node, normalizeWhitespace, []).join('');\n}\n\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @param {Array} accumulator Accumulator.\n * @private\n * @return {Array} Accumulator.\n */\nexport function getAllTextContent_(node, normalizeWhitespace, accumulator) {\n if (\n node.nodeType == Node.CDATA_SECTION_NODE ||\n node.nodeType == Node.TEXT_NODE\n ) {\n if (normalizeWhitespace) {\n accumulator.push(String(node.nodeValue).replace(/(\\r\\n|\\r|\\n)/g, ''));\n } else {\n accumulator.push(node.nodeValue);\n }\n } else {\n let n;\n for (n = node.firstChild; n; n = n.nextSibling) {\n getAllTextContent_(n, normalizeWhitespace, accumulator);\n }\n }\n return accumulator;\n}\n\n/**\n * @param {Object} object Object.\n * @return {boolean} Is a document.\n */\nexport function isDocument(object) {\n return 'documentElement' in object;\n}\n\n/**\n * @param {Element} node Node.\n * @param {?string} namespaceURI Namespace URI.\n * @param {string} name Attribute name.\n * @return {string} Value\n */\nexport function getAttributeNS(node, namespaceURI, name) {\n return node.getAttributeNS(namespaceURI, name) || '';\n}\n\n/**\n * Parse an XML string to an XML Document.\n * @param {string} xml XML.\n * @return {Document} Document.\n * @api\n */\nexport function parse(xml) {\n return new DOMParser().parseFromString(xml, 'application/xml');\n}\n\n/**\n * Make an array extender function for extending the array at the top of the\n * object stack.\n * @param {function(this: T, Node, Array<*>): (Array<*>|undefined)} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayExtender(valueReader, thisArg) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const array = /** @type {Array<*>} */ (\n objectStack[objectStack.length - 1]\n );\n extend(array, value);\n }\n }\n );\n}\n\n/**\n * Make an array pusher function for pushing to the array at the top of the\n * object stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayPusher(valueReader, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const array = /** @type {Array<*>} */ (\n objectStack[objectStack.length - 1]\n );\n array.push(value);\n }\n }\n );\n}\n\n/**\n * Make an object stack replacer function for replacing the object at the\n * top of the stack.\n * @param {function(this: T, Node, Array<*>): *} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeReplacer(valueReader, thisArg) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n objectStack[objectStack.length - 1] = value;\n }\n }\n );\n}\n\n/**\n * Make an object property pusher function for adding a property to the\n * object at the top of the stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [property] Property.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertyPusher(valueReader, property, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const object = /** @type {!Object} */ (\n objectStack[objectStack.length - 1]\n );\n const name = property !== undefined ? property : node.localName;\n let array;\n if (name in object) {\n array = object[name];\n } else {\n array = [];\n object[name] = array;\n }\n array.push(value);\n }\n }\n );\n}\n\n/**\n * Make an object property setter function.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [property] Property.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertySetter(valueReader, property, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const object = /** @type {!Object} */ (\n objectStack[objectStack.length - 1]\n );\n const name = property !== undefined ? property : node.localName;\n object[name] = value;\n }\n }\n );\n}\n\n/**\n * Create a serializer that appends nodes written by its `nodeWriter` to its\n * designated parent. The parent is the `node` of the\n * {@link module:ol/xml~NodeStackItem} at the top of the `objectStack`.\n * @param {function(this: T, Node, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [thisArg] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeChildAppender(nodeWriter, thisArg) {\n return function (node, value, objectStack) {\n nodeWriter.call(\n thisArg !== undefined ? thisArg : this,\n node,\n value,\n objectStack,\n );\n const parent = /** @type {NodeStackItem} */ (\n objectStack[objectStack.length - 1]\n );\n const parentNode = parent.node;\n parentNode.appendChild(node);\n };\n}\n\n/**\n * Create a serializer that calls the provided `nodeWriter` from\n * {@link module:ol/xml.serialize}. This can be used by the parent writer to have the\n * `nodeWriter` called with an array of values when the `nodeWriter` was\n * designed to serialize a single item. An example would be a LineString\n * geometry writer, which could be reused for writing MultiLineString\n * geometries.\n * @param {function(this: T, Element, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [thisArg] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeArraySerializer(nodeWriter, thisArg) {\n let serializersNS, nodeFactory;\n return function (node, value, objectStack) {\n if (serializersNS === undefined) {\n serializersNS = {};\n const serializers = {};\n serializers[node.localName] = nodeWriter;\n serializersNS[node.namespaceURI] = serializers;\n nodeFactory = makeSimpleNodeFactory(node.localName);\n }\n serialize(serializersNS, nodeFactory, value, objectStack);\n };\n}\n\n/**\n * Create a node factory which can use the `keys` passed to\n * {@link module:ol/xml.serialize} or {@link module:ol/xml.pushSerializeAndPop} as node names,\n * or a fixed node name. The namespace of the created nodes can either be fixed,\n * or the parent namespace will be used.\n * @param {string} [fixedNodeName] Fixed node name which will be used for all\n * created nodes. If not provided, the 3rd argument to the resulting node\n * factory needs to be provided and will be the nodeName.\n * @param {string} [fixedNamespaceURI] Fixed namespace URI which will be used for\n * all created nodes. If not provided, the namespace of the parent node will\n * be used.\n * @return {function(*, Array<*>, string=): (Node|undefined)} Node factory.\n */\nexport function makeSimpleNodeFactory(fixedNodeName, fixedNamespaceURI) {\n return (\n /**\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [newNodeName] Node name.\n * @return {Node} Node.\n */\n function (value, objectStack, newNodeName) {\n const context = /** @type {NodeStackItem} */ (\n objectStack[objectStack.length - 1]\n );\n const node = context.node;\n let nodeName = fixedNodeName;\n if (nodeName === undefined) {\n nodeName = newNodeName;\n }\n\n const namespaceURI =\n fixedNamespaceURI !== undefined ? fixedNamespaceURI : node.namespaceURI;\n return createElementNS(namespaceURI, /** @type {string} */ (nodeName));\n }\n );\n}\n\n/**\n * A node factory that creates a node using the parent's `namespaceURI` and the\n * `nodeName` passed by {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop} to the node factory.\n * @const\n * @type {function(*, Array<*>, string=): (Node|undefined)}\n */\nexport const OBJECT_PROPERTY_NODE_FACTORY = makeSimpleNodeFactory();\n\n/**\n * Create an array of `values` to be used with {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop}, where `orderedKeys` has to be provided as\n * `key` argument.\n * @param {Object} object Key-value pairs for the sequence. Keys can\n * be a subset of the `orderedKeys`.\n * @param {Array} orderedKeys Keys in the order of the sequence.\n * @return {Array<*>} Values in the order of the sequence. The resulting array\n * has the same length as the `orderedKeys` array. Values that are not\n * present in `object` will be `undefined` in the resulting array.\n */\nexport function makeSequence(object, orderedKeys) {\n const length = orderedKeys.length;\n const sequence = new Array(length);\n for (let i = 0; i < length; ++i) {\n sequence[i] = object[orderedKeys[i]];\n }\n return sequence;\n}\n\n/**\n * Create a namespaced structure, using the same values for each namespace.\n * This can be used as a starting point for versioned parsers, when only a few\n * values are version specific.\n * @param {Array} namespaceURIs Namespace URIs.\n * @param {T} structure Structure.\n * @param {Object} [structureNS] Namespaced structure to add to.\n * @return {Object} Namespaced structure.\n * @template T\n */\nexport function makeStructureNS(namespaceURIs, structure, structureNS) {\n structureNS = structureNS !== undefined ? structureNS : {};\n let i, ii;\n for (i = 0, ii = namespaceURIs.length; i < ii; ++i) {\n structureNS[namespaceURIs[i]] = structure;\n }\n return structureNS;\n}\n\n/**\n * Parse a node using the parsers and object stack.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [thisArg] The object to use as `this`.\n */\nexport function parseNode(parsersNS, node, objectStack, thisArg) {\n let n;\n for (n = node.firstElementChild; n; n = n.nextElementSibling) {\n const parsers = parsersNS[n.namespaceURI];\n if (parsers !== undefined) {\n const parser = parsers[n.localName];\n if (parser !== undefined) {\n parser.call(thisArg, n, objectStack);\n }\n }\n }\n}\n\n/**\n * Push an object on top of the stack, parse and return the popped object.\n * @param {T} object Object.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [thisArg] The object to use as `this`.\n * @return {T} Object.\n * @template T\n */\nexport function pushParseAndPop(object, parsersNS, node, objectStack, thisArg) {\n objectStack.push(object);\n parseNode(parsersNS, node, objectStack, thisArg);\n return /** @type {T} */ (objectStack.pop());\n}\n\n/**\n * Walk through an array of `values` and call a serializer for each value.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `keys` has\n * to match the length of `values`. For serializing a sequence, `keys`\n * determines the order of the sequence.\n * @param {T} [thisArg] The object to use as `this` for the node factory and\n * serializers.\n * @template T\n */\nexport function serialize(\n serializersNS,\n nodeFactory,\n values,\n objectStack,\n keys,\n thisArg,\n) {\n const length = (keys !== undefined ? keys : values).length;\n let value, node;\n for (let i = 0; i < length; ++i) {\n value = values[i];\n if (value !== undefined) {\n node = nodeFactory.call(\n thisArg !== undefined ? thisArg : this,\n value,\n objectStack,\n keys !== undefined ? keys[i] : undefined,\n );\n if (node !== undefined) {\n serializersNS[node.namespaceURI][node.localName].call(\n thisArg,\n node,\n value,\n objectStack,\n );\n }\n }\n }\n}\n\n/**\n * @param {O} object Object.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `keys` has\n * to match the length of `values`. For serializing a sequence, `keys`\n * determines the order of the sequence.\n * @param {T} [thisArg] The object to use as `this` for the node factory and\n * serializers.\n * @return {O|undefined} Object.\n * @template O, T\n */\nexport function pushSerializeAndPop(\n object,\n serializersNS,\n nodeFactory,\n values,\n objectStack,\n keys,\n thisArg,\n) {\n objectStack.push(object);\n serialize(serializersNS, nodeFactory, values, objectStack, keys, thisArg);\n return /** @type {O|undefined} */ (objectStack.pop());\n}\n\nlet xmlSerializer_ = undefined;\n\n/**\n * Register a XMLSerializer. Can be used to inject a XMLSerializer\n * where there is no globally available implementation.\n *\n * @param {XMLSerializer} xmlSerializer A XMLSerializer.\n * @api\n */\nexport function registerXMLSerializer(xmlSerializer) {\n xmlSerializer_ = xmlSerializer;\n}\n\n/**\n * @return {XMLSerializer} The XMLSerializer.\n */\nexport function getXMLSerializer() {\n if (xmlSerializer_ === undefined && typeof XMLSerializer !== 'undefined') {\n xmlSerializer_ = new XMLSerializer();\n }\n return xmlSerializer_;\n}\n\nlet document_ = undefined;\n\n/**\n * Register a Document to use when creating nodes for XML serializations. Can be used\n * to inject a Document where there is no globally available implementation.\n *\n * @param {Document} document A Document.\n * @api\n */\nexport function registerDocument(document) {\n document_ = document;\n}\n\n/**\n * Get a document that should be used when creating nodes for XML serializations.\n * @return {Document} The document.\n */\nexport function getDocument() {\n if (document_ === undefined && typeof document !== 'undefined') {\n document_ = document.implementation.createDocument('', '', null);\n }\n return document_;\n}\n","/**\n * @module ol/format/XML\n */\nimport {abstract} from '../util.js';\nimport {isDocument, parse} from '../xml.js';\n\n/**\n * @classdesc\n * Generic format for reading non-feature XML data\n *\n * @abstract\n */\nclass XML {\n /**\n * Read the source document.\n *\n * @param {Document|Element|string} source The XML source.\n * @return {Object|null} An object representing the source.\n * @api\n */\n read(source) {\n if (!source) {\n return null;\n }\n if (typeof source === 'string') {\n const doc = parse(source);\n return this.readFromDocument(doc);\n }\n if (isDocument(source)) {\n return this.readFromDocument(/** @type {Document} */ (source));\n }\n return this.readFromNode(/** @type {Element} */ (source));\n }\n\n /**\n * @param {Document} doc Document.\n * @return {Object|null} Object\n */\n readFromDocument(doc) {\n for (let n = doc.firstChild; n; n = n.nextSibling) {\n if (n.nodeType == Node.ELEMENT_NODE) {\n return this.readFromNode(/** @type {Element} */ (n));\n }\n }\n return null;\n }\n\n /**\n * @abstract\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n abstract();\n }\n}\n\nexport default XML;\n","/**\n * @module ol/format/xlink\n */\n\n/**\n * @const\n * @type {string}\n */\nconst NAMESPACE_URI = 'http://www.w3.org/1999/xlink';\n\n/**\n * @param {Element} node Node.\n * @return {string|null} href.\n */\nexport function readHref(node) {\n return node.getAttributeNS(NAMESPACE_URI, 'href');\n}\n","/**\n * @module ol/format/xsd\n */\nimport {getAllTextContent, getDocument} from '../xml.js';\nimport {padNumber} from '../string.js';\n\n/**\n * @param {Node} node Node.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBoolean(node) {\n const s = getAllTextContent(node, false);\n return readBooleanString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBooleanString(string) {\n const m = /^\\s*(true|1)|(false|0)\\s*$/.exec(string);\n if (m) {\n return m[1] !== undefined || false;\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} DateTime in seconds.\n */\nexport function readDateTime(node) {\n const s = getAllTextContent(node, false);\n const dateTime = Date.parse(s);\n return isNaN(dateTime) ? undefined : dateTime / 1000;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimal(node) {\n const s = getAllTextContent(node, false);\n return readDecimalString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimalString(string) {\n // FIXME check spec\n const m = /^\\s*([+\\-]?\\d*\\.?\\d+(?:e[+\\-]?\\d+)?)\\s*$/i.exec(string);\n if (m) {\n return parseFloat(m[1]);\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Non negative integer.\n */\nexport function readPositiveInteger(node) {\n const s = getAllTextContent(node, false);\n return readNonNegativeIntegerString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {number|undefined} Non negative integer.\n */\nexport function readNonNegativeIntegerString(string) {\n const m = /^\\s*(\\d+)\\s*$/.exec(string);\n if (m) {\n return parseInt(m[1], 10);\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {string|undefined} String.\n */\nexport function readString(node) {\n return getAllTextContent(node, false).trim();\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the boolean to.\n * @param {boolean} bool Boolean.\n */\nexport function writeBooleanTextNode(node, bool) {\n writeStringTextNode(node, bool ? '1' : '0');\n}\n\n/**\n * @param {Node} node Node to append a CDATA Section with the string to.\n * @param {string} string String.\n */\nexport function writeCDATASection(node, string) {\n node.appendChild(getDocument().createCDATASection(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the dateTime to.\n * @param {number} dateTime DateTime in seconds.\n */\nexport function writeDateTimeTextNode(node, dateTime) {\n const date = new Date(dateTime * 1000);\n const string =\n date.getUTCFullYear() +\n '-' +\n padNumber(date.getUTCMonth() + 1, 2) +\n '-' +\n padNumber(date.getUTCDate(), 2) +\n 'T' +\n padNumber(date.getUTCHours(), 2) +\n ':' +\n padNumber(date.getUTCMinutes(), 2) +\n ':' +\n padNumber(date.getUTCSeconds(), 2) +\n 'Z';\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} decimal Decimal.\n */\nexport function writeDecimalTextNode(node, decimal) {\n const string = decimal.toPrecision();\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} nonNegativeInteger Non negative integer.\n */\nexport function writeNonNegativeIntegerTextNode(node, nonNegativeInteger) {\n const string = nonNegativeInteger.toString();\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the string to.\n * @param {string} string String.\n */\nexport function writeStringTextNode(node, string) {\n node.appendChild(getDocument().createTextNode(string));\n}\n","/**\n * @module ol/format/OWS\n */\nimport XML from './XML.js';\nimport {\n makeObjectPropertyPusher,\n makeObjectPropertySetter,\n makeStructureNS,\n pushParseAndPop,\n} from '../xml.js';\nimport {readHref} from './xlink.js';\nimport {readString} from './xsd.js';\n\n/**\n * @const\n * @type {Array}\n */\nconst NAMESPACE_URIS = [null, 'http://www.opengis.net/ows/1.1'];\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ServiceIdentification': makeObjectPropertySetter(readServiceIdentification),\n 'ServiceProvider': makeObjectPropertySetter(readServiceProvider),\n 'OperationsMetadata': makeObjectPropertySetter(readOperationsMetadata),\n});\n\nclass OWS extends XML {\n constructor() {\n super();\n }\n\n /**\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n const owsObject = pushParseAndPop({}, PARSERS, node, []);\n return owsObject ? owsObject : null;\n }\n}\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst ADDRESS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'DeliveryPoint': makeObjectPropertySetter(readString),\n 'City': makeObjectPropertySetter(readString),\n 'AdministrativeArea': makeObjectPropertySetter(readString),\n 'PostalCode': makeObjectPropertySetter(readString),\n 'Country': makeObjectPropertySetter(readString),\n 'ElectronicMailAddress': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst ALLOWED_VALUES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Value': makeObjectPropertyPusher(readValue),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONSTRAINT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'AllowedValues': makeObjectPropertySetter(readAllowedValues),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONTACT_INFO_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Phone': makeObjectPropertySetter(readPhone),\n 'Address': makeObjectPropertySetter(readAddress),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst DCP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'HTTP': makeObjectPropertySetter(readHttp),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst HTTP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Get': makeObjectPropertyPusher(readGet),\n 'Post': undefined, // TODO\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst OPERATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'DCP': makeObjectPropertySetter(readDcp),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst OPERATIONS_METADATA_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Operation': readOperation,\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PHONE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Voice': makeObjectPropertySetter(readString),\n 'Facsimile': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst REQUEST_METHOD_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Constraint': makeObjectPropertyPusher(readConstraint),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_CONTACT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'IndividualName': makeObjectPropertySetter(readString),\n 'PositionName': makeObjectPropertySetter(readString),\n 'ContactInfo': makeObjectPropertySetter(readContactInfo),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_IDENTIFICATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Abstract': makeObjectPropertySetter(readString),\n 'AccessConstraints': makeObjectPropertySetter(readString),\n 'Fees': makeObjectPropertySetter(readString),\n 'Title': makeObjectPropertySetter(readString),\n 'ServiceTypeVersion': makeObjectPropertySetter(readString),\n 'ServiceType': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_PROVIDER_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ProviderName': makeObjectPropertySetter(readString),\n 'ProviderSite': makeObjectPropertySetter(readHref),\n 'ServiceContact': makeObjectPropertySetter(readServiceContact),\n});\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The address.\n */\nfunction readAddress(node, objectStack) {\n return pushParseAndPop({}, ADDRESS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The values.\n */\nfunction readAllowedValues(node, objectStack) {\n return pushParseAndPop({}, ALLOWED_VALUES_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The constraint.\n */\nfunction readConstraint(node, objectStack) {\n const name = node.getAttribute('name');\n if (!name) {\n return undefined;\n }\n return pushParseAndPop({'name': name}, CONSTRAINT_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The contact info.\n */\nfunction readContactInfo(node, objectStack) {\n return pushParseAndPop({}, CONTACT_INFO_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The DCP.\n */\nfunction readDcp(node, objectStack) {\n return pushParseAndPop({}, DCP_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The GET object.\n */\nfunction readGet(node, objectStack) {\n const href = readHref(node);\n if (!href) {\n return undefined;\n }\n return pushParseAndPop(\n {'href': href},\n REQUEST_METHOD_PARSERS,\n node,\n objectStack,\n );\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The HTTP object.\n */\nfunction readHttp(node, objectStack) {\n return pushParseAndPop({}, HTTP_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The operation.\n */\nfunction readOperation(node, objectStack) {\n const name = node.getAttribute('name');\n const value = pushParseAndPop({}, OPERATION_PARSERS, node, objectStack);\n if (!value) {\n return undefined;\n }\n const object = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n object[name] = value;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The operations metadata.\n */\nfunction readOperationsMetadata(node, objectStack) {\n return pushParseAndPop({}, OPERATIONS_METADATA_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The phone.\n */\nfunction readPhone(node, objectStack) {\n return pushParseAndPop({}, PHONE_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service identification.\n */\nfunction readServiceIdentification(node, objectStack) {\n return pushParseAndPop({}, SERVICE_IDENTIFICATION_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service contact.\n */\nfunction readServiceContact(node, objectStack) {\n return pushParseAndPop({}, SERVICE_CONTACT_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service provider.\n */\nfunction readServiceProvider(node, objectStack) {\n return pushParseAndPop({}, SERVICE_PROVIDER_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {string|undefined} The value.\n */\nfunction readValue(node, objectStack) {\n return readString(node);\n}\n\nexport default OWS;\n","/**\n * @module ol/format/WMTSCapabilities\n */\nimport OWS from './OWS.js';\nimport XML from './XML.js';\nimport {boundingExtent} from '../extent.js';\nimport {\n makeArrayPusher,\n makeObjectPropertyPusher,\n makeObjectPropertySetter,\n makeStructureNS,\n pushParseAndPop,\n} from '../xml.js';\nimport {readDecimal, readPositiveInteger, readString} from './xsd.js';\nimport {readHref} from './xlink.js';\n\n/**\n * @const\n * @type {Array}\n */\nconst NAMESPACE_URIS = [null, 'http://www.opengis.net/wmts/1.0'];\n\n/**\n * @const\n * @type {Array}\n */\nconst OWS_NAMESPACE_URIS = [null, 'http://www.opengis.net/ows/1.1'];\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Contents': makeObjectPropertySetter(readContents),\n});\n\n/**\n * @classdesc\n * Format for reading WMTS capabilities data.\n *\n * @api\n */\nclass WMTSCapabilities extends XML {\n constructor() {\n super();\n\n /**\n * @type {OWS}\n * @private\n */\n this.owsParser_ = new OWS();\n }\n\n /**\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n let version = node.getAttribute('version');\n if (version) {\n version = version.trim();\n }\n let WMTSCapabilityObject = this.owsParser_.readFromNode(node);\n if (!WMTSCapabilityObject) {\n return null;\n }\n WMTSCapabilityObject['version'] = version;\n WMTSCapabilityObject = pushParseAndPop(\n WMTSCapabilityObject,\n PARSERS,\n node,\n [],\n );\n return WMTSCapabilityObject ? WMTSCapabilityObject : null;\n }\n}\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONTENTS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Layer': makeObjectPropertyPusher(readLayer),\n 'TileMatrixSet': makeObjectPropertyPusher(readTileMatrixSet),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst LAYER_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'Style': makeObjectPropertyPusher(readStyle),\n 'Format': makeObjectPropertyPusher(readString),\n 'TileMatrixSetLink': makeObjectPropertyPusher(readTileMatrixSetLink),\n 'Dimension': makeObjectPropertyPusher(readDimensions),\n 'ResourceURL': makeObjectPropertyPusher(readResourceUrl),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Title': makeObjectPropertySetter(readString),\n 'Abstract': makeObjectPropertySetter(readString),\n 'WGS84BoundingBox': makeObjectPropertySetter(readBoundingBox),\n 'BoundingBox': makeObjectPropertyPusher(readBoundingBoxWithCrs),\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst STYLE_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'LegendURL': makeObjectPropertyPusher(readLegendUrl),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Title': makeObjectPropertySetter(readString),\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LINKS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrixSet': makeObjectPropertySetter(readString),\n 'TileMatrixSetLimits': makeObjectPropertySetter(readTileMatrixLimitsList),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LIMITS_LIST_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrixLimits': makeArrayPusher(readTileMatrixLimits),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LIMITS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrix': makeObjectPropertySetter(readString),\n 'MinTileRow': makeObjectPropertySetter(readPositiveInteger),\n 'MaxTileRow': makeObjectPropertySetter(readPositiveInteger),\n 'MinTileCol': makeObjectPropertySetter(readPositiveInteger),\n 'MaxTileCol': makeObjectPropertySetter(readPositiveInteger),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst DIMENSION_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'Default': makeObjectPropertySetter(readString),\n 'Value': makeObjectPropertyPusher(readString),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst WGS84_BBOX_READERS = makeStructureNS(OWS_NAMESPACE_URIS, {\n 'LowerCorner': makeArrayPusher(readCoordinates),\n 'UpperCorner': makeArrayPusher(readCoordinates),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'WellKnownScaleSet': makeObjectPropertySetter(readString),\n 'TileMatrix': makeObjectPropertyPusher(readTileMatrix),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'SupportedCRS': makeObjectPropertySetter(readString),\n 'Identifier': makeObjectPropertySetter(readString),\n 'BoundingBox': makeObjectPropertySetter(readBoundingBox),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TM_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'TopLeftCorner': makeObjectPropertySetter(readCoordinates),\n 'ScaleDenominator': makeObjectPropertySetter(readDecimal),\n 'TileWidth': makeObjectPropertySetter(readPositiveInteger),\n 'TileHeight': makeObjectPropertySetter(readPositiveInteger),\n 'MatrixWidth': makeObjectPropertySetter(readPositiveInteger),\n 'MatrixHeight': makeObjectPropertySetter(readPositiveInteger),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Attribution object.\n */\nfunction readContents(node, objectStack) {\n return pushParseAndPop({}, CONTENTS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Layers object.\n */\nfunction readLayer(node, objectStack) {\n return pushParseAndPop({}, LAYER_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Tile Matrix Set object.\n */\nfunction readTileMatrixSet(node, objectStack) {\n return pushParseAndPop({}, TMS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Style object.\n */\nfunction readStyle(node, objectStack) {\n const style = pushParseAndPop({}, STYLE_PARSERS, node, objectStack);\n if (!style) {\n return undefined;\n }\n const isDefault = node.getAttribute('isDefault') === 'true';\n style['isDefault'] = isDefault;\n return style;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Tile Matrix Set Link object.\n */\nfunction readTileMatrixSetLink(node, objectStack) {\n return pushParseAndPop({}, TMS_LINKS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Dimension object.\n */\nfunction readDimensions(node, objectStack) {\n return pushParseAndPop({}, DIMENSION_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Resource URL object.\n */\nfunction readResourceUrl(node, objectStack) {\n const format = node.getAttribute('format');\n const template = node.getAttribute('template');\n const resourceType = node.getAttribute('resourceType');\n const resource = {};\n if (format) {\n resource['format'] = format;\n }\n if (template) {\n resource['template'] = template;\n }\n if (resourceType) {\n resource['resourceType'] = resourceType;\n }\n return resource;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} BBox object.\n */\nfunction readBoundingBox(node, objectStack) {\n const coordinates = pushParseAndPop(\n [],\n WGS84_BBOX_READERS,\n node,\n objectStack,\n );\n if (coordinates.length != 2) {\n return undefined;\n }\n return boundingExtent(coordinates);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} BBox object.\n */\nfunction readBoundingBoxWithCrs(node, objectStack) {\n const crs = node.getAttribute('crs');\n const coordinates = pushParseAndPop(\n [],\n WGS84_BBOX_READERS,\n node,\n objectStack,\n );\n if (coordinates.length != 2) {\n return undefined;\n }\n return {extent: boundingExtent(coordinates), crs: crs};\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Legend object.\n */\nfunction readLegendUrl(node, objectStack) {\n const legend = {};\n legend['format'] = node.getAttribute('format');\n legend['href'] = readHref(node);\n return legend;\n}\n\n/**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Coordinates object.\n */\nfunction readCoordinates(node, objectStack) {\n const coordinates = readString(node).split(/\\s+/);\n if (!coordinates || coordinates.length != 2) {\n return undefined;\n }\n const x = +coordinates[0];\n const y = +coordinates[1];\n if (isNaN(x) || isNaN(y)) {\n return undefined;\n }\n return [x, y];\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrix object.\n */\nfunction readTileMatrix(node, objectStack) {\n return pushParseAndPop({}, TM_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrixSetLimits Object.\n */\nfunction readTileMatrixLimitsList(node, objectStack) {\n return pushParseAndPop([], TMS_LIMITS_LIST_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrixLimits Array.\n */\nfunction readTileMatrixLimits(node, objectStack) {\n return pushParseAndPop({}, TMS_LIMITS_PARSERS, node, objectStack);\n}\n\nexport default WMTSCapabilities;\n","/**\n * @module ol/uri\n */\n\n/**\n * Appends query parameters to a URI.\n *\n * @param {string} uri The original URI, which may already have query data.\n * @param {!Object} params An object where keys are URI-encoded parameter keys,\n * and the values are arbitrary types or arrays.\n * @return {string} The new URI.\n */\nexport function appendParams(uri, params) {\n /** @type {Array} */\n const keyParams = [];\n // Skip any null or undefined parameter values\n Object.keys(params).forEach(function (k) {\n if (params[k] !== null && params[k] !== undefined) {\n keyParams.push(k + '=' + encodeURIComponent(params[k]));\n }\n });\n const qs = keyParams.join('&');\n // remove any trailing ? or &\n uri = uri.replace(/[?&]$/, '');\n // append ? or & depending on whether uri has existing parameters\n uri += uri.includes('?') ? '&' : '?';\n return uri + qs;\n}\n","/**\n * @module ol/tilegrid/WMTS\n */\n\nimport TileGrid from './TileGrid.js';\nimport {get as getProjection} from '../proj.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../extent.js\").Extent} [extent] Extent for the tile grid. No tiles\n * outside this extent will be requested by {@link module:ol/source/Tile~TileSource} sources.\n * When no `origin` or `origins` are configured, the `origin` will be set to the\n * top-left corner of the extent.\n * @property {import(\"../coordinate.js\").Coordinate} [origin] The tile grid origin, i.e.\n * where the `x` and `y` axes meet (`[z, 0, 0]`). Tile coordinates increase left\n * to right and downwards. If not specified, `extent` or `origins` must be provided.\n * @property {Array} [origins] Tile grid origins,\n * i.e. where the `x` and `y` axes meet (`[z, 0, 0]`), for each zoom level. If\n * given, the array length should match the length of the `resolutions` array, i.e.\n * each resolution can have a different origin. Tile coordinates increase left to\n * right and downwards. If not specified, `extent` or `origin` must be provided.\n * @property {!Array} resolutions Resolutions. The array index of each\n * resolution needs to match the zoom level. This means that even if a `minZoom`\n * is configured, the resolutions array will have a length of `maxZoom + 1`\n * @property {!Array} matrixIds matrix IDs. The length of this array needs\n * to match the length of the `resolutions` array.\n * @property {Array} [sizes] Number of tile rows and columns\n * of the grid for each zoom level. The values here are the `TileMatrixWidth` and\n * `TileMatrixHeight` advertised in the GetCapabilities response of the WMTS, and\n * define each zoom level's extent together with the `origin` or `origins`.\n * A grid `extent` can be configured in addition, and will further limit the extent for\n * which tile requests are made by sources. If the bottom-left corner of\n * an extent is used as `origin` or `origins`, then the `y` value must be\n * negative because OpenLayers tile coordinates use the top left as the origin.\n * @property {number|import(\"../size.js\").Size} [tileSize] Tile size.\n * @property {Array} [tileSizes] Tile sizes. The length of\n * this array needs to match the length of the `resolutions` array.\n */\n\n/**\n * @classdesc\n * Set the grid pattern for sources accessing WMTS tiled-image servers.\n * @api\n */\nclass WMTSTileGrid extends TileGrid {\n /**\n * @param {Options} options WMTS options.\n */\n constructor(options) {\n super({\n extent: options.extent,\n origin: options.origin,\n origins: options.origins,\n resolutions: options.resolutions,\n tileSize: options.tileSize,\n tileSizes: options.tileSizes,\n sizes: options.sizes,\n });\n\n /**\n * @private\n * @type {!Array}\n */\n this.matrixIds_ = options.matrixIds;\n }\n\n /**\n * @param {number} z Z.\n * @return {string} MatrixId..\n */\n getMatrixId(z) {\n return this.matrixIds_[z];\n }\n\n /**\n * Get the list of matrix identifiers.\n * @return {Array} MatrixIds.\n * @api\n */\n getMatrixIds() {\n return this.matrixIds_;\n }\n}\n\nexport default WMTSTileGrid;\n\n/**\n * Create a tile grid from a WMTS capabilities matrix set and an\n * optional TileMatrixSetLimits.\n * @param {Object} matrixSet An object representing a matrixSet in the\n * capabilities document.\n * @param {import(\"../extent.js\").Extent} [extent] An optional extent to restrict the tile\n * ranges the server provides.\n * @param {Array} [matrixLimits] An optional object representing\n * the available matrices for tileGrid.\n * @return {WMTSTileGrid} WMTS tileGrid instance.\n * @api\n */\nexport function createFromCapabilitiesMatrixSet(\n matrixSet,\n extent,\n matrixLimits,\n) {\n /** @type {!Array} */\n const resolutions = [];\n /** @type {!Array} */\n const matrixIds = [];\n /** @type {!Array} */\n const origins = [];\n /** @type {!Array} */\n const tileSizes = [];\n /** @type {!Array} */\n const sizes = [];\n\n matrixLimits = matrixLimits !== undefined ? matrixLimits : [];\n\n const supportedCRSPropName = 'SupportedCRS';\n const matrixIdsPropName = 'TileMatrix';\n const identifierPropName = 'Identifier';\n const scaleDenominatorPropName = 'ScaleDenominator';\n const topLeftCornerPropName = 'TopLeftCorner';\n const tileWidthPropName = 'TileWidth';\n const tileHeightPropName = 'TileHeight';\n\n const code = matrixSet[supportedCRSPropName];\n const projection = getProjection(code);\n const metersPerUnit = projection.getMetersPerUnit();\n // swap origin x and y coordinates if axis orientation is lat/long\n const switchOriginXY = projection.getAxisOrientation().substr(0, 2) == 'ne';\n\n matrixSet[matrixIdsPropName].sort(function (a, b) {\n return b[scaleDenominatorPropName] - a[scaleDenominatorPropName];\n });\n\n matrixSet[matrixIdsPropName].forEach(function (elt) {\n let matrixAvailable;\n // use of matrixLimits to filter TileMatrices from GetCapabilities\n // TileMatrixSet from unavailable matrix levels.\n if (matrixLimits.length > 0) {\n matrixAvailable = matrixLimits.find(function (elt_ml) {\n if (elt[identifierPropName] == elt_ml[matrixIdsPropName]) {\n return true;\n }\n // Fallback for tileMatrix identifiers that don't get prefixed\n // by their tileMatrixSet identifiers.\n if (!elt[identifierPropName].includes(':')) {\n return (\n matrixSet[identifierPropName] + ':' + elt[identifierPropName] ===\n elt_ml[matrixIdsPropName]\n );\n }\n return false;\n });\n } else {\n matrixAvailable = true;\n }\n\n if (matrixAvailable) {\n matrixIds.push(elt[identifierPropName]);\n const resolution =\n (elt[scaleDenominatorPropName] * 0.28e-3) / metersPerUnit;\n const tileWidth = elt[tileWidthPropName];\n const tileHeight = elt[tileHeightPropName];\n if (switchOriginXY) {\n origins.push([\n elt[topLeftCornerPropName][1],\n elt[topLeftCornerPropName][0],\n ]);\n } else {\n origins.push(elt[topLeftCornerPropName]);\n }\n resolutions.push(resolution);\n tileSizes.push(\n tileWidth == tileHeight ? tileWidth : [tileWidth, tileHeight],\n );\n sizes.push([elt['MatrixWidth'], elt['MatrixHeight']]);\n }\n });\n\n return new WMTSTileGrid({\n extent: extent,\n origins: origins,\n resolutions: resolutions,\n matrixIds: matrixIds,\n tileSizes: tileSizes,\n sizes: sizes,\n });\n}\n","/**\n * @module ol/source/WMTS\n */\n\nimport TileImage from './TileImage.js';\nimport {appendParams} from '../uri.js';\nimport {containsExtent} from '../extent.js';\nimport {createFromCapabilitiesMatrixSet} from '../tilegrid/WMTS.js';\nimport {createFromTileUrlFunctions, expandUrl} from '../tileurlfunction.js';\nimport {equivalent, get as getProjection, transformExtent} from '../proj.js';\n\n/**\n * Request encoding. One of 'KVP', 'REST'.\n * @typedef {'KVP' | 'REST'} RequestEncoding\n */\n\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.\n * @property {null|string} [crossOrigin] The `crossOrigin` attribute for loaded images. Note that\n * you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.\n * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,\n * linear interpolation is used when resampling. Set to false to use the nearest neighbor instead.\n * @property {import(\"../tilegrid/WMTS.js\").default} tileGrid Tile grid.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection. Default is the view projection.\n * @property {number} [reprojectionErrorThreshold=0.5] Maximum allowed reprojection error (in pixels).\n * Higher values can increase reprojection performance, but decrease precision.\n * @property {RequestEncoding} [requestEncoding='KVP'] Request encoding.\n * @property {string} layer Layer name as advertised in the WMTS capabilities.\n * @property {string} style Style name as advertised in the WMTS capabilities.\n * @property {typeof import(\"../ImageTile.js\").default} [tileClass] Class used to instantiate image tiles. Default is {@link module:ol/ImageTile~ImageTile}.\n * @property {number} [tilePixelRatio=1] The pixel ratio used by the tile service.\n * For example, if the tile service advertizes 256px by 256px tiles but actually sends 512px\n * by 512px images (for retina/hidpi devices) then `tilePixelRatio`\n * should be set to `2`.\n * @property {string} [format='image/jpeg'] Image format. Only used when `requestEncoding` is `'KVP'`.\n * @property {string} [version='1.0.0'] WMTS version.\n * @property {string} matrixSet Matrix set.\n * @property {!Object} [dimensions] Additional \"dimensions\" for tile requests.\n * This is an object with properties named like the advertised WMTS dimensions.\n * @property {string} [url] A URL for the service.\n * For the RESTful request encoding, this is a URL\n * template. For KVP encoding, it is normal URL. A `{?-?}` template pattern,\n * for example `subdomain{a-f}.domain.com`, may be used instead of defining\n * each one separately in the `urls` option.\n * @property {import(\"../Tile.js\").LoadFunction} [tileLoadFunction] Optional function to load a tile given a URL. The default is\n * ```js\n * function(imageTile, src) {\n * imageTile.getImage().src = src;\n * };\n * ```\n * @property {Array} [urls] An array of URLs.\n * Requests will be distributed among the URLs in this array.\n * @property {boolean} [wrapX=false] Whether to wrap the world horizontally.\n * @property {number} [transition] Duration of the opacity transition for rendering.\n * To disable the opacity transition, pass `transition: 0`.\n * @property {number|import(\"../array.js\").NearestDirectionFunction} [zDirection=0]\n * Choose whether to use tiles with a higher or lower zoom level when between integer\n * zoom levels. See {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution}.\n */\n\n/**\n * @classdesc\n * Layer source for tile data from WMTS servers.\n * @api\n */\nclass WMTS extends TileImage {\n /**\n * @param {Options} options WMTS options.\n */\n constructor(options) {\n // TODO: add support for TileMatrixLimits\n\n const requestEncoding =\n options.requestEncoding !== undefined ? options.requestEncoding : 'KVP';\n\n // FIXME: should we create a default tileGrid?\n // we could issue a getCapabilities xhr to retrieve missing configuration\n const tileGrid = options.tileGrid;\n\n let urls = options.urls;\n if (urls === undefined && options.url !== undefined) {\n urls = expandUrl(options.url);\n }\n\n super({\n attributions: options.attributions,\n attributionsCollapsible: options.attributionsCollapsible,\n cacheSize: options.cacheSize,\n crossOrigin: options.crossOrigin,\n interpolate: options.interpolate,\n projection: options.projection,\n reprojectionErrorThreshold: options.reprojectionErrorThreshold,\n tileClass: options.tileClass,\n tileGrid: tileGrid,\n tileLoadFunction: options.tileLoadFunction,\n tilePixelRatio: options.tilePixelRatio,\n urls: urls,\n wrapX: options.wrapX !== undefined ? options.wrapX : false,\n transition: options.transition,\n zDirection: options.zDirection,\n });\n\n /**\n * @private\n * @type {string}\n */\n this.version_ = options.version !== undefined ? options.version : '1.0.0';\n\n /**\n * @private\n * @type {string}\n */\n this.format_ = options.format !== undefined ? options.format : 'image/jpeg';\n\n /**\n * @private\n * @type {!Object}\n */\n this.dimensions_ =\n options.dimensions !== undefined ? options.dimensions : {};\n\n /**\n * @private\n * @type {string}\n */\n this.layer_ = options.layer;\n\n /**\n * @private\n * @type {string}\n */\n this.matrixSet_ = options.matrixSet;\n\n /**\n * @private\n * @type {string}\n */\n this.style_ = options.style;\n\n // FIXME: should we guess this requestEncoding from options.url(s)\n // structure? that would mean KVP only if a template is not provided.\n\n /**\n * @private\n * @type {RequestEncoding}\n */\n this.requestEncoding_ = requestEncoding;\n\n this.setKey(this.getKeyForDimensions_());\n\n if (urls && urls.length > 0) {\n this.tileUrlFunction = createFromTileUrlFunctions(\n urls.map(this.createFromWMTSTemplate.bind(this)),\n );\n }\n }\n\n /**\n * Set the URLs to use for requests.\n * URLs may contain OGC conform URL Template Variables: {TileMatrix}, {TileRow}, {TileCol}.\n * @param {Array} urls URLs.\n */\n setUrls(urls) {\n this.urls = urls;\n const key = urls.join('\\n');\n this.setTileUrlFunction(\n createFromTileUrlFunctions(\n urls.map(this.createFromWMTSTemplate.bind(this)),\n ),\n key,\n );\n }\n\n /**\n * Get the dimensions, i.e. those passed to the constructor through the\n * \"dimensions\" option, and possibly updated using the updateDimensions\n * method.\n * @return {!Object} Dimensions.\n * @api\n */\n getDimensions() {\n return this.dimensions_;\n }\n\n /**\n * Return the image format of the WMTS source.\n * @return {string} Format.\n * @api\n */\n getFormat() {\n return this.format_;\n }\n\n /**\n * Return the layer of the WMTS source.\n * @return {string} Layer.\n * @api\n */\n getLayer() {\n return this.layer_;\n }\n\n /**\n * Return the matrix set of the WMTS source.\n * @return {string} MatrixSet.\n * @api\n */\n getMatrixSet() {\n return this.matrixSet_;\n }\n\n /**\n * Return the request encoding, either \"KVP\" or \"REST\".\n * @return {RequestEncoding} Request encoding.\n * @api\n */\n getRequestEncoding() {\n return this.requestEncoding_;\n }\n\n /**\n * Return the style of the WMTS source.\n * @return {string} Style.\n * @api\n */\n getStyle() {\n return this.style_;\n }\n\n /**\n * Return the version of the WMTS source.\n * @return {string} Version.\n * @api\n */\n getVersion() {\n return this.version_;\n }\n\n /**\n * @private\n * @return {string} The key for the current dimensions.\n */\n getKeyForDimensions_() {\n const res = this.urls ? this.urls.slice(0) : [];\n for (const key in this.dimensions_) {\n res.push(key + '-' + this.dimensions_[key]);\n }\n return res.join('/');\n }\n\n /**\n * Update the dimensions.\n * @param {Object} dimensions Dimensions.\n * @api\n */\n updateDimensions(dimensions) {\n Object.assign(this.dimensions_, dimensions);\n this.setKey(this.getKeyForDimensions_());\n }\n\n /**\n * @param {string} template Template.\n * @return {import(\"../Tile.js\").UrlFunction} Tile URL function.\n */\n createFromWMTSTemplate(template) {\n const requestEncoding = this.requestEncoding_;\n\n // context property names are lower case to allow for a case insensitive\n // replacement as some services use different naming conventions\n const context = {\n 'layer': this.layer_,\n 'style': this.style_,\n 'tilematrixset': this.matrixSet_,\n };\n\n if (requestEncoding == 'KVP') {\n Object.assign(context, {\n 'Service': 'WMTS',\n 'Request': 'GetTile',\n 'Version': this.version_,\n 'Format': this.format_,\n });\n }\n\n // TODO: we may want to create our own appendParams function so that params\n // order conforms to wmts spec guidance, and so that we can avoid to escape\n // special template params\n\n template =\n requestEncoding == 'KVP'\n ? appendParams(template, context)\n : template.replace(/\\{(\\w+?)\\}/g, function (m, p) {\n return p.toLowerCase() in context ? context[p.toLowerCase()] : m;\n });\n\n const tileGrid = /** @type {import(\"../tilegrid/WMTS.js\").default} */ (\n this.tileGrid\n );\n const dimensions = this.dimensions_;\n\n return (\n /**\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n function (tileCoord, pixelRatio, projection) {\n if (!tileCoord) {\n return undefined;\n }\n const localContext = {\n 'TileMatrix': tileGrid.getMatrixId(tileCoord[0]),\n 'TileCol': tileCoord[1],\n 'TileRow': tileCoord[2],\n };\n Object.assign(localContext, dimensions);\n let url = template;\n if (requestEncoding == 'KVP') {\n url = appendParams(url, localContext);\n } else {\n url = url.replace(/\\{(\\w+?)\\}/g, function (m, p) {\n return localContext[p];\n });\n }\n return url;\n }\n );\n }\n}\n\nexport default WMTS;\n\n/**\n * Generate source options from a capabilities object.\n * @param {Object} wmtsCap An object representing the capabilities document.\n * @param {!Object} config Configuration properties for the layer. Defaults for\n * the layer will apply if not provided.\n *\n * Required config properties:\n * - layer - {string} The layer identifier.\n *\n * Optional config properties:\n * - matrixSet - {string} The matrix set identifier, required if there is\n * more than one matrix set in the layer capabilities.\n * - projection - {string} The desired CRS when no matrixSet is specified.\n * eg: \"EPSG:3857\". If the desired projection is not available,\n * an error is thrown.\n * - requestEncoding - {string} url encoding format for the layer. Default is\n * the first tile url format found in the GetCapabilities response.\n * - style - {string} The name of the style\n * - format - {string} Image format for the layer. Default is the first\n * format returned in the GetCapabilities response.\n * - crossOrigin - {string|null|undefined} Cross origin. Default is `undefined`.\n * @return {Options|null} WMTS source options object or `null` if the layer was not found.\n * @api\n */\nexport function optionsFromCapabilities(wmtsCap, config) {\n const layers = wmtsCap['Contents']['Layer'];\n const l = layers?.find(function (elt) {\n return elt['Identifier'] == config['layer'];\n });\n if (!l) {\n return null;\n }\n const tileMatrixSets = wmtsCap['Contents']['TileMatrixSet'];\n let idx;\n if (l['TileMatrixSetLink'].length > 1) {\n if ('projection' in config) {\n idx = l['TileMatrixSetLink'].findIndex(function (elt) {\n const tileMatrixSet = tileMatrixSets.find(function (el) {\n return el['Identifier'] == elt['TileMatrixSet'];\n });\n const supportedCRS = tileMatrixSet['SupportedCRS'];\n const proj1 = getProjection(supportedCRS);\n const proj2 = getProjection(config['projection']);\n if (proj1 && proj2) {\n return equivalent(proj1, proj2);\n }\n return supportedCRS == config['projection'];\n });\n } else {\n idx = l['TileMatrixSetLink'].findIndex(function (elt) {\n return elt['TileMatrixSet'] == config['matrixSet'];\n });\n }\n } else {\n idx = 0;\n }\n if (idx < 0) {\n idx = 0;\n }\n const matrixSet =\n /** @type {string} */\n (l['TileMatrixSetLink'][idx]['TileMatrixSet']);\n const matrixLimits =\n /** @type {Array} */\n (l['TileMatrixSetLink'][idx]['TileMatrixSetLimits']);\n\n let format = /** @type {string} */ (l['Format'][0]);\n if ('format' in config) {\n format = config['format'];\n }\n idx = l['Style'].findIndex(function (elt) {\n if ('style' in config) {\n return elt['Title'] == config['style'];\n }\n return elt['isDefault'];\n });\n if (idx < 0) {\n idx = 0;\n }\n const style = /** @type {string} */ (l['Style'][idx]['Identifier']);\n\n const dimensions = {};\n if ('Dimension' in l) {\n l['Dimension'].forEach(function (elt, index, array) {\n const key = elt['Identifier'];\n let value = elt['Default'];\n if (value === undefined) {\n value = elt['Value'][0];\n }\n dimensions[key] = value;\n });\n }\n\n const matrixSets = wmtsCap['Contents']['TileMatrixSet'];\n const matrixSetObj = matrixSets.find(function (elt) {\n return elt['Identifier'] == matrixSet;\n });\n\n let projection;\n const code = matrixSetObj['SupportedCRS'];\n if (code) {\n projection = getProjection(code);\n }\n if ('projection' in config) {\n const projConfig = getProjection(config['projection']);\n if (projConfig) {\n if (!projection || equivalent(projConfig, projection)) {\n projection = projConfig;\n }\n }\n }\n\n let wrapX = false;\n const switchXY = projection.getAxisOrientation().substr(0, 2) == 'ne';\n\n let matrix = matrixSetObj.TileMatrix[0];\n\n // create default matrixLimit\n let selectedMatrixLimit = {\n MinTileCol: 0,\n MinTileRow: 0,\n // subtract one to end up at tile top left\n MaxTileCol: matrix.MatrixWidth - 1,\n MaxTileRow: matrix.MatrixHeight - 1,\n };\n\n //in case of matrix limits, use matrix limits to calculate extent\n if (matrixLimits) {\n selectedMatrixLimit = matrixLimits[matrixLimits.length - 1];\n const m = matrixSetObj.TileMatrix.find(\n (tileMatrixValue) =>\n tileMatrixValue.Identifier === selectedMatrixLimit.TileMatrix ||\n matrixSetObj.Identifier + ':' + tileMatrixValue.Identifier ===\n selectedMatrixLimit.TileMatrix,\n );\n if (m) {\n matrix = m;\n }\n }\n\n const resolution =\n (matrix.ScaleDenominator * 0.00028) / projection.getMetersPerUnit(); // WMTS 1.0.0: standardized rendering pixel size\n const origin = switchXY\n ? [matrix.TopLeftCorner[1], matrix.TopLeftCorner[0]]\n : matrix.TopLeftCorner;\n const tileSpanX = matrix.TileWidth * resolution;\n const tileSpanY = matrix.TileHeight * resolution;\n let matrixSetExtent = matrixSetObj['BoundingBox'];\n if (matrixSetExtent && switchXY) {\n matrixSetExtent = [\n matrixSetExtent[1],\n matrixSetExtent[0],\n matrixSetExtent[3],\n matrixSetExtent[2],\n ];\n }\n let extent = [\n origin[0] + tileSpanX * selectedMatrixLimit.MinTileCol,\n // add one to get proper bottom/right coordinate\n origin[1] - tileSpanY * (1 + selectedMatrixLimit.MaxTileRow),\n origin[0] + tileSpanX * (1 + selectedMatrixLimit.MaxTileCol),\n origin[1] - tileSpanY * selectedMatrixLimit.MinTileRow,\n ];\n\n if (\n matrixSetExtent !== undefined &&\n !containsExtent(matrixSetExtent, extent)\n ) {\n const wgs84BoundingBox = l['WGS84BoundingBox'];\n const wgs84ProjectionExtent = getProjection('EPSG:4326').getExtent();\n extent = matrixSetExtent;\n if (wgs84BoundingBox) {\n wrapX =\n wgs84BoundingBox[0] === wgs84ProjectionExtent[0] &&\n wgs84BoundingBox[2] === wgs84ProjectionExtent[2];\n } else {\n const wgs84MatrixSetExtent = transformExtent(\n matrixSetExtent,\n matrixSetObj['SupportedCRS'],\n 'EPSG:4326',\n );\n // Ignore slight deviation from the correct x limits\n wrapX =\n wgs84MatrixSetExtent[0] - 1e-10 <= wgs84ProjectionExtent[0] &&\n wgs84MatrixSetExtent[2] + 1e-10 >= wgs84ProjectionExtent[2];\n }\n }\n\n const tileGrid = createFromCapabilitiesMatrixSet(\n matrixSetObj,\n extent,\n matrixLimits,\n );\n\n /** @type {!Array} */\n const urls = [];\n let requestEncoding = config['requestEncoding'];\n requestEncoding = requestEncoding !== undefined ? requestEncoding : '';\n\n if (\n 'OperationsMetadata' in wmtsCap &&\n 'GetTile' in wmtsCap['OperationsMetadata']\n ) {\n const gets = wmtsCap['OperationsMetadata']['GetTile']['DCP']['HTTP']['Get'];\n\n for (let i = 0, ii = gets.length; i < ii; ++i) {\n if (gets[i]['Constraint']) {\n const constraint = gets[i]['Constraint'].find(function (element) {\n return element['name'] == 'GetEncoding';\n });\n const encodings = constraint['AllowedValues']['Value'];\n\n if (requestEncoding === '') {\n // requestEncoding not provided, use the first encoding from the list\n requestEncoding = encodings[0];\n }\n if (requestEncoding === 'KVP') {\n if (encodings.includes('KVP')) {\n urls.push(/** @type {string} */ (gets[i]['href']));\n }\n } else {\n break;\n }\n } else if (gets[i]['href']) {\n requestEncoding = 'KVP';\n urls.push(/** @type {string} */ (gets[i]['href']));\n }\n }\n }\n if (urls.length === 0) {\n requestEncoding = 'REST';\n l['ResourceURL'].forEach(function (element) {\n if (element['resourceType'] === 'tile') {\n format = element['format'];\n urls.push(/** @type {string} */ (element['template']));\n }\n });\n }\n\n return {\n urls: urls,\n layer: config['layer'],\n matrixSet: matrixSet,\n format: format,\n projection: projection,\n requestEncoding: requestEncoding,\n tileGrid: tileGrid,\n style: style,\n dimensions: dimensions,\n wrapX: wrapX,\n crossOrigin: config['crossOrigin'],\n };\n}\n","/*eslint no-constant-condition: [\"error\", { \"checkLoops\": false }]*/\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_control_Control from 'ol/control/Control.js'\r\nimport ol_ext_element from '../util/element.js'\r\n\r\n/** Timeline control\r\n *\r\n * @constructor\r\n * @extends {ol.control.Control}\r\n * @fires select\r\n * @fires scroll\r\n * @fires collapse\r\n * @param {Object=} options Control options.\r\n *\t@param {String} options.className class of the control\r\n *\t@param {Array} options.features Features to show in the timeline\r\n *\t@param {ol.SourceImageOptions.vector} options.source class of the control\r\n *\t@param {Number} options.interval time interval length in ms or a text with a format d, h, mn, s (31 days = '31d'), default none\r\n *\t@param {String} options.maxWidth width of the time line in px, default 2000px\r\n *\t@param {String} options.minDate minimum date \r\n *\t@param {String} options.maxDate maximum date \r\n *\t@param {Number} options.minZoom Minimum zoom for the line, default .2\r\n *\t@param {Number} options.maxZoom Maximum zoom for the line, default 4\r\n *\t@param {boolean} options.zoomButton Are zoom buttons avaliable, default false\r\n *\t@param {function} options.getHTML a function that takes a feature and returns the html to display\r\n *\t@param {function} options.getFeatureDate a function that takes a feature and returns its date, default the date propertie\r\n *\t@param {function} options.endFeatureDate a function that takes a feature and returns its end date, default no end date\r\n *\t@param {String} options.graduation day|month to show month or day graduation, default show only years\r\n *\t@param {String} options.scrollTimeout Time in milliseconds to get a scroll event, default 15ms\r\n */\r\nvar ol_control_Timeline = class olcontrolTimeline extends ol_control_Control {\r\n constructor(options) {\r\n\r\n var element = ol_ext_element.create('DIV', {\r\n className: (options.className || '') + ' ol-timeline'\r\n + (options.target ? '' : ' ol-unselectable ol-control')\r\n + (options.zoomButton ? ' ol-hasbutton' : '')\r\n });\r\n\r\n // Initialize\r\n super({\r\n element: element,\r\n target: options.target\r\n });\r\n\r\n // Scroll div\r\n this._scrollDiv = ol_ext_element.create('DIV', {\r\n className: 'ol-scroll',\r\n parent: this.element\r\n });\r\n\r\n // Add a button bar\r\n this._buttons = ol_ext_element.create('DIV', {\r\n className: 'ol-buttons',\r\n parent: this.element\r\n });\r\n // Zoom buttons\r\n if (options.zoomButton) {\r\n // Zoom in\r\n this.addButton({\r\n className: 'ol-zoom-in',\r\n handleClick: function () {\r\n var zoom = this.get('zoom');\r\n if (zoom >= 1) {\r\n zoom++;\r\n } else {\r\n zoom = Math.min(1, zoom + 0.1);\r\n }\r\n zoom = Math.round(zoom * 100) / 100;\r\n this.refresh(zoom);\r\n }.bind(this)\r\n });\r\n // Zoom out\r\n this.addButton({\r\n className: 'ol-zoom-out',\r\n handleClick: function () {\r\n var zoom = this.get('zoom');\r\n if (zoom > 1) {\r\n zoom--;\r\n } else {\r\n zoom -= 0.1;\r\n }\r\n zoom = Math.round(zoom * 100) / 100;\r\n this.refresh(zoom);\r\n }.bind(this)\r\n });\r\n }\r\n\r\n // Draw center date\r\n this._intervalDiv = ol_ext_element.create('DIV', {\r\n className: 'ol-center-date',\r\n parent: this.element\r\n });\r\n\r\n // Remove selection\r\n this.element.addEventListener('mouseover', function () {\r\n if (this._select)\r\n this._select.elt.classList.remove('ol-select');\r\n }.bind(this));\r\n\r\n // Trigger scroll event\r\n var scrollListener = null;\r\n this._scrollDiv.addEventListener('scroll', function () {\r\n this._setScrollLeft();\r\n if (scrollListener) {\r\n clearTimeout(scrollListener);\r\n scrollListener = null;\r\n }\r\n scrollListener = setTimeout(function () {\r\n this.dispatchEvent({\r\n type: 'scroll',\r\n date: this.getDate(),\r\n dateStart: this.getDate('start'),\r\n dateEnd: this.getDate('end')\r\n });\r\n }.bind(this), options.scrollTimeout || 15);\r\n }.bind(this));\r\n // Magic to give \"live\" scroll events on touch devices\r\n // this._scrollDiv.addEventListener('gesturechange', function() {});\r\n // Scroll timeline\r\n ol_ext_element.scrollDiv(this._scrollDiv, {\r\n onmove: function (b) {\r\n // Prevent selection on moving\r\n this._moving = b;\r\n }.bind(this)\r\n });\r\n\r\n this._tline = [];\r\n\r\n // Parameters\r\n this._scrollLeft = 0;\r\n this.set('maxWidth', options.maxWidth || 2000);\r\n this.set('minDate', options.minDate || Infinity);\r\n this.set('maxDate', options.maxDate || -Infinity);\r\n this.set('graduation', options.graduation);\r\n this.set('minZoom', options.minZoom || .2);\r\n this.set('maxZoom', options.maxZoom || 4);\r\n this.setInterval(options.interval);\r\n if (options.getHTML)\r\n this._getHTML = options.getHTML;\r\n if (options.getFeatureDate)\r\n this._getFeatureDate = options.getFeatureDate;\r\n if (options.endFeatureDate)\r\n this._endFeatureDate = options.endFeatureDate;\r\n\r\n // Feature source \r\n this.setFeatures(options.features || options.source, options.zoom);\r\n }\r\n /**\r\n * Set the map instance the control is associated with\r\n * and add interaction attached to it to this map.\r\n * @param {_ol_Map_} map The map instance.\r\n */\r\n setMap(map) {\r\n super.setMap(map);\r\n this.refresh(this.get('zoom') || 1, true);\r\n }\r\n /** Add a button on the timeline\r\n * @param {*} button\r\n * @param {string} button.className\r\n * @param {title} button.className\r\n * @param {Element|string} button.html Content of the element\r\n * @param {function} button.click a function called when the button is clicked\r\n */\r\n addButton(button) {\r\n this.element.classList.add('ol-hasbutton');\r\n ol_ext_element.create('BUTTON', {\r\n className: button.className || undefined,\r\n title: button.title,\r\n html: button.html,\r\n click: button.handleClick,\r\n parent: this._buttons\r\n });\r\n }\r\n /** Set an interval\r\n * @param {number|string} length the interval length in ms or a farmatted text ie. end with y, 1d, h, mn, s (31 days = '31d'), default none\r\n */\r\n setInterval(length) {\r\n if (typeof (length) === 'string') {\r\n if (/s$/.test(length)) {\r\n length = parseFloat(length) * 1000;\r\n } else if (/mn$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 60;\r\n } else if (/h$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 3600;\r\n } else if (/d$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 3600 * 24;\r\n } else if (/y$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 3600 * 24 * 365;\r\n } else {\r\n length = 0;\r\n }\r\n }\r\n this.set('interval', length || 0);\r\n if (length)\r\n this.element.classList.add('ol-interval');\r\n else\r\n this.element.classList.remove('ol-interval');\r\n this.refresh(this.get('zoom'));\r\n }\r\n /** Default html to show in the line\r\n * @param {ol.Feature} feature\r\n * @return {DOMElement|string}\r\n * @private\r\n */\r\n _getHTML(feature) {\r\n return feature.get('name') || '';\r\n }\r\n /** Default function to get the date of a feature, returns the date attribute\r\n * @param {ol.Feature} feature\r\n * @return {Data|string}\r\n * @private\r\n */\r\n _getFeatureDate(feature) {\r\n return (feature && feature.get) ? feature.get('date') : null;\r\n }\r\n /** Default function to get the end date of a feature, return undefined\r\n * @param {ol.Feature} feature\r\n * @return {Data|string}\r\n * @private\r\n */\r\n _endFeatureDate( /* feature */) {\r\n return undefined;\r\n }\r\n /** Is the line collapsed\r\n * @return {boolean}\r\n */\r\n isCollapsed() {\r\n return this.element.classList.contains('ol-collapsed');\r\n }\r\n /** Collapse the line\r\n * @param {boolean} b\r\n */\r\n collapse(b) {\r\n if (b)\r\n this.element.classList.add('ol-collapsed');\r\n else\r\n this.element.classList.remove('ol-collapsed');\r\n this.dispatchEvent({ type: 'collapse', collapsed: this.isCollapsed() });\r\n }\r\n /** Collapse the line\r\n */\r\n toggle() {\r\n this.element.classList.toggle('ol-collapsed');\r\n this.dispatchEvent({ type: 'collapse', collapsed: this.isCollapsed() });\r\n }\r\n /** Set the features to display in the timeline\r\n * @param {Array|ol.source.Vector} features An array of features or a vector source\r\n * @param {number} zoom zoom to draw the line default 1\r\n */\r\n setFeatures(features, zoom) {\r\n this._features = this._source = null;\r\n if (features instanceof ol_source_Vector)\r\n this._source = features;\r\n else if (features instanceof Array)\r\n this._features = features;\r\n else\r\n this._features = [];\r\n this.refresh(zoom);\r\n }\r\n /**\r\n * Get features\r\n * @return {Array}\r\n */\r\n getFeatures() {\r\n return this._features || this._source.getFeatures();\r\n }\r\n /**\r\n * Refresh the timeline with new data\r\n * @param {Number} zoom Zoom factor from 0.25 to 10, default 1\r\n */\r\n refresh(zoom, first) {\r\n if (!this.getMap())\r\n return;\r\n if (!zoom)\r\n zoom = this.get('zoom');\r\n zoom = Math.min(this.get('maxZoom'), Math.max(this.get('minZoom'), zoom || 1));\r\n this.set('zoom', zoom);\r\n this._scrollDiv.innerHTML = '';\r\n var features = this.getFeatures();\r\n var d, d2;\r\n\r\n // Get features sorted by date\r\n var tline = this._tline = [];\r\n features.forEach(function (f) {\r\n if (d = this._getFeatureDate(f)) {\r\n if (!(d instanceof Date)) {\r\n d = new Date(d);\r\n }\r\n if (this._endFeatureDate) {\r\n d2 = this._endFeatureDate(f);\r\n if (!(d2 instanceof Date)) {\r\n d2 = new Date(d2);\r\n }\r\n }\r\n if (!isNaN(d)) {\r\n tline.push({\r\n date: d,\r\n end: isNaN(d2) ? null : d2,\r\n feature: f\r\n });\r\n }\r\n }\r\n }.bind(this));\r\n\r\n tline.sort(function (a, b) {\r\n return (a.date < b.date ? -1 : (a.date === b.date ? 0 : 1));\r\n });\r\n\r\n // Draw\r\n var div = ol_ext_element.create('DIV', {\r\n parent: this._scrollDiv\r\n });\r\n\r\n // Calculate width\r\n var min = this._minDate = Math.min(this.get('minDate'), tline.length ? tline[0].date : Infinity);\r\n var max = this._maxDate = Math.max(this.get('maxDate'), tline.length ? tline[tline.length - 1].date : -Infinity);\r\n if (!isFinite(min))\r\n this._minDate = min = new Date();\r\n if (!isFinite(max))\r\n this._maxDate = max = new Date();\r\n var delta = (max - min);\r\n var maxWidth = this.get('maxWidth');\r\n var scale = this._scale = (delta > maxWidth ? maxWidth / delta : 1) * zoom;\r\n // Leave 10px on right\r\n min = this._minDate = this._minDate - 10 / scale;\r\n delta = (max - min) * scale;\r\n ol_ext_element.setStyle(div, {\r\n width: delta,\r\n maxWidth: 'unset'\r\n });\r\n\r\n // Draw time's bar\r\n this._drawTime(div, min, max, scale);\r\n\r\n // Set interval\r\n if (this.get('interval')) {\r\n ol_ext_element.setStyle(this._intervalDiv, { width: this.get('interval') * scale });\r\n } else {\r\n ol_ext_element.setStyle(this._intervalDiv, { width: '' });\r\n }\r\n\r\n // Draw features\r\n var line = [];\r\n var lineHeight = ol_ext_element.getStyle(this._scrollDiv, 'lineHeight');\r\n\r\n // Wrapper\r\n var fdiv = ol_ext_element.create('DIV', {\r\n className: 'ol-features',\r\n parent: div\r\n });\r\n\r\n // Add features on the line\r\n tline.forEach(function (f) {\r\n var d = f.date;\r\n var t = f.elt = ol_ext_element.create('DIV', {\r\n className: 'ol-feature',\r\n style: {\r\n left: Math.round((d - min) * scale),\r\n },\r\n html: this._getHTML(f.feature),\r\n parent: fdiv\r\n });\r\n // Prevent image dragging\r\n var img = t.querySelectorAll('img');\r\n for (var i = 0; i < img.length; i++) {\r\n img[i].ondragstart = function () { return false; };\r\n }\r\n\r\n // Calculate image width\r\n if (f.end) {\r\n ol_ext_element.setStyle(t, {\r\n minWidth: (f.end - d) * scale,\r\n width: (f.end - d) * scale,\r\n maxWidth: 'unset'\r\n });\r\n }\r\n var left = ol_ext_element.getStyle(t, 'left');\r\n // Select on click\r\n t.addEventListener('click', function () {\r\n if (!this._moving) {\r\n this.dispatchEvent({ type: 'select', feature: f.feature });\r\n }\r\n }.bind(this));\r\n\r\n // Find first free Y position\r\n var pos, l;\r\n for (pos = 0; l = line[pos]; pos++) {\r\n if (left > l) {\r\n break;\r\n }\r\n }\r\n line[pos] = left + ol_ext_element.getStyle(t, 'width');\r\n ol_ext_element.setStyle(t, { top: pos * lineHeight });\r\n }.bind(this));\r\n this._nbline = line.length;\r\n\r\n if (first)\r\n this.setDate(this._minDate, { anim: false, position: 'start' });\r\n // Dispatch scroll event\r\n this.dispatchEvent({\r\n type: 'scroll',\r\n date: this.getDate(),\r\n dateStart: this.getDate('start'),\r\n dateEnd: this.getDate('end')\r\n });\r\n }\r\n /** Get offset given a date\r\n * @param {Date} date\r\n * @return {number}\r\n * @private\r\n */\r\n _getOffsetFromDate(date) {\r\n return (date - this._minDate) * this._scale;\r\n }\r\n /** Get date given an offset\r\n * @param {Date} date\r\n * @return {number}\r\n * @private\r\n */\r\n _getDateFromOffset(offset) {\r\n return offset / this._scale + this._minDate;\r\n }\r\n /** Set the current position\r\n * @param {number} scrollLeft current position (undefined when scrolling)\r\n * @returns {number}\r\n * @private\r\n */\r\n _setScrollLeft(scrollLeft) {\r\n this._scrollLeft = scrollLeft;\r\n if (scrollLeft !== undefined) {\r\n this._scrollDiv.scrollLeft = scrollLeft;\r\n }\r\n }\r\n /** Get the current position\r\n * @returns {number}\r\n * @private\r\n */\r\n _getScrollLeft() {\r\n // Unset when scrolling\r\n if (this._scrollLeft === undefined) {\r\n return this._scrollDiv.scrollLeft;\r\n } else {\r\n // St by user\r\n return this._scrollLeft;\r\n }\r\n }\r\n /**\r\n * Draw dates on line\r\n * @private\r\n */\r\n _drawTime(div, min, max, scale) {\r\n // Times div\r\n var tdiv = ol_ext_element.create('DIV', {\r\n className: 'ol-times',\r\n parent: div\r\n });\r\n var d, dt, month, dmonth;\r\n var dx = ol_ext_element.getStyle(tdiv, 'left');\r\n var heigth = ol_ext_element.getStyle(tdiv, 'height');\r\n // Year\r\n var year = (new Date(this._minDate)).getFullYear();\r\n dt = ((new Date(0)).setFullYear(String(year)) - new Date(0).setFullYear(String(year - 1))) * scale;\r\n var dyear = Math.round(2 * heigth / dt) + 1;\r\n while (true) {\r\n d = new Date(0).setFullYear(year);\r\n if (d > this._maxDate)\r\n break;\r\n ol_ext_element.create('DIV', {\r\n className: 'ol-time ol-year',\r\n style: {\r\n left: this._getOffsetFromDate(d) - dx\r\n },\r\n html: year,\r\n parent: tdiv\r\n });\r\n year += dyear;\r\n }\r\n // Month\r\n if (/day|month/.test(this.get('graduation'))) {\r\n dt = ((new Date(0, 0, 1)).setFullYear(String(year)) - new Date(0, 0, 1).setFullYear(String(year - 1))) * scale;\r\n dmonth = Math.max(1, Math.round(12 / Math.round(dt / heigth / 2)));\r\n if (dmonth < 12) {\r\n year = (new Date(this._minDate)).getFullYear();\r\n month = dmonth + 1;\r\n while (true) {\r\n d = new Date(0, 0, 1);\r\n d.setFullYear(year);\r\n d.setMonth(month - 1);\r\n if (d > this._maxDate)\r\n break;\r\n ol_ext_element.create('DIV', {\r\n className: 'ol-time ol-month',\r\n style: {\r\n left: this._getOffsetFromDate(d) - dx\r\n },\r\n html: d.toLocaleDateString(undefined, { month: 'short' }),\r\n parent: tdiv\r\n });\r\n month += dmonth;\r\n if (month > 12) {\r\n year++;\r\n month = dmonth + 1;\r\n }\r\n }\r\n }\r\n }\r\n // Day\r\n if (this.get('graduation') === 'day') {\r\n dt = (new Date(0, 1, 1) - new Date(0, 0, 1)) * scale;\r\n var dday = Math.max(1, Math.round(31 / Math.round(dt / heigth / 2)));\r\n if (dday < 31) {\r\n year = (new Date(this._minDate)).getFullYear();\r\n month = 0;\r\n var day = dday;\r\n while (true) {\r\n d = new Date(0, 0, 1);\r\n d.setFullYear(year);\r\n d.setMonth(month);\r\n d.setDate(day);\r\n if (isNaN(d)) {\r\n month++;\r\n if (month > 12) {\r\n month = 1;\r\n year++;\r\n }\r\n day = dday;\r\n } else {\r\n if (d > this._maxDate)\r\n break;\r\n if (day > 1) {\r\n var offdate = this._getOffsetFromDate(d);\r\n if (this._getOffsetFromDate(new Date(year, month + 1, 1)) - offdate > heigth) {\r\n ol_ext_element.create('DIV', {\r\n className: 'ol-time ol-day',\r\n style: {\r\n left: offdate - dx\r\n },\r\n html: day,\r\n parent: tdiv\r\n });\r\n }\r\n }\r\n year = d.getFullYear();\r\n month = d.getMonth();\r\n day = d.getDate() + dday;\r\n if (day > new Date(year, month + 1, 0).getDate()) {\r\n month++;\r\n day = dday;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /** Center timeline on a date\r\n * @param {Date|String|ol.feature} feature a date or a feature with a date\r\n * @param {Object} options\r\n * @param {boolean} options.anim animate scroll\r\n * @param {string} options.position start, end or middle, default middle\r\n */\r\n setDate(feature, options) {\r\n var date;\r\n options = options || {};\r\n // It's a date\r\n if (feature instanceof Date) {\r\n date = feature;\r\n } else {\r\n // Get date from Feature\r\n if (this.getFeatures().indexOf(feature) >= 0) {\r\n date = this._getFeatureDate(feature);\r\n }\r\n if (date && !(date instanceof Date)) {\r\n date = new Date(date);\r\n }\r\n if (!date || isNaN(date)) {\r\n date = new Date(String(feature));\r\n }\r\n }\r\n if (!isNaN(date)) {\r\n if (options.anim === false)\r\n this._scrollDiv.classList.add('ol-move');\r\n var scrollLeft = this._getOffsetFromDate(date);\r\n if (options.position === 'start') {\r\n scrollLeft += ol_ext_element.outerWidth(this._scrollDiv) / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n } else if (options.position === 'end') {\r\n scrollLeft -= ol_ext_element.outerWidth(this._scrollDiv) / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n }\r\n this._setScrollLeft(scrollLeft);\r\n if (options.anim === false)\r\n this._scrollDiv.classList.remove('ol-move');\r\n if (feature) {\r\n for (var i = 0, f; f = this._tline[i]; i++) {\r\n if (f.feature === feature) {\r\n f.elt.classList.add('ol-select');\r\n this._select = f;\r\n } else {\r\n f.elt.classList.remove('ol-select');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /** Get round date (sticked to mn, hour day or month)\r\n * @param {Date} d\r\n * @param {string} stick sticking option to stick date to: 'mn', 'hour', 'day', 'month', default no stick\r\n * @return {Date}\r\n */\r\n roundDate(d, stick) {\r\n switch (stick) {\r\n case 'mn': {\r\n return new Date(this._roundTo(d, 60 * 1000));\r\n }\r\n case 'hour': {\r\n return new Date(this._roundTo(d, 60 * 60 * 1000));\r\n }\r\n case 'day': {\r\n return new Date(this._roundTo(d, 24 * 60 * 60 * 1000));\r\n }\r\n case 'month': {\r\n d = new Date(this._roundTo(d, 24 * 60 * 60 * 1000));\r\n if (d.getDate() > 15) {\r\n d = new Date(d.setMonth(d.getMonth() + 1));\r\n }\r\n d = d.setDate(1);\r\n return new Date(d);\r\n }\r\n default: return new Date(d);\r\n }\r\n }\r\n /** Get the date of the center\r\n * @param {string} position position to get 'start', 'end' or 'middle', default middle\r\n * @param {string} stick sticking option to stick date to: 'mn', 'hour', 'day', 'month', default no stick\r\n * @return {Date}\r\n */\r\n getDate(position, stick) {\r\n var pos;\r\n if (!stick)\r\n stick = position;\r\n switch (position) {\r\n case 'start': {\r\n if (this.get('interval')) {\r\n pos = -ol_ext_element.getStyle(this._intervalDiv, 'width') / 2 + ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n } else {\r\n pos = -ol_ext_element.outerWidth(this._scrollDiv) / 2 + ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n }\r\n break;\r\n }\r\n case 'end': {\r\n if (this.get('interval')) {\r\n pos = ol_ext_element.getStyle(this._intervalDiv, 'width') / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n } else {\r\n pos = ol_ext_element.outerWidth(this._scrollDiv) / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n }\r\n break;\r\n }\r\n default: {\r\n pos = 0;\r\n break;\r\n }\r\n }\r\n var d = this._getDateFromOffset(this._getScrollLeft() + pos);\r\n d = this.roundDate(d, stick);\r\n return new Date(d);\r\n }\r\n /** Round number to\r\n * @param {number} d\r\n * @param {number} r\r\n * @return {number}\r\n * @private\r\n */\r\n _roundTo(d, r) {\r\n return Math.round(d / r) * r;\r\n }\r\n /** Get the start date of the control\r\n * @return {Date}\r\n */\r\n getStartDate() {\r\n return new Date(this.get('minDate'));\r\n }\r\n /** Get the end date of the control\r\n * @return {Date}\r\n */\r\n getEndDate() {\r\n return new Date(this.get('maxDate'));\r\n }\r\n}\r\n\r\nexport default ol_control_Timeline","","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!./WebServiceMixin.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!./WebServiceMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./WebServiceMixin.vue?vue&type=script&lang=js\"\nexport * from \"./WebServiceMixin.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","export default class GeoTiffState {\n\n\tconstructor(geotiff) {\n\t\tthis.layer = null;\n\t\tthis.colorMap = geotiff.getColorMap();\n\t\tthis.noData = geotiff.getNoData();\n\t\tthis.bands = geotiff.getBands();\n\t\tthis.defaultChannels = this.bands.slice(0, 3);\n\t\tthis.channels = this.bands.slice(0, 3);\n this.file = geotiff;\n\t}\n\n\tgetBandVar(i) {\n\t\treturn ['band', ['var', `${i}band`]];\n\t}\n\n\tgetFormula(i) {\n\t\tlet min = ['var', `${i}min`];\n\t\tlet max = ['var', `${i}max`];\n\t\tlet x = this.getBandVar(i);\n\t\tlet scale = ['*', ['/', ['-', x, min], ['-', max, min]], 255]; // Linear scaling from min - max to 0 - 255\n\t\treturn ['clamp', scale, 0, 255]; // clamp values in case we get cales < 0 or > 255\n\t}\n\n\tgetNoDataFormula() {\n\t\tlet band = this.getBandVar('alpha');\n\t\t// https://github.com/openlayers/openlayers/issues/13588#issuecomment-1125317573\n\t\t// return ['clamp', band, 0, 1];\n\t\t// return ['/', band, 255];\n\t\treturn ['case', ['==', band, 0], 0, 1];\n\t}\n\n\tsetStyle() {\n\t\tif (!this.layer) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Compute variables\n\t\tlet variables = {};\n\t\tfor(let i in this.channels) {\n\t\t\tlet channel = this.channels[i];\n\t\t\tvariables[`${i}band`] = channel.id;\n\t\t\tvariables[`${i}min`] = channel.min;\n\t\t\tvariables[`${i}max`] = channel.max;\n\t\t}\n\t\tvariables.alphaband = this.bands.length + 1;\n\n\t\t// Create style\n\t\tlet color = [];\n\t\tif (this.colorMap) {\n\t\t\tcolor.push('palette');\n\t\t\tcolor.push(['band', 1]);\n\t\t\tcolor.push(this.colorMap);\n\t\t}\n\t\telse if (this.channels.length === 0) {\n\t\t\treturn null;\n\t\t}\n\t\telse if (this.channels.length === 1) {\n\t\t\tcolor.push('color');\n\t\t\tlet formula = this.getFormula(0);\n\t\t\tcolor.push(formula);\n\t\t\tcolor.push(formula);\n\t\t\tcolor.push(formula);\n\t\t\tif (this.noData.length > 0) {\n\t\t\t\tcolor.push(this.getNoDataFormula());\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tcolor.push('color');\n\t\t\tcolor.push(this.getFormula(0));\n\t\t\tcolor.push(this.getFormula(1));\n\t\t\tcolor.push(this.getFormula(2));\n\t\t\tif (this.noData.length > 0) {\n\t\t\t\tcolor.push(this.getNoDataFormula());\n\t\t\t}\n\t\t}\n\n\t\t// Set style\n\t\tthis.layer.setStyle({variables, color});\n\t}\n\n}\n","import { GeoTIFFImage } from 'geotiff';\n\n// Integrate changes/fixes from https://github.com/geotiffjs/geotiff.js/pull/303 until released/integrated by geotiff.js\nGeoTIFFImage.prototype.getSampleByteSize = function(i) {\n if (!this.fileDirectory.BitsPerSample || this.fileDirectory.BitsPerSample.length === 0) {\n return;\n }\n if (i >= this.fileDirectory.BitsPerSample.length) {\n i = 0;\n }\n return Math.ceil(this.fileDirectory.BitsPerSample[i] / 8);\n};\n\nGeoTIFFImage.prototype.getReaderForSample = function(sampleIndex) {\n const format = this.getSampleFormat(sampleIndex);\n const bitsPerSample = this.getBitsPerSample(sampleIndex);\n switch (format) {\n case 1: // unsigned integer data\n if (bitsPerSample <= 8) {\n return DataView.prototype.getUint8;\n } else if (bitsPerSample <= 16) {\n return DataView.prototype.getUint16;\n } else if (bitsPerSample <= 32) {\n return DataView.prototype.getUint32;\n }\n break;\n case 2: // twos complement signed integer data\n if (bitsPerSample <= 8) {\n return DataView.prototype.getInt8;\n } else if (bitsPerSample <= 16) {\n return DataView.prototype.getInt16;\n } else if (bitsPerSample <= 32) {\n return DataView.prototype.getInt32;\n }\n break;\n case 3:\n switch (bitsPerSample) {\n case 16:\n return function (offset, littleEndian) {\n return getFloat16(this, offset, littleEndian);\n };\n case 32:\n return DataView.prototype.getFloat32;\n case 64:\n return DataView.prototype.getFloat64;\n default:\n break;\n }\n break;\n default:\n break;\n }\n throw Error('Unsupported data format/bitsPerSample');\n};\n\nGeoTIFFImage.prototype.getSampleFormat = function(sampleIndex = 0) {\n if (!this.fileDirectory.SampleFormat || this.fileDirectory.SampleFormat.length === 0) {\n return 1;\n }\n return typeof this.fileDirectory.SampleFormat[sampleIndex] !== 'undefined'\n ? this.fileDirectory.SampleFormat[sampleIndex] : this.fileDirectory.SampleFormat[0];\n};\n\nGeoTIFFImage.prototype.getBitsPerSample = function(sampleIndex = 0) {\n if (!this.fileDirectory.BitsPerSample || this.fileDirectory.BitsPerSample.length === 0) {\n return;\n }\n return typeof this.fileDirectory.BitsPerSample[sampleIndex] !== 'undefined'\n ? this.fileDirectory.BitsPerSample[sampleIndex] : this.fileDirectory.BitsPerSample[0];\n};\n// End of geotiff.js fixes","/**\n * Utilities for parsing literal style objects\n * @module ol/webgl/styleparser\n */\nimport {\n BooleanType,\n ColorType,\n NumberArrayType,\n NumberType,\n SizeType,\n StringType,\n newParsingContext,\n} from '../expr/expression.js';\nimport {ShaderBuilder} from './ShaderBuilder.js';\nimport {\n arrayToGlsl,\n buildExpression,\n getStringNumberEquivalent,\n stringToGlsl,\n uniformNameForVariable,\n} from '../expr/gpu.js';\nimport {asArray} from '../color.js';\n\n/**\n * Recursively parses a style expression and outputs a GLSL-compatible string. Takes in a compilation context that\n * will be read and modified during the parsing operation.\n * @param {import(\"../expr/gpu.js\").CompilationContext} compilationContext Compilation context\n * @param {import(\"../expr/expression.js\").EncodedExpression} value Value\n * @param {number} [expectedType] Expected final type (can be several types combined)\n * @return {string} GLSL-compatible output\n */\nexport function expressionToGlsl(compilationContext, value, expectedType) {\n const parsingContext = newParsingContext();\n parsingContext.style = compilationContext.style;\n return buildExpression(\n value,\n expectedType,\n parsingContext,\n compilationContext,\n );\n}\n\n/**\n * Packs all components of a color into a two-floats array\n * @param {import(\"../color.js\").Color|string} color Color as array of numbers or string\n * @return {Array} Vec2 array containing the color in compressed form\n */\nexport function packColor(color) {\n const array = asArray(color);\n const r = array[0] * 256;\n const g = array[1];\n const b = array[2] * 256;\n const a = Math.round(array[3] * 255);\n return [r + g, b + a];\n}\n\nconst UNPACK_COLOR_FN = `vec4 unpackColor(vec2 packedColor) {\n return fract(packedColor[1] / 256.0) * vec4(\n fract(floor(packedColor[0] / 256.0) / 256.0),\n fract(packedColor[0] / 256.0),\n fract(floor(packedColor[1] / 256.0) / 256.0),\n 1.0\n );\n}`;\n\n/**\n * @param {number} type Value type\n * @return {1|2|3|4} The amount of components for this value\n */\nfunction getGlslSizeFromType(type) {\n if (type === ColorType || type === SizeType) {\n return 2;\n }\n if (type === NumberArrayType) {\n return 4;\n }\n return 1;\n}\n\n/**\n * @param {number} type Value type\n * @return {'float'|'vec2'|'vec3'|'vec4'} The corresponding GLSL type for this value\n */\nfunction getGlslTypeFromType(type) {\n const size = getGlslSizeFromType(type);\n if (size > 1) {\n return /** @type {'vec2'|'vec3'|'vec4'} */ (`vec${size}`);\n }\n return 'float';\n}\n\n/**\n * see https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\n * @param {Object|string} input The hash input, either an object or string\n * @return {string} Hash (if the object cannot be serialized, it is based on `getUid`)\n */\nexport function computeHash(input) {\n const hash = JSON.stringify(input)\n .split('')\n .reduce((prev, curr) => (prev << 5) - prev + curr.charCodeAt(0), 0);\n return (hash >>> 0).toString();\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {'shape-'|'circle-'|'icon-'} prefix Properties prefix\n */\nfunction parseCommonSymbolProperties(style, builder, vertContext, prefix) {\n if (`${prefix}radius` in style && prefix !== 'icon-') {\n let radius = expressionToGlsl(\n vertContext,\n style[`${prefix}radius`],\n NumberType,\n );\n if (`${prefix}radius2` in style) {\n const radius2 = expressionToGlsl(\n vertContext,\n style[`${prefix}radius2`],\n NumberType,\n );\n radius = `max(${radius}, ${radius2})`;\n }\n if (`${prefix}stroke-width` in style) {\n radius = `(${radius} + ${expressionToGlsl(\n vertContext,\n style[`${prefix}stroke-width`],\n NumberType,\n )} * 0.5)`;\n }\n builder.setSymbolSizeExpression(`vec2(${radius} * 2. + 0.5)`); // adding some padding for antialiasing\n }\n if (`${prefix}scale` in style) {\n const scale = expressionToGlsl(\n vertContext,\n style[`${prefix}scale`],\n SizeType,\n );\n builder.setSymbolSizeExpression(\n `${builder.getSymbolSizeExpression()} * ${scale}`,\n );\n }\n if (`${prefix}displacement` in style) {\n builder.setSymbolOffsetExpression(\n expressionToGlsl(\n vertContext,\n style[`${prefix}displacement`],\n NumberArrayType,\n ),\n );\n }\n if (`${prefix}rotation` in style) {\n builder.setSymbolRotationExpression(\n expressionToGlsl(vertContext, style[`${prefix}rotation`], NumberType),\n );\n }\n if (`${prefix}rotate-with-view` in style) {\n builder.setSymbolRotateWithView(!!style[`${prefix}rotate-with-view`]);\n }\n}\n\n/**\n * @param {string} distanceField The distance field expression\n * @param {string|null} fillColor The fill color expression; null if no fill\n * @param {string|null} strokeColor The stroke color expression; null if no stroke\n * @param {string|null} strokeWidth The stroke width expression; null if no stroke\n * @param {string|null} opacity The opacity expression; null if no stroke\n * @return {string} The final color expression, based on the distance field and given params\n */\nfunction getColorFromDistanceField(\n distanceField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n) {\n let color = 'vec4(0.)';\n if (fillColor !== null) {\n color = fillColor;\n }\n if (strokeColor !== null && strokeWidth !== null) {\n const strokeFillRatio = `smoothstep(-${strokeWidth} + 0.63, -${strokeWidth} - 0.58, ${distanceField})`;\n color = `mix(${strokeColor}, ${color}, ${strokeFillRatio})`;\n }\n const shapeOpacity = `(1.0 - smoothstep(-0.63, 0.58, ${distanceField}))`;\n let result = `${color} * ${shapeOpacity}`;\n if (opacity !== null) {\n result = `${result} * ${opacity}`;\n }\n return result;\n}\n\n/**\n * This will parse an image property provided by `-src`\n * The image size expression in GLSL will be returned\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {'icon-'|'fill-pattern-'|'stroke-pattern-'} prefix Property prefix\n * @param {string} textureId A identifier that will be used in the generated uniforms: `sample2d u_texture` and `vec2 u_texture_size`\n * @return {string} The image size expression\n */\nfunction parseImageProperties(style, builder, uniforms, prefix, textureId) {\n const image = new Image();\n let size;\n image.crossOrigin =\n style[`${prefix}cross-origin`] === undefined\n ? 'anonymous'\n : style[`${prefix}cross-origin`];\n image.src = style[`${prefix}src`];\n\n if (image.complete && image.width && image.height) {\n size = arrayToGlsl([image.width, image.height]);\n } else {\n // the size is provided asynchronously using a uniform\n uniforms[`u_texture${textureId}_size`] = () => {\n return image.complete ? [image.width, image.height] : [0, 0];\n };\n builder.addUniform(`vec2 u_texture${textureId}_size`);\n size = `u_texture${textureId}_size`;\n }\n uniforms[`u_texture${textureId}`] = image;\n builder.addUniform(`sampler2D u_texture${textureId}`);\n return size;\n}\n\n/**\n * This will parse an image's offset properties provided by `-offset`, `-offset-origin` and `-size`\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {'icon-'|'fill-pattern-'|'stroke-pattern-'} prefix Property prefix\n * @param {import(\"../expr/gpu.js\").CompilationContext} context Shader compilation context (vertex or fragment)\n * @param {string} imageSize Pixel size of the full image as a GLSL expression\n * @param {string} sampleSize Pixel size of the sample in the image as a GLSL expression\n * @return {string} The offset expression\n */\nfunction parseImageOffsetProperties(\n style,\n prefix,\n context,\n imageSize,\n sampleSize,\n) {\n let offsetExpression = expressionToGlsl(\n context,\n style[`${prefix}offset`],\n NumberArrayType,\n );\n if (`${prefix}offset-origin` in style) {\n switch (style[`${prefix}offset-origin`]) {\n case 'top-right':\n offsetExpression = `vec2(${imageSize}.x, 0.) + ${sampleSize} * vec2(-1., 0.) + ${offsetExpression} * vec2(-1., 1.)`;\n break;\n case 'bottom-left':\n offsetExpression = `vec2(0., ${imageSize}.y) + ${sampleSize} * vec2(0., -1.) + ${offsetExpression} * vec2(1., -1.)`;\n break;\n case 'bottom-right':\n offsetExpression = `${imageSize} - ${sampleSize} - ${offsetExpression}`;\n break;\n default: // pass\n }\n }\n return offsetExpression;\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseCircleProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n // this function takes in screen coordinates in pixels and returns the signed distance field\n // (0 on the boundary, negative inside the circle, positive outside, values in pixels)\n fragContext.functions['circleDistanceField'] =\n `float circleDistanceField(vec2 point, float radius) {\n return length(point) - radius;\n}`;\n\n parseCommonSymbolProperties(style, builder, vertContext, 'circle-');\n\n // OPACITY\n let opacity = null;\n if ('circle-opacity' in style) {\n opacity = expressionToGlsl(\n fragContext,\n style['circle-opacity'],\n NumberType,\n );\n }\n\n // SCALE\n let currentPoint = 'coordsPx';\n if ('circle-scale' in style) {\n const scale = expressionToGlsl(\n fragContext,\n style['circle-scale'],\n SizeType,\n );\n currentPoint = `coordsPx / ${scale}`;\n }\n\n // FILL COLOR\n let fillColor = null;\n if ('circle-fill-color' in style) {\n fillColor = expressionToGlsl(\n fragContext,\n style['circle-fill-color'],\n ColorType,\n );\n }\n\n // STROKE COLOR\n let strokeColor = null;\n if ('circle-stroke-color' in style) {\n strokeColor = expressionToGlsl(\n fragContext,\n style['circle-stroke-color'],\n ColorType,\n );\n }\n\n // RADIUS\n let radius = expressionToGlsl(\n fragContext,\n style['circle-radius'],\n NumberType,\n );\n\n // STROKE WIDTH\n let strokeWidth = null;\n if ('circle-stroke-width' in style) {\n strokeWidth = expressionToGlsl(\n fragContext,\n style['circle-stroke-width'],\n NumberType,\n );\n radius = `(${radius} + ${strokeWidth} * 0.5)`;\n }\n\n // FINAL COLOR\n const distanceField = `circleDistanceField(${currentPoint}, ${radius})`;\n const colorExpression = getColorFromDistanceField(\n distanceField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n );\n builder.setSymbolColorExpression(colorExpression);\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseShapeProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n fragContext.functions['round'] = `float round(float v) {\n return sign(v) * floor(abs(v) + 0.5);\n}`;\n\n // these functions take in screen coordinates in pixels and returns the signed distance field\n // (0 on the boundary, negative inside the polygon, positive outside, values in pixels)\n // inspired by https://github.com/zranger1/PixelblazePatterns/blob/master/Toolkit/sdf2d.md#n-sided-regular-polygon\n fragContext.functions['starDistanceField'] =\n `float starDistanceField(vec2 point, float numPoints, float radius, float radius2, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\n float alpha = TWO_PI / numPoints; // the angle of one sector\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round(beta / alpha) * alpha; // angle in sector\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n vec2 tipToPoint = inSector + vec2(-radius, 0.);\n vec2 edgeNormal = vec2(radius2 * sin(alpha * 0.5), -radius2 * cos(alpha * 0.5) + radius);\n return dot(normalize(edgeNormal), tipToPoint);\n}`;\n fragContext.functions['regularDistanceField'] =\n `float regularDistanceField(vec2 point, float numPoints, float radius, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\n float alpha = TWO_PI / numPoints; // the angle of one sector\n float radiusIn = radius * cos(PI / numPoints);\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round((beta - alpha * 0.5) / alpha) * alpha + alpha * 0.5; // angle in sector from mid\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n return inSector.x - radiusIn;\n}`;\n\n parseCommonSymbolProperties(style, builder, vertContext, 'shape-');\n\n // OPACITY\n let opacity = null;\n if ('shape-opacity' in style) {\n opacity = expressionToGlsl(fragContext, style['shape-opacity'], NumberType);\n }\n\n // SCALE\n let currentPoint = 'coordsPx';\n if ('shape-scale' in style) {\n const scale = expressionToGlsl(fragContext, style['shape-scale'], SizeType);\n currentPoint = `coordsPx / ${scale}`;\n }\n\n // FILL COLOR\n let fillColor = null;\n if ('shape-fill-color' in style) {\n fillColor = expressionToGlsl(\n fragContext,\n style['shape-fill-color'],\n ColorType,\n );\n }\n\n // STROKE COLOR\n let strokeColor = null;\n if ('shape-stroke-color' in style) {\n strokeColor = expressionToGlsl(\n fragContext,\n style['shape-stroke-color'],\n ColorType,\n );\n }\n\n // STROKE WIDTH\n let strokeWidth = null;\n if ('shape-stroke-width' in style) {\n strokeWidth = expressionToGlsl(\n fragContext,\n style['shape-stroke-width'],\n NumberType,\n );\n }\n\n // SHAPE TYPE\n const numPoints = expressionToGlsl(\n fragContext,\n style['shape-points'],\n NumberType,\n );\n let angle = '0.';\n if ('shape-angle' in style) {\n angle = expressionToGlsl(fragContext, style['shape-angle'], NumberType);\n }\n let shapeField;\n let radius = expressionToGlsl(fragContext, style['shape-radius'], NumberType);\n if (strokeWidth !== null) {\n radius = `${radius} + ${strokeWidth} * 0.5`;\n }\n if ('shape-radius2' in style) {\n let radius2 = expressionToGlsl(\n fragContext,\n style['shape-radius2'],\n NumberType,\n );\n if (strokeWidth !== null) {\n radius2 = `${radius2} + ${strokeWidth} * 0.5`;\n }\n shapeField = `starDistanceField(${currentPoint}, ${numPoints}, ${radius}, ${radius2}, ${angle})`;\n } else {\n shapeField = `regularDistanceField(${currentPoint}, ${numPoints}, ${radius}, ${angle})`;\n }\n\n // FINAL COLOR\n const colorExpression = getColorFromDistanceField(\n shapeField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n );\n builder.setSymbolColorExpression(colorExpression);\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseIconProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n // COLOR\n let color = 'vec4(1.0)';\n if ('icon-color' in style) {\n color = expressionToGlsl(fragContext, style['icon-color'], ColorType);\n }\n\n // OPACITY\n if ('icon-opacity' in style) {\n color = `${color} * ${expressionToGlsl(\n fragContext,\n style['icon-opacity'],\n NumberType,\n )}`;\n }\n\n // IMAGE & SIZE\n const textureId = computeHash(style['icon-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'icon-',\n textureId,\n );\n builder\n .setSymbolColorExpression(\n `${color} * samplePremultiplied(u_texture${textureId}, v_texCoord)`,\n )\n .setSymbolSizeExpression(sizeExpression);\n\n // override size if width/height were specified\n if ('icon-width' in style && 'icon-height' in style) {\n builder.setSymbolSizeExpression(\n `vec2(${expressionToGlsl(\n vertContext,\n style['icon-width'],\n NumberType,\n )}, ${expressionToGlsl(vertContext, style['icon-height'], NumberType)})`,\n );\n }\n\n // tex coord\n if ('icon-offset' in style && 'icon-size' in style) {\n const sampleSize = expressionToGlsl(\n vertContext,\n style['icon-size'],\n NumberArrayType,\n );\n const fullsize = builder.getSymbolSizeExpression();\n builder.setSymbolSizeExpression(sampleSize);\n const offset = parseImageOffsetProperties(\n style,\n 'icon-',\n vertContext,\n 'v_quadSizePx',\n sampleSize,\n );\n builder.setTextureCoordinateExpression(\n `(vec4((${offset}).xyxy) + vec4(0., 0., ${sampleSize})) / (${fullsize}).xyxy`,\n );\n }\n\n parseCommonSymbolProperties(style, builder, vertContext, 'icon-');\n\n if ('icon-anchor' in style) {\n const anchor = expressionToGlsl(\n vertContext,\n style['icon-anchor'],\n NumberArrayType,\n );\n let scale = `1.0`;\n if (`icon-scale` in style) {\n scale = expressionToGlsl(vertContext, style[`icon-scale`], SizeType);\n }\n let shiftPx;\n if (\n style['icon-anchor-x-units'] === 'pixels' &&\n style['icon-anchor-y-units'] === 'pixels'\n ) {\n shiftPx = `${anchor} * ${scale}`;\n } else if (style['icon-anchor-x-units'] === 'pixels') {\n shiftPx = `${anchor} * vec2(vec2(${scale}).x, v_quadSizePx.y)`;\n } else if (style['icon-anchor-y-units'] === 'pixels') {\n shiftPx = `${anchor} * vec2(v_quadSizePx.x, vec2(${scale}).x)`;\n } else {\n shiftPx = `${anchor} * v_quadSizePx`;\n }\n // default origin is top-left\n let offsetPx = `v_quadSizePx * vec2(0.5, -0.5) + ${shiftPx} * vec2(-1., 1.)`;\n if ('icon-anchor-origin' in style) {\n switch (style['icon-anchor-origin']) {\n case 'top-right':\n offsetPx = `v_quadSizePx * -0.5 + ${shiftPx}`;\n break;\n case 'bottom-left':\n offsetPx = `v_quadSizePx * 0.5 - ${shiftPx}`;\n break;\n case 'bottom-right':\n offsetPx = `v_quadSizePx * vec2(-0.5, 0.5) + ${shiftPx} * vec2(1., -1.)`;\n break;\n default: // pass\n }\n }\n builder.setSymbolOffsetExpression(\n `${builder.getSymbolOffsetExpression()} + ${offsetPx}`,\n );\n }\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader Builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseStrokeProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n if ('stroke-color' in style) {\n builder.setStrokeColorExpression(\n expressionToGlsl(fragContext, style['stroke-color'], ColorType),\n );\n }\n if ('stroke-pattern-src' in style) {\n const textureId = computeHash(style['stroke-pattern-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'stroke-pattern-',\n textureId,\n );\n let sampleSizeExpression = sizeExpression;\n let offsetExpression = 'vec2(0.)';\n if ('stroke-pattern-offset' in style && 'stroke-pattern-size' in style) {\n sampleSizeExpression = expressionToGlsl(\n fragContext,\n style[`stroke-pattern-size`],\n NumberArrayType,\n );\n offsetExpression = parseImageOffsetProperties(\n style,\n 'stroke-pattern-',\n fragContext,\n sizeExpression,\n sampleSizeExpression,\n );\n }\n let spacingExpression = '0.';\n if ('stroke-pattern-spacing' in style) {\n spacingExpression = expressionToGlsl(\n fragContext,\n style['stroke-pattern-spacing'],\n NumberType,\n );\n }\n fragContext.functions['sampleStrokePattern'] =\n `vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) {\n float currentLengthScaled = currentLengthPx * sampleSize.y / lineWidth;\n float spacingScaled = spacingPx * sampleSize.y / lineWidth;\n float uCoordPx = mod(currentLengthScaled, (sampleSize.x + spacingScaled));\n // make sure that we're not sampling too close to the borders to avoid interpolation with outside pixels\n uCoordPx = clamp(uCoordPx, 0.5, sampleSize.x - 0.5);\n float vCoordPx = (-currentRadiusRatio * 0.5 + 0.5) * sampleSize.y;\n vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize;\n return samplePremultiplied(texture, texCoord);\n}`;\n const textureName = `u_texture${textureId}`;\n let tintExpression = '1.';\n if ('stroke-color' in style) {\n tintExpression = builder.getStrokeColorExpression();\n }\n builder.setStrokeColorExpression(\n `${tintExpression} * sampleStrokePattern(${textureName}, ${sizeExpression}, ${offsetExpression}, ${sampleSizeExpression}, ${spacingExpression}, currentLengthPx, currentRadiusRatio, v_width)`,\n );\n }\n\n if ('stroke-width' in style) {\n builder.setStrokeWidthExpression(\n expressionToGlsl(vertContext, style['stroke-width'], NumberType),\n );\n }\n\n if ('stroke-offset' in style) {\n builder.setStrokeOffsetExpression(\n expressionToGlsl(vertContext, style['stroke-offset'], NumberType),\n );\n }\n\n if ('stroke-line-cap' in style) {\n builder.setStrokeCapExpression(\n expressionToGlsl(vertContext, style['stroke-line-cap'], StringType),\n );\n }\n\n if ('stroke-line-join' in style) {\n builder.setStrokeJoinExpression(\n expressionToGlsl(vertContext, style['stroke-line-join'], StringType),\n );\n }\n\n if ('stroke-miter-limit' in style) {\n builder.setStrokeMiterLimitExpression(\n expressionToGlsl(vertContext, style['stroke-miter-limit'], NumberType),\n );\n }\n\n if ('stroke-line-dash' in style) {\n fragContext.functions['getSingleDashDistance'] =\n `float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType) {\n float localDistance = mod(distance, dashLengthTotal);\n float distanceSegment = abs(localDistance - dashOffset - dashLength * 0.5) - dashLength * 0.5;\n distanceSegment = min(distanceSegment, dashLengthTotal - localDistance);\n if (capType == ${stringToGlsl('square')}) {\n distanceSegment -= v_width * 0.5;\n } else if (capType == ${stringToGlsl('round')}) {\n distanceSegment = min(distanceSegment, sqrt(distanceSegment * distanceSegment + radius * radius) - v_width * 0.5);\n }\n return distanceSegment;\n}`;\n\n let dashPattern = style['stroke-line-dash'].map((v) =>\n expressionToGlsl(fragContext, v, NumberType),\n );\n // if pattern has odd length, concatenate it with itself to be even\n if (dashPattern.length % 2 === 1) {\n dashPattern = [...dashPattern, ...dashPattern];\n }\n\n let offsetExpression = '0.';\n if ('stroke-line-dash-offset' in style) {\n offsetExpression = expressionToGlsl(\n vertContext,\n style['stroke-line-dash-offset'],\n NumberType,\n );\n }\n\n // define a function for this dash specifically\n const uniqueDashKey = computeHash(style['stroke-line-dash']);\n const dashFunctionName = `dashDistanceField_${uniqueDashKey}`;\n\n const dashLengthsDef = dashPattern.map(\n (v, i) => `float dashLength${i} = ${v};`,\n );\n const totalLengthDef = dashPattern\n .map((v, i) => `dashLength${i}`)\n .join(' + ');\n let currentDashOffset = '0.';\n let distanceExpression = `getSingleDashDistance(distance, radius, ${currentDashOffset}, dashLength0, totalDashLength, capType)`;\n for (let i = 2; i < dashPattern.length; i += 2) {\n currentDashOffset = `${currentDashOffset} + dashLength${\n i - 2\n } + dashLength${i - 1}`;\n distanceExpression = `min(${distanceExpression}, getSingleDashDistance(distance, radius, ${currentDashOffset}, dashLength${i}, totalDashLength, capType))`;\n }\n\n fragContext.functions[dashFunctionName] =\n `float ${dashFunctionName}(float distance, float radius, float capType) {\n ${dashLengthsDef.join('\\n ')}\n float totalDashLength = ${totalLengthDef};\n return ${distanceExpression};\n}`;\n builder.setStrokeDistanceFieldExpression(\n `${dashFunctionName}(currentLengthPx + ${offsetExpression}, currentRadiusPx, capType)`,\n );\n }\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader Builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseFillProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n if ('fill-color' in style) {\n builder.setFillColorExpression(\n expressionToGlsl(fragContext, style['fill-color'], ColorType),\n );\n }\n if ('fill-pattern-src' in style) {\n const textureId = computeHash(style['fill-pattern-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'fill-pattern-',\n textureId,\n );\n let sampleSizeExpression = sizeExpression;\n let offsetExpression = 'vec2(0.)';\n if ('fill-pattern-offset' in style && 'fill-pattern-size' in style) {\n sampleSizeExpression = expressionToGlsl(\n fragContext,\n style[`fill-pattern-size`],\n NumberArrayType,\n );\n offsetExpression = parseImageOffsetProperties(\n style,\n 'fill-pattern-',\n fragContext,\n sizeExpression,\n sampleSizeExpression,\n );\n }\n fragContext.functions['sampleFillPattern'] =\n `vec4 sampleFillPattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, vec2 pxOrigin, vec2 pxPosition) {\n float scaleRatio = pow(2., mod(u_zoom + 0.5, 1.) - 0.5);\n vec2 pxRelativePos = pxPosition - pxOrigin;\n // rotate the relative position from origin by the current view rotation\n pxRelativePos = vec2(pxRelativePos.x * cos(u_rotation) - pxRelativePos.y * sin(u_rotation), pxRelativePos.x * sin(u_rotation) + pxRelativePos.y * cos(u_rotation));\n // sample position is computed according to the sample offset & size\n vec2 samplePos = mod(pxRelativePos / scaleRatio, sampleSize);\n // also make sure that we're not sampling too close to the borders to avoid interpolation with outside pixels\n samplePos = clamp(samplePos, vec2(0.5), sampleSize - vec2(0.5));\n samplePos.y = sampleSize.y - samplePos.y; // invert y axis so that images appear upright\n return samplePremultiplied(texture, (samplePos + textureOffset) / textureSize);\n}`;\n const textureName = `u_texture${textureId}`;\n let tintExpression = '1.';\n if ('fill-color' in style) {\n tintExpression = builder.getFillColorExpression();\n }\n builder.setFillColorExpression(\n `${tintExpression} * sampleFillPattern(${textureName}, ${sizeExpression}, ${offsetExpression}, ${sampleSizeExpression}, pxOrigin, pxPos)`,\n );\n }\n}\n\n/**\n * @typedef {Object} StyleParseResult\n * @property {ShaderBuilder} builder Shader builder pre-configured according to a given style\n * @property {import(\"../render/webgl/VectorStyleRenderer.js\").UniformDefinitions} uniforms Uniform definitions\n * @property {import(\"../render/webgl/VectorStyleRenderer.js\").AttributeDefinitions} attributes Attribute definitions\n */\n\n/**\n * Parses a {@link import(\"../style/webgl.js\").WebGLStyle} object and returns a {@link ShaderBuilder}\n * object that has been configured according to the given style, as well as `attributes` and `uniforms`\n * arrays to be fed to the `WebGLPointsRenderer` class.\n *\n * Also returns `uniforms` and `attributes` properties as expected by the\n * {@link module:ol/renderer/webgl/PointsLayer~WebGLPointsLayerRenderer}.\n *\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Literal style.\n * @return {StyleParseResult} Result containing shader params, attributes and uniforms.\n */\nexport function parseLiteralStyle(style) {\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const vertContext = {\n inFragmentShader: false,\n properties: {},\n variables: {},\n functions: {},\n style,\n };\n\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const fragContext = {\n inFragmentShader: true,\n variables: vertContext.variables,\n properties: {},\n functions: {},\n style,\n };\n\n const builder = new ShaderBuilder();\n\n /** @type {Object} */\n const uniforms = {};\n\n if ('icon-src' in style) {\n parseIconProperties(style, builder, uniforms, vertContext, fragContext);\n } else if ('shape-points' in style) {\n parseShapeProperties(style, builder, uniforms, vertContext, fragContext);\n } else if ('circle-radius' in style) {\n parseCircleProperties(style, builder, uniforms, vertContext, fragContext);\n }\n parseStrokeProperties(style, builder, uniforms, vertContext, fragContext);\n parseFillProperties(style, builder, uniforms, vertContext, fragContext);\n\n if (style.filter) {\n const parsedFilter = expressionToGlsl(\n fragContext,\n style.filter,\n BooleanType,\n );\n builder.setFragmentDiscardExpression(`!${parsedFilter}`);\n }\n\n // define one uniform per variable\n Object.keys(fragContext.variables).forEach(function (varName) {\n const variable = fragContext.variables[varName];\n const uniformName = uniformNameForVariable(variable.name);\n builder.addUniform(`${getGlslTypeFromType(variable.type)} ${uniformName}`);\n\n let callback;\n if (variable.type === StringType) {\n callback = () =>\n getStringNumberEquivalent(\n /** @type {string} */ (style.variables[variable.name]),\n );\n } else if (variable.type === ColorType) {\n callback = () =>\n packColor([\n ...asArray(\n /** @type {string|Array} */ (\n style.variables[variable.name]\n ) || '#eee',\n ),\n ]);\n } else if (variable.type === BooleanType) {\n callback = () =>\n /** @type {boolean} */ (style.variables[variable.name]) ? 1.0 : 0.0;\n } else {\n callback = () => /** @type {number} */ (style.variables[variable.name]);\n }\n uniforms[uniformName] = callback;\n });\n\n // for each feature attribute used in the fragment shader, define a varying that will be used to pass data\n // from the vertex to the fragment shader, as well as an attribute in the vertex shader (if not already present)\n Object.keys(fragContext.properties).forEach(function (propName) {\n const property = fragContext.properties[propName];\n if (!vertContext.properties[propName]) {\n vertContext.properties[propName] = property;\n }\n let type = getGlslTypeFromType(property.type);\n let expression = `a_prop_${property.name}`;\n if (property.type === ColorType) {\n type = 'vec4';\n expression = `unpackColor(${expression})`;\n builder.addVertexShaderFunction(UNPACK_COLOR_FN);\n }\n builder.addVarying(`v_prop_${property.name}`, type, expression);\n });\n\n // for each feature attribute used in the vertex shader, define an attribute in the vertex shader.\n Object.keys(vertContext.properties).forEach(function (propName) {\n const property = vertContext.properties[propName];\n builder.addAttribute(\n `${getGlslTypeFromType(property.type)} a_prop_${property.name}`,\n );\n });\n\n const attributes = Object.keys(vertContext.properties).map(\n function (propName) {\n const property = vertContext.properties[propName];\n let callback;\n if (property.evaluator) {\n callback = property.evaluator;\n } else if (property.type === StringType) {\n callback = (feature) =>\n getStringNumberEquivalent(feature.get(property.name));\n } else if (property.type === ColorType) {\n callback = (feature) =>\n packColor([...asArray(feature.get(property.name) || '#eee')]);\n } else if (property.type === BooleanType) {\n callback = (feature) => (feature.get(property.name) ? 1.0 : 0.0);\n } else {\n callback = (feature) => feature.get(property.name);\n }\n\n return {\n name: property.name,\n size: getGlslSizeFromType(property.type),\n callback,\n };\n },\n );\n\n // add functions that were collected in the compilation contexts\n for (const functionName in vertContext.functions) {\n builder.addVertexShaderFunction(vertContext.functions[functionName]);\n }\n for (const functionName in fragContext.functions) {\n builder.addFragmentShaderFunction(fragContext.functions[functionName]);\n }\n\n return {\n builder: builder,\n attributes: attributes.reduce(\n (prev, curr) => ({\n ...prev,\n [curr.name]: {callback: curr.callback, size: curr.size},\n }),\n {},\n ),\n uniforms: uniforms,\n };\n}\n","/**\n * @module ol/layer/WebGLTile\n */\nimport BaseTileLayer from './BaseTile.js';\nimport LayerProperty from '../layer/Property.js';\nimport WebGLTileLayerRenderer, {\n Attributes,\n Uniforms,\n} from '../renderer/webgl/TileLayer.js';\nimport {ColorType, NumberType} from '../expr/expression.js';\nimport {\n PALETTE_TEXTURE_ARRAY,\n getStringNumberEquivalent,\n newCompilationContext,\n uniformNameForVariable,\n} from '../expr/gpu.js';\nimport {expressionToGlsl} from '../webgl/styleparser.js';\n\n/**\n * @typedef {import(\"../source/DataTile.js\").default|import(\"../source/TileImage.js\").default} SourceType\n */\n\n/**\n * @typedef {Object} Style\n * Translates tile data to rendered pixels.\n *\n * @property {Object} [variables] Style variables. Each variable must hold a number or string. These\n * variables can be used in the `color`, `brightness`, `contrast`, `exposure`, `saturation` and `gamma`\n * {@link import(\"../expr/expression.js\").ExpressionValue expressions}, using the `['var', 'varName']` operator.\n * To update style variables, use the {@link import(\"./WebGLTile.js\").default#updateStyleVariables} method.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [color] An expression applied to color values.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [brightness=0] Value used to decrease or increase\n * the layer brightness. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [contrast=0] Value used to decrease or increase\n * the layer contrast. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [exposure=0] Value used to decrease or increase\n * the layer exposure. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [saturation=0] Value used to decrease or increase\n * the layer saturation. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [gamma=1] Apply a gamma correction to the layer.\n * Values range from 0 to infinity.\n */\n\n/**\n * @typedef {Object} Options\n * @property {Style} [style] Style to apply to the layer.\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`\n * means no preloading.\n * @property {SourceType} [source] Source for this layer.\n * @property {Array|function(import(\"../extent.js\").Extent, number):Array} [sources] Array\n * of sources for this layer. Takes precedence over `source`. Can either be an array of sources, or a function that\n * expects an extent and a resolution (in view projection units per pixel) and returns an array of sources. See\n * {@link module:ol/source.sourcesFromTileGrid} for a helper function to generate sources that are organized in a\n * pyramid following the same pattern as a tile grid. **Note:** All sources must have the same band count and content.\n * @property {import(\"../Map.js\").default} [map] Sets the layer as overlay on a map. The map will not manage\n * this layer in its layers collection, and the layer will be rendered on top. This is useful for\n * temporary layers. The standard way to add a layer to a map and have it managed by the map is to\n * use {@link module:ol/Map~Map#addLayer}.\n * @property {boolean} [useInterimTilesOnError=true] Use interim tiles on error.\n * @property {number} [cacheSize=512] The internal texture cache size. This needs to be large enough to render\n * two zoom levels worth of tiles.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n\n/**\n * @typedef {Object} ParsedStyle\n * @property {string} vertexShader The vertex shader.\n * @property {string} fragmentShader The fragment shader.\n * @property {Object} uniforms Uniform definitions.\n * @property {Array} paletteTextures Palette textures.\n */\n\n/**\n * @param {Style} style The layer style.\n * @param {number} [bandCount] The number of bands.\n * @return {ParsedStyle} Shaders and uniforms generated from the style.\n */\nfunction parseStyle(style, bandCount) {\n const vertexShader = `\n attribute vec2 ${Attributes.TEXTURE_COORD};\n uniform mat4 ${Uniforms.TILE_TRANSFORM};\n uniform float ${Uniforms.TEXTURE_PIXEL_WIDTH};\n uniform float ${Uniforms.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Uniforms.TEXTURE_RESOLUTION};\n uniform float ${Uniforms.TEXTURE_ORIGIN_X};\n uniform float ${Uniforms.TEXTURE_ORIGIN_Y};\n uniform float ${Uniforms.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${Attributes.TEXTURE_COORD};\n v_mapCoord = vec2(\n ${Uniforms.TEXTURE_ORIGIN_X} + ${Uniforms.TEXTURE_RESOLUTION} * ${Uniforms.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${Uniforms.TEXTURE_ORIGIN_Y} - ${Uniforms.TEXTURE_RESOLUTION} * ${Uniforms.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${Uniforms.TILE_TRANSFORM} * vec4(${Attributes.TEXTURE_COORD}, ${Uniforms.DEPTH}, 1.0);\n }\n `;\n\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const context = {\n ...newCompilationContext(),\n inFragmentShader: true,\n bandCount: bandCount,\n style: style,\n };\n\n const pipeline = [];\n\n if (style.color !== undefined) {\n const color = expressionToGlsl(context, style.color, ColorType);\n pipeline.push(`color = ${color};`);\n }\n\n if (style.contrast !== undefined) {\n const contrast = expressionToGlsl(context, style.contrast, NumberType);\n pipeline.push(\n `color.rgb = clamp((${contrast} + 1.0) * color.rgb - (${contrast} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n if (style.exposure !== undefined) {\n const exposure = expressionToGlsl(context, style.exposure, NumberType);\n pipeline.push(\n `color.rgb = clamp((${exposure} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n if (style.saturation !== undefined) {\n const saturation = expressionToGlsl(context, style.saturation, NumberType);\n pipeline.push(`\n float saturation = ${saturation} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `);\n }\n\n if (style.gamma !== undefined) {\n const gamma = expressionToGlsl(context, style.gamma, NumberType);\n pipeline.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${gamma}));`);\n }\n\n if (style.brightness !== undefined) {\n const brightness = expressionToGlsl(context, style.brightness, NumberType);\n pipeline.push(\n `color.rgb = clamp(color.rgb + ${brightness}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n /** @type {Object} */\n const uniforms = {};\n\n const numVariables = Object.keys(context.variables).length;\n if (numVariables > 1 && !style.variables) {\n throw new Error(\n `Missing variables in style (expected ${context.variables})`,\n );\n }\n\n for (let i = 0; i < numVariables; ++i) {\n const variable = context.variables[Object.keys(context.variables)[i]];\n if (!(variable.name in style.variables)) {\n throw new Error(`Missing '${variable.name}' in style variables`);\n }\n const uniformName = uniformNameForVariable(variable.name);\n uniforms[uniformName] = function () {\n let value = style.variables[variable.name];\n if (typeof value === 'string') {\n value = getStringNumberEquivalent(value);\n }\n return value !== undefined ? value : -9999999; // to avoid matching with the first string literal\n };\n }\n\n const uniformDeclarations = Object.keys(uniforms).map(function (name) {\n return `uniform float ${name};`;\n });\n\n const textureCount = Math.ceil(bandCount / 4);\n uniformDeclarations.push(\n `uniform sampler2D ${Uniforms.TILE_TEXTURE_ARRAY}[${textureCount}];`,\n );\n\n if (context.paletteTextures) {\n uniformDeclarations.push(\n `uniform sampler2D ${PALETTE_TEXTURE_ARRAY}[${context.paletteTextures.length}];`,\n );\n }\n\n const functionDefintions = Object.keys(context.functions).map(\n function (name) {\n return context.functions[name];\n },\n );\n\n const fragmentShader = `\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n #endif\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n uniform vec4 ${Uniforms.RENDER_EXTENT};\n uniform float ${Uniforms.TRANSITION_ALPHA};\n uniform float ${Uniforms.TEXTURE_PIXEL_WIDTH};\n uniform float ${Uniforms.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Uniforms.RESOLUTION};\n uniform float ${Uniforms.ZOOM};\n\n ${uniformDeclarations.join('\\n')}\n\n ${functionDefintions.join('\\n')}\n\n void main() {\n if (\n v_mapCoord[0] < ${Uniforms.RENDER_EXTENT}[0] ||\n v_mapCoord[1] < ${Uniforms.RENDER_EXTENT}[1] ||\n v_mapCoord[0] > ${Uniforms.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${Uniforms.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${\n Uniforms.TILE_TEXTURE_ARRAY\n }[0], v_textureCoord);\n\n ${pipeline.join('\\n')}\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${Uniforms.TRANSITION_ALPHA};\n }`;\n\n return {\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n uniforms: uniforms,\n paletteTextures: context.paletteTextures,\n };\n}\n\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @extends BaseTileLayer\n * @fires import(\"../render/Event.js\").RenderEvent\n * @api\n */\nclass WebGLTileLayer extends BaseTileLayer {\n /**\n * @param {Options} options Tile layer options.\n */\n constructor(options) {\n options = options ? Object.assign({}, options) : {};\n\n const style = options.style || {};\n delete options.style;\n\n const cacheSize = options.cacheSize;\n delete options.cacheSize;\n\n super(options);\n\n /**\n * @type {Array|function(import(\"../extent.js\").Extent, number):Array}\n * @private\n */\n this.sources_ = options.sources;\n\n /**\n * @type {SourceType|null}\n * @private\n */\n this.renderedSource_ = null;\n\n /**\n * @type {number}\n * @private\n */\n this.renderedResolution_ = NaN;\n\n /**\n * @type {Style}\n * @private\n */\n this.style_ = style;\n\n /**\n * @type {number}\n * @private\n */\n this.cacheSize_ = cacheSize;\n\n /**\n * @type {Object}\n * @private\n */\n this.styleVariables_ = this.style_.variables || {};\n\n this.addChangeListener(LayerProperty.SOURCE, this.handleSourceUpdate_);\n }\n\n /**\n * Gets the sources for this layer, for a given extent and resolution.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @return {Array} Sources.\n */\n getSources(extent, resolution) {\n const source = this.getSource();\n return this.sources_\n ? typeof this.sources_ === 'function'\n ? this.sources_(extent, resolution)\n : this.sources_\n : source\n ? [source]\n : [];\n }\n\n /**\n * @return {SourceType} The source being rendered.\n */\n getRenderSource() {\n return this.renderedSource_ || this.getSource();\n }\n\n /**\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n getSourceState() {\n const source = this.getRenderSource();\n return source ? source.getState() : 'undefined';\n }\n\n /**\n * @private\n */\n handleSourceUpdate_() {\n if (this.hasRenderer()) {\n this.getRenderer().clearCache();\n }\n if (this.getSource()) {\n this.setStyle(this.style_);\n }\n }\n\n /**\n * @private\n * @return {number} The number of source bands.\n */\n getSourceBandCount_() {\n const max = Number.MAX_SAFE_INTEGER;\n const sources = this.getSources([-max, -max, max, max], max);\n return sources && sources.length && 'bandCount' in sources[0]\n ? sources[0].bandCount\n : 4;\n }\n\n createRenderer() {\n const parsedStyle = parseStyle(this.style_, this.getSourceBandCount_());\n\n return new WebGLTileLayerRenderer(this, {\n vertexShader: parsedStyle.vertexShader,\n fragmentShader: parsedStyle.fragmentShader,\n uniforms: parsedStyle.uniforms,\n cacheSize: this.cacheSize_,\n paletteTextures: parsedStyle.paletteTextures,\n });\n }\n\n /**\n * @param {import(\"../Map\").FrameState} frameState Frame state.\n * @param {Array} sources Sources.\n * @return {HTMLElement} Canvas.\n */\n renderSources(frameState, sources) {\n const layerRenderer = this.getRenderer();\n let canvas;\n for (let i = 0, ii = sources.length; i < ii; ++i) {\n this.renderedSource_ = sources[i];\n if (layerRenderer.prepareFrame(frameState)) {\n canvas = layerRenderer.renderFrame(frameState);\n }\n }\n return canvas;\n }\n\n /**\n * @param {?import(\"../Map.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target which the renderer may (but need not) use\n * for rendering its content.\n * @return {HTMLElement} The rendered element.\n */\n render(frameState, target) {\n this.rendered = true;\n const viewState = frameState.viewState;\n const sources = this.getSources(frameState.extent, viewState.resolution);\n let ready = true;\n for (let i = 0, ii = sources.length; i < ii; ++i) {\n const source = sources[i];\n const sourceState = source.getState();\n if (sourceState == 'loading') {\n const onChange = () => {\n if (source.getState() == 'ready') {\n source.removeEventListener('change', onChange);\n this.changed();\n }\n };\n source.addEventListener('change', onChange);\n }\n ready = ready && sourceState == 'ready';\n }\n const canvas = this.renderSources(frameState, sources);\n if (this.getRenderer().renderComplete && ready) {\n // Fully rendered, done.\n this.renderedResolution_ = viewState.resolution;\n return canvas;\n }\n // Render sources from previously fully rendered frames\n if (this.renderedResolution_ > 0.5 * viewState.resolution) {\n const altSources = this.getSources(\n frameState.extent,\n this.renderedResolution_,\n ).filter((source) => !sources.includes(source));\n if (altSources.length > 0) {\n return this.renderSources(frameState, altSources);\n }\n }\n return canvas;\n }\n\n /**\n * Update the layer style. The `updateStyleVariables` function is a more efficient\n * way to update layer rendering. In cases where the whole style needs to be updated,\n * this method may be called instead. Note that calling this method will also replace\n * any previously set variables, so the new style also needs to include new variables,\n * if needed.\n * @param {Style} style The new style.\n */\n setStyle(style) {\n this.styleVariables_ = style.variables || {};\n this.style_ = style;\n const parsedStyle = parseStyle(this.style_, this.getSourceBandCount_());\n const renderer = this.getRenderer();\n renderer.reset({\n vertexShader: parsedStyle.vertexShader,\n fragmentShader: parsedStyle.fragmentShader,\n uniforms: parsedStyle.uniforms,\n paletteTextures: parsedStyle.paletteTextures,\n });\n this.changed();\n }\n\n /**\n * Update any variables used by the layer style and trigger a re-render.\n * @param {Object} variables Variables to update.\n * @api\n */\n updateStyleVariables(variables) {\n Object.assign(this.styleVariables_, variables);\n this.changed();\n }\n}\n\n/**\n * Clean up underlying WebGL resources.\n * @function\n * @api\n */\nWebGLTileLayer.prototype.dispose;\n\nexport default WebGLTileLayer;\n","/**\n * @module ol/source/DataTile\n */\nimport DataTile from '../DataTile.js';\nimport EventType from '../events/EventType.js';\nimport ReprojDataTile from '../reproj/DataTile.js';\nimport TileCache from '../TileCache.js';\nimport TileEventType from './TileEventType.js';\nimport TileSource, {TileSourceEvent} from './Tile.js';\nimport TileState from '../TileState.js';\nimport {\n createXYZ,\n extentFromProjection,\n getForProjection as getTileGridForProjection,\n} from '../tilegrid.js';\nimport {equivalent, get as getProjection} from '../proj.js';\nimport {getKeyZXY} from '../tilecoord.js';\nimport {getUid} from '../util.js';\nimport {toPromise} from '../functions.js';\nimport {toSize} from '../size.js';\n\n/**\n * Data tile loading function. The function is called with z, x, and y tile coordinates and\n * returns {@link import(\"../DataTile.js\").Data data} for a tile or a promise for the same.\n * @typedef {function(number, number, number) : (import(\"../DataTile.js\").Data|Promise)} Loader\n */\n\n/**\n * @typedef {Object} Options\n * @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.\n * Returns {@link import(\"../DataTile.js\").Data data} for a tile or a promise for the same.\n * For loaders that generate images, the promise should not resolve until the image is loaded.\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.\n * @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.\n * @property {number|import(\"../size.js\").Size} [tileSize=[256, 256]] The pixel width and height of the source tiles.\n * This may be different than the rendered pixel size if a `tileGrid` is provided.\n * @property {number} [gutter=0] The size in pixels of the gutter around data tiles to ignore.\n * This allows artifacts of rendering at tile edges to be ignored.\n * Supported data should be wider and taller than the tile size by a value of `2 x gutter`.\n * @property {number} [maxResolution] Optional tile grid resolution at level zero. Not used if `tileGrid` is provided.\n * @property {import(\"../proj.js\").ProjectionLike} [projection='EPSG:3857'] Tile projection.\n * @property {import(\"../tilegrid/TileGrid.js\").default} [tileGrid] Tile grid.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"./Source.js\").State} [state] The source state.\n * @property {boolean} [wrapX=false] Render tiles beyond the antimeridian.\n * @property {number} [transition] Transition time when fading in new tiles (in milliseconds).\n * @property {number} [bandCount=4] Number of bands represented in the data.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n */\n\n/**\n * @classdesc\n * A source for typed array data tiles.\n *\n * @fires import(\"./Tile.js\").TileSourceEvent\n * @api\n */\nclass DataTileSource extends TileSource {\n /**\n * @param {Options} options DataTile source options.\n */\n constructor(options) {\n const projection =\n options.projection === undefined ? 'EPSG:3857' : options.projection;\n\n let tileGrid = options.tileGrid;\n if (tileGrid === undefined && projection) {\n tileGrid = createXYZ({\n extent: extentFromProjection(projection),\n maxResolution: options.maxResolution,\n maxZoom: options.maxZoom,\n minZoom: options.minZoom,\n tileSize: options.tileSize,\n });\n }\n\n super({\n cacheSize: 0.1, // don't cache on the source\n attributions: options.attributions,\n attributionsCollapsible: options.attributionsCollapsible,\n projection: projection,\n tileGrid: tileGrid,\n opaque: options.opaque,\n state: options.state,\n wrapX: options.wrapX,\n transition: options.transition,\n interpolate: options.interpolate,\n });\n\n /**\n * @private\n * @type {number}\n */\n this.gutter_ = options.gutter !== undefined ? options.gutter : 0;\n\n /**\n * @private\n * @type {import('../size.js').Size|null}\n */\n this.tileSize_ = options.tileSize ? toSize(options.tileSize) : null;\n\n /**\n * @private\n * @type {Array|null}\n */\n this.tileSizes_ = null;\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileLoadingKeys_ = {};\n\n /**\n * @private\n */\n this.loader_ = options.loader;\n\n this.handleTileChange_ = this.handleTileChange_.bind(this);\n\n /**\n * @type {number}\n */\n this.bandCount = options.bandCount === undefined ? 4 : options.bandCount; // assume RGBA if undefined\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileGridForProjection_ = {};\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileCacheForProjection_ = {};\n }\n\n /**\n * Set the source tile sizes. The length of the array is expected to match the number of\n * levels in the tile grid.\n * @protected\n * @param {Array} tileSizes An array of tile sizes.\n */\n setTileSizes(tileSizes) {\n this.tileSizes_ = tileSizes;\n }\n\n /**\n * Get the source tile size at the given zoom level. This may be different than the rendered tile\n * size.\n * @protected\n * @param {number} z Tile zoom level.\n * @return {import('../size.js').Size} The source tile size.\n */\n getTileSize(z) {\n if (this.tileSizes_) {\n return this.tileSizes_[z];\n }\n if (this.tileSize_) {\n return this.tileSize_;\n }\n const tileGrid = this.getTileGrid();\n return tileGrid ? toSize(tileGrid.getTileSize(z)) : [256, 256];\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {number} Gutter.\n */\n getGutterForProjection(projection) {\n const thisProj = this.getProjection();\n if (!thisProj || equivalent(thisProj, projection)) {\n return this.gutter_;\n }\n\n return 0;\n }\n\n /**\n * @param {Loader} loader The data loader.\n * @protected\n */\n setLoader(loader) {\n this.loader_ = loader;\n }\n\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {import(\"../proj/Projection.js\").default} targetProj The output projection.\n * @param {import(\"../proj/Projection.js\").default} sourceProj The input projection.\n * @return {!DataTile} Tile.\n */\n getReprojTile_(z, x, y, targetProj, sourceProj) {\n const cache = this.getTileCacheForProjection(targetProj);\n const tileCoordKey = getKeyZXY(z, x, y);\n if (cache.containsKey(tileCoordKey)) {\n const tile = cache.get(tileCoordKey);\n if (tile && tile.key == this.getKey()) {\n return tile;\n }\n }\n\n const tileGrid = this.getTileGrid();\n const reprojTilePixelRatio = Math.max.apply(\n null,\n tileGrid.getResolutions().map((r, z) => {\n const tileSize = toSize(tileGrid.getTileSize(z));\n const textureSize = this.getTileSize(z);\n return Math.max(\n textureSize[0] / tileSize[0],\n textureSize[1] / tileSize[1],\n );\n }),\n );\n\n const sourceTileGrid = this.getTileGridForProjection(sourceProj);\n const targetTileGrid = this.getTileGridForProjection(targetProj);\n const tileCoord = [z, x, y];\n const wrappedTileCoord = this.getTileCoordForTileUrlFunction(\n tileCoord,\n targetProj,\n );\n\n const options = Object.assign(\n {\n sourceProj,\n sourceTileGrid,\n targetProj,\n targetTileGrid,\n tileCoord,\n wrappedTileCoord,\n pixelRatio: reprojTilePixelRatio,\n gutter: this.getGutterForProjection(sourceProj),\n getTileFunction: (z, x, y, pixelRatio) =>\n this.getTile(z, x, y, pixelRatio, sourceProj),\n },\n this.tileOptions,\n );\n const newTile = new ReprojDataTile(options);\n newTile.key = this.getKey();\n return newTile;\n }\n\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!DataTile} Tile.\n */\n getTile(z, x, y, pixelRatio, projection) {\n const sourceProjection = this.getProjection();\n if (\n sourceProjection &&\n projection &&\n !equivalent(sourceProjection, projection)\n ) {\n return this.getReprojTile_(z, x, y, projection, sourceProjection);\n }\n\n const size = this.getTileSize(z);\n const tileCoordKey = getKeyZXY(z, x, y);\n if (this.tileCache.containsKey(tileCoordKey)) {\n return this.tileCache.get(tileCoordKey);\n }\n\n const sourceLoader = this.loader_;\n\n function loader() {\n return toPromise(function () {\n return sourceLoader(z, x, y);\n });\n }\n\n const options = Object.assign(\n {\n tileCoord: [z, x, y],\n loader: loader,\n size: size,\n },\n this.tileOptions,\n );\n\n const tile = new DataTile(options);\n tile.key = this.getKey();\n tile.addEventListener(EventType.CHANGE, this.handleTileChange_);\n\n this.tileCache.set(tileCoordKey, tile);\n return tile;\n }\n\n /**\n * Handle tile change events.\n * @param {import(\"../events/Event.js\").default} event Event.\n */\n handleTileChange_(event) {\n const tile = /** @type {import(\"../Tile.js\").default} */ (event.target);\n const uid = getUid(tile);\n const tileState = tile.getState();\n let type;\n if (tileState == TileState.LOADING) {\n this.tileLoadingKeys_[uid] = true;\n type = TileEventType.TILELOADSTART;\n } else if (uid in this.tileLoadingKeys_) {\n delete this.tileLoadingKeys_[uid];\n type =\n tileState == TileState.ERROR\n ? TileEventType.TILELOADERROR\n : tileState == TileState.LOADED\n ? TileEventType.TILELOADEND\n : undefined;\n }\n if (type) {\n this.dispatchEvent(new TileSourceEvent(type, tile));\n }\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!import(\"../tilegrid/TileGrid.js\").default} Tile grid.\n */\n getTileGridForProjection(projection) {\n const thisProj = this.getProjection();\n if (this.tileGrid && (!thisProj || equivalent(thisProj, projection))) {\n return this.tileGrid;\n }\n\n const projKey = getUid(projection);\n if (!(projKey in this.tileGridForProjection_)) {\n this.tileGridForProjection_[projKey] =\n getTileGridForProjection(projection);\n }\n return this.tileGridForProjection_[projKey];\n }\n\n /**\n * Sets the tile grid to use when reprojecting the tiles to the given\n * projection instead of the default tile grid for the projection.\n *\n * This can be useful when the default tile grid cannot be created\n * (e.g. projection has no extent defined) or\n * for optimization reasons (custom tile size, resolutions, ...).\n *\n * @param {import(\"../proj.js\").ProjectionLike} projection Projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} tilegrid Tile grid to use for the projection.\n * @api\n */\n setTileGridForProjection(projection, tilegrid) {\n const proj = getProjection(projection);\n if (proj) {\n const projKey = getUid(proj);\n if (!(projKey in this.tileGridForProjection_)) {\n this.tileGridForProjection_[projKey] = tilegrid;\n }\n }\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {import(\"../TileCache.js\").default} Tile cache.\n */\n getTileCacheForProjection(projection) {\n const thisProj = this.getProjection();\n if (!thisProj || equivalent(thisProj, projection)) {\n return this.tileCache;\n }\n\n const projKey = getUid(projection);\n if (!(projKey in this.tileCacheForProjection_)) {\n this.tileCacheForProjection_[projKey] = new TileCache(0.1); // don't cache\n }\n return this.tileCacheForProjection_[projKey];\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @param {!Object} usedTiles Used tiles.\n */\n expireCache(projection, usedTiles) {\n const usedTileCache = this.getTileCacheForProjection(projection);\n\n this.tileCache.expireCache(\n this.tileCache == usedTileCache ? usedTiles : {},\n );\n for (const id in this.tileCacheForProjection_) {\n const tileCache = this.tileCacheForProjection_[id];\n tileCache.expireCache(tileCache == usedTileCache ? usedTiles : {});\n }\n }\n\n clear() {\n super.clear();\n for (const id in this.tileCacheForProjection_) {\n this.tileCacheForProjection_[id].clear();\n }\n }\n}\n\nexport default DataTileSource;\n","import { getDecoder } from './compression/index.js';\n\nconst defaultPoolSize = typeof navigator !== 'undefined' ? (navigator.hardwareConcurrency || 2) : 2;\n\n/**\n * @module pool\n */\n\n/**\n * Pool for workers to decode chunks of the images.\n */\nclass Pool {\n /**\n * @constructor\n * @param {Number} [size] The size of the pool. Defaults to the number of CPUs\n * available. When this parameter is `null` or 0, then the\n * decoding will be done in the main thread.\n * @param {function(): Worker} [createWorker] A function that creates the decoder worker.\n * Defaults to a worker with all decoders that ship with geotiff.js. The `createWorker()`\n * function is expected to return a `Worker` compatible with Web Workers. For code that\n * runs in Node, [web-worker](https://www.npmjs.com/package/web-worker) is a good choice.\n *\n * A worker that uses a custom lzw decoder would look like this `my-custom-worker.js` file:\n * ```js\n * import { addDecoder, getDecoder } from 'geotiff';\n * addDecoder(5, () => import ('./my-custom-lzw').then((m) => m.default));\n * self.addEventListener('message', async (e) => {\n * const { id, fileDirectory, buffer } = e.data;\n * const decoder = await getDecoder(fileDirectory);\n * const decoded = await decoder.decode(fileDirectory, buffer);\n * self.postMessage({ decoded, id }, [decoded]);\n * });\n * ```\n * The way the above code is built into a worker by the `createWorker()` function\n * depends on the used bundler. For most bundlers, something like this will work:\n * ```js\n * function createWorker() {\n * return new Worker(new URL('./my-custom-worker.js', import.meta.url));\n * }\n * ```\n */\n constructor(size = defaultPoolSize, createWorker) {\n this.workers = null;\n this._awaitingDecoder = null;\n this.size = size;\n this.messageId = 0;\n if (size) {\n this._awaitingDecoder = createWorker ? Promise.resolve(createWorker) : new Promise((resolve) => {\n import('./worker/decoder.js').then((module) => {\n resolve(module.create);\n });\n });\n this._awaitingDecoder.then((create) => {\n this._awaitingDecoder = null;\n this.workers = [];\n for (let i = 0; i < size; i++) {\n this.workers.push({ worker: create(), idle: true });\n }\n });\n }\n }\n\n /**\n * Decode the given block of bytes with the set compression method.\n * @param {ArrayBuffer} buffer the array buffer of bytes to decode.\n * @returns {Promise} the decoded result as a `Promise`\n */\n async decode(fileDirectory, buffer) {\n if (this._awaitingDecoder) {\n await this._awaitingDecoder;\n }\n return this.size === 0\n ? getDecoder(fileDirectory).then((decoder) => decoder.decode(fileDirectory, buffer))\n : new Promise((resolve) => {\n const worker = this.workers.find((candidate) => candidate.idle)\n || this.workers[Math.floor(Math.random() * this.size)];\n worker.idle = false;\n const id = this.messageId++;\n const onMessage = (e) => {\n if (e.data.id === id) {\n worker.idle = true;\n resolve(e.data.decoded);\n worker.worker.removeEventListener('message', onMessage);\n }\n };\n worker.worker.addEventListener('message', onMessage);\n worker.worker.postMessage({ fileDirectory, buffer, id }, [buffer]);\n });\n }\n\n destroy() {\n if (this.workers) {\n this.workers.forEach((worker) => {\n worker.worker.terminate();\n });\n this.workers = null;\n }\n }\n}\n\nexport default Pool;\n","/**\n * @module ol/source/GeoTIFF\n */\nimport DataTile from './DataTile.js';\nimport TileGrid from '../tilegrid/TileGrid.js';\nimport {\n Pool,\n globals as geotiffGlobals,\n fromBlob as tiffFromBlob,\n fromUrl as tiffFromUrl,\n fromUrls as tiffFromUrls,\n} from 'geotiff';\nimport {\n Projection,\n get as getCachedProjection,\n toUserCoordinate,\n toUserExtent,\n} from '../proj.js';\nimport {clamp} from '../math.js';\nimport {getCenter, getIntersection} from '../extent.js';\nimport {error as logError} from '../console.js';\nimport {fromCode as unitsFromCode} from '../proj/Units.js';\n\n/**\n * Determine if an image type is a mask.\n * See https://www.awaresystems.be/imaging/tiff/tifftags/newsubfiletype.html\n * @param {GeoTIFFImage} image The image.\n * @return {boolean} The image is a mask.\n */\nfunction isMask(image) {\n const fileDirectory = image.fileDirectory;\n const type = fileDirectory.NewSubfileType || 0;\n return (type & 4) === 4;\n}\n\n/**\n * @param {true|false|'auto'} preference The convertToRGB option.\n * @param {GeoTIFFImage} image The image.\n * @return {boolean} Use the `image.readRGB()` method.\n */\nfunction readRGB(preference, image) {\n if (!preference) {\n return false;\n }\n if (preference === true) {\n return true;\n }\n if (image.getSamplesPerPixel() !== 3) {\n return false;\n }\n const interpretation = image.fileDirectory.PhotometricInterpretation;\n const interpretations = geotiffGlobals.photometricInterpretations;\n return (\n interpretation === interpretations.CMYK ||\n interpretation === interpretations.YCbCr ||\n interpretation === interpretations.CIELab ||\n interpretation === interpretations.ICCLab\n );\n}\n\n/**\n * @typedef {Object} SourceInfo\n * @property {string} [url] URL for the source GeoTIFF.\n * @property {Array} [overviews] List of any overview URLs, only applies if the url parameter is given.\n * @property {Blob} [blob] Blob containing the source GeoTIFF. `blob` and `url` are mutually exclusive.\n * @property {number} [min=0] The minimum source data value. Rendered values are scaled from 0 to 1 based on\n * the configured min and max. If not provided and raster statistics are available, those will be used instead.\n * If neither are available, the minimum for the data type will be used. To disable this behavior, set\n * the `normalize` option to `false` in the constructor.\n * @property {number} [max] The maximum source data value. Rendered values are scaled from 0 to 1 based on\n * the configured min and max. If not provided and raster statistics are available, those will be used instead.\n * If neither are available, the maximum for the data type will be used. To disable this behavior, set\n * the `normalize` option to `false` in the constructor.\n * @property {number} [nodata] Values to discard (overriding any nodata values in the metadata).\n * When provided, an additional alpha band will be added to the data. Often the GeoTIFF metadata\n * will include information about nodata values, so you should only need to set this property if\n * you find that it is not already extracted from the metadata.\n * @property {Array} [bands] Band numbers to be read from (where the first band is `1`). If not provided, all bands will\n * be read. For example, if a GeoTIFF has blue (1), green (2), red (3), and near-infrared (4) bands, and you only need the\n * near-infrared band, configure `bands: [4]`.\n */\n\n/**\n * @typedef {Object} GeoKeys\n * @property {number} GTModelTypeGeoKey Model type.\n * @property {number} GTRasterTypeGeoKey Raster type.\n * @property {number} GeogAngularUnitsGeoKey Angular units.\n * @property {number} GeogInvFlatteningGeoKey Inverse flattening.\n * @property {number} GeogSemiMajorAxisGeoKey Semi-major axis.\n * @property {number} GeographicTypeGeoKey Geographic coordinate system code.\n * @property {number} ProjLinearUnitsGeoKey Projected linear unit code.\n * @property {number} ProjectedCSTypeGeoKey Projected coordinate system code.\n */\n\n/**\n * @typedef {import(\"geotiff\").GeoTIFF} GeoTIFF\n */\n\n/**\n * @typedef {import(\"geotiff\").MultiGeoTIFF} MultiGeoTIFF\n */\n\n/**\n * @typedef {Object} GDALMetadata\n * @property {string} STATISTICS_MINIMUM The minimum value (as a string).\n * @property {string} STATISTICS_MAXIMUM The maximum value (as a string).\n */\n\nconst STATISTICS_MAXIMUM = 'STATISTICS_MAXIMUM';\nconst STATISTICS_MINIMUM = 'STATISTICS_MINIMUM';\n\nconst defaultTileSize = 256;\n\n/**\n * @typedef {import(\"geotiff\").GeoTIFFImage} GeoTIFFImage\n */\n\nlet workerPool;\nfunction getWorkerPool() {\n if (!workerPool) {\n workerPool = new Pool();\n }\n return workerPool;\n}\n\n/**\n * Get the bounding box of an image. If the image does not have an affine transform,\n * the pixel bounds are returned.\n * @param {GeoTIFFImage} image The image.\n * @return {Array} The image bounding box.\n */\nfunction getBoundingBox(image) {\n try {\n return image.getBoundingBox();\n } catch (_) {\n return [0, 0, image.getWidth(), image.getHeight()];\n }\n}\n\n/**\n * Get the origin of an image. If the image does not have an affine transform,\n * the top-left corner of the pixel bounds is returned.\n * @param {GeoTIFFImage} image The image.\n * @return {Array} The image origin.\n */\nfunction getOrigin(image) {\n try {\n return image.getOrigin().slice(0, 2);\n } catch (_) {\n return [0, image.getHeight()];\n }\n}\n\n/**\n * Get the resolution of an image. If the image does not have an affine transform,\n * the width of the image is compared with the reference image.\n * @param {GeoTIFFImage} image The image.\n * @param {GeoTIFFImage} referenceImage The reference image.\n * @return {Array} The map x and y units per pixel.\n */\nfunction getResolutions(image, referenceImage) {\n try {\n return image.getResolution(referenceImage);\n } catch (_) {\n return [\n referenceImage.getWidth() / image.getWidth(),\n referenceImage.getHeight() / image.getHeight(),\n ];\n }\n}\n\n/**\n * @param {GeoTIFFImage} image A GeoTIFF.\n * @return {import(\"../proj/Projection.js\").default} The image projection.\n */\nfunction getProjection(image) {\n const geoKeys = image.geoKeys;\n if (!geoKeys) {\n return null;\n }\n\n if (\n geoKeys.ProjectedCSTypeGeoKey &&\n geoKeys.ProjectedCSTypeGeoKey !== 32767\n ) {\n const code = 'EPSG:' + geoKeys.ProjectedCSTypeGeoKey;\n let projection = getCachedProjection(code);\n if (!projection) {\n const units = unitsFromCode(geoKeys.ProjLinearUnitsGeoKey);\n if (units) {\n projection = new Projection({\n code: code,\n units: units,\n });\n }\n }\n return projection;\n }\n\n if (geoKeys.GeographicTypeGeoKey && geoKeys.GeographicTypeGeoKey !== 32767) {\n const code = 'EPSG:' + geoKeys.GeographicTypeGeoKey;\n let projection = getCachedProjection(code);\n if (!projection) {\n const units = unitsFromCode(geoKeys.GeogAngularUnitsGeoKey);\n if (units) {\n projection = new Projection({\n code: code,\n units: units,\n });\n }\n }\n return projection;\n }\n\n return null;\n}\n\n/**\n * @param {GeoTIFF|MultiGeoTIFF} tiff A GeoTIFF.\n * @return {Promise>} Resolves to a list of images.\n */\nfunction getImagesForTIFF(tiff) {\n return tiff.getImageCount().then(function (count) {\n const requests = new Array(count);\n for (let i = 0; i < count; ++i) {\n requests[i] = tiff.getImage(i);\n }\n return Promise.all(requests);\n });\n}\n\n/**\n * @param {SourceInfo} source The GeoTIFF source.\n * @param {Object} options Options for the GeoTIFF source.\n * @return {Promise>} Resolves to a list of images.\n */\nfunction getImagesForSource(source, options) {\n let request;\n if (source.blob) {\n request = tiffFromBlob(source.blob);\n } else if (source.overviews) {\n request = tiffFromUrls(source.url, source.overviews, options);\n } else {\n request = tiffFromUrl(source.url, options);\n }\n return request.then(getImagesForTIFF);\n}\n\n/**\n * @param {number|Array|Array>} expected Expected value.\n * @param {number|Array|Array>} got Actual value.\n * @param {number} tolerance Accepted tolerance in fraction of expected between expected and got.\n * @param {string} message The error message.\n * @param {function(Error):void} rejector A function to be called with any error.\n */\nfunction assertEqual(expected, got, tolerance, message, rejector) {\n if (Array.isArray(expected)) {\n const length = expected.length;\n if (!Array.isArray(got) || length != got.length) {\n const error = new Error(message);\n rejector(error);\n throw error;\n }\n for (let i = 0; i < length; ++i) {\n assertEqual(expected[i], got[i], tolerance, message, rejector);\n }\n return;\n }\n\n got = /** @type {number} */ (got);\n if (Math.abs(expected - got) > tolerance * expected) {\n throw new Error(message);\n }\n}\n\n/**\n * @param {Array} array The data array.\n * @return {number} The minimum value.\n */\nfunction getMinForDataType(array) {\n if (array instanceof Int8Array) {\n return -128;\n }\n if (array instanceof Int16Array) {\n return -32768;\n }\n if (array instanceof Int32Array) {\n return -2147483648;\n }\n if (array instanceof Float32Array) {\n return 1.2e-38;\n }\n return 0;\n}\n\n/**\n * @param {Array} array The data array.\n * @return {number} The maximum value.\n */\nfunction getMaxForDataType(array) {\n if (array instanceof Int8Array) {\n return 127;\n }\n if (array instanceof Uint8Array) {\n return 255;\n }\n if (array instanceof Uint8ClampedArray) {\n return 255;\n }\n if (array instanceof Int16Array) {\n return 32767;\n }\n if (array instanceof Uint16Array) {\n return 65535;\n }\n if (array instanceof Int32Array) {\n return 2147483647;\n }\n if (array instanceof Uint32Array) {\n return 4294967295;\n }\n if (array instanceof Float32Array) {\n return 3.4e38;\n }\n return 255;\n}\n\n/**\n * @typedef {Object} GeoTIFFSourceOptions\n * @property {boolean} [forceXHR=false] Whether to force the usage of the browsers XMLHttpRequest API.\n * @property {Object} [headers] additional key-value pairs of headers to be passed with each request. Key is the header name, value the header value.\n * @property {string} [credentials] How credentials shall be handled. See\n * https://developer.mozilla.org/en-US/docs/Web/API/fetch for reference and possible values\n * @property {number} [maxRanges] The maximum amount of ranges to request in a single multi-range request.\n * By default only a single range is used.\n * @property {boolean} [allowFullFile=false] Whether or not a full file is accepted when only a portion is\n * requested. Only use this when you know the source image to be small enough to fit in memory.\n * @property {number} [blockSize=65536] The block size to use.\n * @property {number} [cacheSize=100] The number of blocks that shall be held in a LRU cache.\n */\n\n/**\n * @typedef {Object} Options\n * @property {Array} sources List of information about GeoTIFF sources.\n * Multiple sources can be combined when their resolution sets are equal after applying a scale.\n * The list of sources defines a mapping between input bands as they are read from each GeoTIFF and\n * the output bands that are provided by data tiles. To control which bands to read from each GeoTIFF,\n * use the {@link import(\"./GeoTIFF.js\").SourceInfo bands} property. If, for example, you specify two\n * sources, one with 3 bands and {@link import(\"./GeoTIFF.js\").SourceInfo nodata} configured, and\n * another with 1 band, the resulting data tiles will have 5 bands: 3 from the first source, 1 alpha\n * band from the first source, and 1 band from the second source.\n * @property {GeoTIFFSourceOptions} [sourceOptions] Additional options to be passed to [geotiff.js](https://geotiffjs.github.io/geotiff.js/module-geotiff.html)'s `fromUrl` or `fromUrls` methods.\n * @property {true|false|'auto'} [convertToRGB=false] By default, bands from the sources are read as-is. When\n * reading GeoTIFFs with the purpose of displaying them as RGB images, setting this to `true` will\n * convert other color spaces (YCbCr, CMYK) to RGB. Setting the option to `'auto'` will make it so CMYK, YCbCr,\n * CIELab, and ICCLab images will automatically be converted to RGB.\n * @property {boolean} [normalize=true] By default, the source data is normalized to values between\n * 0 and 1 with scaling factors based on the raster statistics or `min` and `max` properties of each source.\n * If instead you want to work with the raw values in a style expression, set this to `false`. Setting this option\n * to `false` will make it so any `min` and `max` properties on sources are ignored.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Source projection. If not provided, the GeoTIFF metadata\n * will be read for projection information.\n * @property {number} [transition=250] Duration of the opacity transition for rendering.\n * To disable the opacity transition, pass `transition: 0`.\n * @property {boolean} [wrapX=false] Render tiles beyond the tile grid extent.\n * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,\n * the linear interpolation is used to resample the data. If false, nearest neighbor is used.\n */\n\n/**\n * @classdesc\n * A source for working with GeoTIFF data.\n * **Note for users of the full build**: The `GeoTIFF` source requires the\n * [geotiff.js](https://github.com/geotiffjs/geotiff.js) library to be loaded as well.\n *\n * @api\n */\nclass GeoTIFFSource extends DataTile {\n /**\n * @param {Options} options Data tile options.\n */\n constructor(options) {\n super({\n state: 'loading',\n tileGrid: null,\n projection: options.projection || null,\n opaque: options.opaque,\n transition: options.transition,\n interpolate: options.interpolate !== false,\n wrapX: options.wrapX,\n });\n\n /**\n * @type {Array}\n * @private\n */\n this.sourceInfo_ = options.sources;\n\n const numSources = this.sourceInfo_.length;\n\n /**\n * @type {Object}\n * @private\n */\n this.sourceOptions_ = options.sourceOptions;\n\n /**\n * @type {Array>}\n * @private\n */\n this.sourceImagery_ = new Array(numSources);\n\n /**\n * @type {Array>}\n * @private\n */\n this.sourceMasks_ = new Array(numSources);\n\n /**\n * @type {Array}\n * @private\n */\n this.resolutionFactors_ = new Array(numSources);\n\n /**\n * @type {Array}\n * @private\n */\n this.samplesPerPixel_;\n\n /**\n * @type {Array>}\n * @private\n */\n this.nodataValues_;\n\n /**\n * @type {Array>}\n * @private\n */\n this.metadata_;\n\n /**\n * @type {boolean}\n * @private\n */\n this.normalize_ = options.normalize !== false;\n\n /**\n * @type {boolean}\n * @private\n */\n this.addAlpha_ = false;\n\n /**\n * @type {Error}\n * @private\n */\n this.error_ = null;\n\n /**\n * @type {true|false|'auto'}\n */\n this.convertToRGB_ = options.convertToRGB || false;\n\n this.setKey(this.sourceInfo_.map((source) => source.url).join(','));\n\n const self = this;\n const requests = new Array(numSources);\n for (let i = 0; i < numSources; ++i) {\n requests[i] = getImagesForSource(\n this.sourceInfo_[i],\n this.sourceOptions_,\n );\n }\n Promise.all(requests)\n .then(function (sources) {\n self.configure_(sources);\n })\n .catch(function (error) {\n logError(error);\n self.error_ = error;\n self.setState('error');\n });\n }\n\n /**\n * @return {Error} A source loading error. When the source state is `error`, use this function\n * to get more information about the error. To debug a faulty configuration, you may want to use\n * a listener like\n * ```js\n * geotiffSource.on('change', () => {\n * if (geotiffSource.getState() === 'error') {\n * console.error(geotiffSource.getError());\n * }\n * });\n * ```\n */\n getError() {\n return this.error_;\n }\n\n /**\n * Determine the projection of the images in this GeoTIFF.\n * The default implementation looks at the ProjectedCSTypeGeoKey and the GeographicTypeGeoKey\n * of each image in turn.\n * You can override this method in a subclass to support more projections.\n *\n * @param {Array>} sources Each source is a list of images\n * from a single GeoTIFF.\n */\n determineProjection(sources) {\n const firstSource = sources[0];\n for (let i = firstSource.length - 1; i >= 0; --i) {\n const image = firstSource[i];\n const projection = getProjection(image);\n if (projection) {\n this.projection = projection;\n break;\n }\n }\n }\n\n /**\n * Configure the tile grid based on images within the source GeoTIFFs. Each GeoTIFF\n * must have the same internal tiled structure.\n * @param {Array>} sources Each source is a list of images\n * from a single GeoTIFF.\n * @private\n */\n configure_(sources) {\n let extent;\n let origin;\n let commonRenderTileSizes;\n let commonSourceTileSizes;\n let resolutions;\n const samplesPerPixel = new Array(sources.length);\n const nodataValues = new Array(sources.length);\n const metadata = new Array(sources.length);\n let minZoom = 0;\n\n const sourceCount = sources.length;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const images = [];\n const masks = [];\n sources[sourceIndex].forEach((item) => {\n if (isMask(item)) {\n masks.push(item);\n } else {\n images.push(item);\n }\n });\n\n const imageCount = images.length;\n if (masks.length > 0 && masks.length !== imageCount) {\n throw new Error(\n `Expected one mask per image found ${masks.length} masks and ${imageCount} images`,\n );\n }\n\n let sourceExtent;\n let sourceOrigin;\n const sourceTileSizes = new Array(imageCount);\n const renderTileSizes = new Array(imageCount);\n const sourceResolutions = new Array(imageCount);\n\n nodataValues[sourceIndex] = new Array(imageCount);\n metadata[sourceIndex] = new Array(imageCount);\n\n for (let imageIndex = 0; imageIndex < imageCount; ++imageIndex) {\n const image = images[imageIndex];\n const nodataValue = image.getGDALNoData();\n metadata[sourceIndex][imageIndex] = image.getGDALMetadata(0);\n nodataValues[sourceIndex][imageIndex] = nodataValue;\n\n const wantedSamples = this.sourceInfo_[sourceIndex].bands;\n samplesPerPixel[sourceIndex] = wantedSamples\n ? wantedSamples.length\n : image.getSamplesPerPixel();\n const level = imageCount - (imageIndex + 1);\n\n if (!sourceExtent) {\n sourceExtent = getBoundingBox(image);\n }\n\n if (!sourceOrigin) {\n sourceOrigin = getOrigin(image);\n }\n\n const imageResolutions = getResolutions(image, images[0]);\n sourceResolutions[level] = imageResolutions[0];\n\n const sourceTileSize = [image.getTileWidth(), image.getTileHeight()];\n\n // request larger blocks for untiled layouts\n if (\n sourceTileSize[0] !== sourceTileSize[1] &&\n sourceTileSize[1] < defaultTileSize\n ) {\n sourceTileSize[0] = defaultTileSize;\n sourceTileSize[1] = defaultTileSize;\n }\n\n sourceTileSizes[level] = sourceTileSize;\n\n const aspectRatio = imageResolutions[0] / Math.abs(imageResolutions[1]);\n renderTileSizes[level] = [\n sourceTileSize[0],\n sourceTileSize[1] / aspectRatio,\n ];\n }\n\n if (!extent) {\n extent = sourceExtent;\n } else {\n getIntersection(extent, sourceExtent, extent);\n }\n\n if (!origin) {\n origin = sourceOrigin;\n } else {\n const message = `Origin mismatch for source ${sourceIndex}, got [${sourceOrigin}] but expected [${origin}]`;\n assertEqual(origin, sourceOrigin, 0, message, this.viewRejector);\n }\n\n if (!resolutions) {\n resolutions = sourceResolutions;\n this.resolutionFactors_[sourceIndex] = 1;\n } else {\n if (resolutions.length - minZoom > sourceResolutions.length) {\n minZoom = resolutions.length - sourceResolutions.length;\n }\n const resolutionFactor =\n resolutions[resolutions.length - 1] /\n sourceResolutions[sourceResolutions.length - 1];\n this.resolutionFactors_[sourceIndex] = resolutionFactor;\n const scaledSourceResolutions = sourceResolutions.map(\n (resolution) => (resolution *= resolutionFactor),\n );\n const message = `Resolution mismatch for source ${sourceIndex}, got [${scaledSourceResolutions}] but expected [${resolutions}]`;\n assertEqual(\n resolutions.slice(minZoom, resolutions.length),\n scaledSourceResolutions,\n 0.02,\n message,\n this.viewRejector,\n );\n }\n\n if (!commonRenderTileSizes) {\n commonRenderTileSizes = renderTileSizes;\n } else {\n assertEqual(\n commonRenderTileSizes.slice(minZoom, commonRenderTileSizes.length),\n renderTileSizes,\n 0.01,\n `Tile size mismatch for source ${sourceIndex}`,\n this.viewRejector,\n );\n }\n\n if (!commonSourceTileSizes) {\n commonSourceTileSizes = sourceTileSizes;\n } else {\n assertEqual(\n commonSourceTileSizes.slice(minZoom, commonSourceTileSizes.length),\n sourceTileSizes,\n 0,\n `Tile size mismatch for source ${sourceIndex}`,\n this.viewRejector,\n );\n }\n\n this.sourceImagery_[sourceIndex] = images.reverse();\n this.sourceMasks_[sourceIndex] = masks.reverse();\n }\n\n for (let i = 0, ii = this.sourceImagery_.length; i < ii; ++i) {\n const sourceImagery = this.sourceImagery_[i];\n while (sourceImagery.length < resolutions.length) {\n sourceImagery.unshift(undefined);\n }\n }\n\n if (!this.getProjection()) {\n this.determineProjection(sources);\n }\n\n this.samplesPerPixel_ = samplesPerPixel;\n this.nodataValues_ = nodataValues;\n this.metadata_ = metadata;\n\n // decide if we need to add an alpha band to handle nodata\n outer: for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n // option 1: source is configured with a nodata value\n if (this.sourceInfo_[sourceIndex].nodata !== undefined) {\n this.addAlpha_ = true;\n break;\n }\n if (this.sourceMasks_[sourceIndex].length) {\n this.addAlpha_ = true;\n break;\n }\n\n const values = nodataValues[sourceIndex];\n\n // option 2: check image metadata for limited bands\n const bands = this.sourceInfo_[sourceIndex].bands;\n if (bands) {\n for (let i = 0; i < bands.length; ++i) {\n if (values[bands[i] - 1] !== null) {\n this.addAlpha_ = true;\n break outer;\n }\n }\n continue;\n }\n\n // option 3: check image metadata for all bands\n for (let imageIndex = 0; imageIndex < values.length; ++imageIndex) {\n if (values[imageIndex] !== null) {\n this.addAlpha_ = true;\n break outer;\n }\n }\n }\n\n let bandCount = this.addAlpha_ ? 1 : 0;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n bandCount += samplesPerPixel[sourceIndex];\n }\n this.bandCount = bandCount;\n\n const tileGrid = new TileGrid({\n extent: extent,\n minZoom: minZoom,\n origin: origin,\n resolutions: resolutions,\n tileSizes: commonRenderTileSizes,\n });\n\n this.tileGrid = tileGrid;\n this.setTileSizes(commonSourceTileSizes);\n\n this.setLoader(this.loadTile_.bind(this));\n this.setState('ready');\n\n const zoom = 1;\n if (resolutions.length === 2) {\n resolutions = [resolutions[0], resolutions[1], resolutions[1] / 2];\n } else if (resolutions.length === 1) {\n resolutions = [resolutions[0] * 2, resolutions[0], resolutions[0] / 2];\n }\n\n this.viewResolver({\n showFullExtent: true,\n projection: this.projection,\n resolutions: resolutions,\n center: toUserCoordinate(getCenter(extent), this.projection),\n extent: toUserExtent(extent, this.projection),\n zoom: zoom,\n });\n }\n\n /**\n * @param {number} z The z tile index.\n * @param {number} x The x tile index.\n * @param {number} y The y tile index.\n * @return {Promise} The composed tile data.\n * @private\n */\n loadTile_(z, x, y) {\n const sourceTileSize = this.getTileSize(z);\n const sourceCount = this.sourceImagery_.length;\n const requests = new Array(sourceCount * 2);\n const nodataValues = this.nodataValues_;\n const sourceInfo = this.sourceInfo_;\n const pool = getWorkerPool();\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const source = sourceInfo[sourceIndex];\n const resolutionFactor = this.resolutionFactors_[sourceIndex];\n const pixelBounds = [\n Math.round(x * (sourceTileSize[0] * resolutionFactor)),\n Math.round(y * (sourceTileSize[1] * resolutionFactor)),\n Math.round((x + 1) * (sourceTileSize[0] * resolutionFactor)),\n Math.round((y + 1) * (sourceTileSize[1] * resolutionFactor)),\n ];\n const image = this.sourceImagery_[sourceIndex][z];\n let samples;\n if (source.bands) {\n samples = source.bands.map(function (bandNumber) {\n return bandNumber - 1;\n });\n }\n\n /** @type {number|Array} */\n let fillValue;\n if ('nodata' in source && source.nodata !== null) {\n fillValue = source.nodata;\n } else {\n if (!samples) {\n fillValue = nodataValues[sourceIndex];\n } else {\n fillValue = samples.map(function (sampleIndex) {\n return nodataValues[sourceIndex][sampleIndex];\n });\n }\n }\n\n const readOptions = {\n window: pixelBounds,\n width: sourceTileSize[0],\n height: sourceTileSize[1],\n samples: samples,\n fillValue: fillValue,\n pool: pool,\n interleave: false,\n };\n if (readRGB(this.convertToRGB_, image)) {\n requests[sourceIndex] = image.readRGB(readOptions);\n } else {\n requests[sourceIndex] = image.readRasters(readOptions);\n }\n\n // requests after `sourceCount` are for mask data (if any)\n const maskIndex = sourceCount + sourceIndex;\n const mask = this.sourceMasks_[sourceIndex][z];\n if (!mask) {\n requests[maskIndex] = Promise.resolve(null);\n continue;\n }\n\n requests[maskIndex] = mask.readRasters({\n window: pixelBounds,\n width: sourceTileSize[0],\n height: sourceTileSize[1],\n samples: [0],\n pool: pool,\n interleave: false,\n });\n }\n\n return Promise.all(requests)\n .then(this.composeTile_.bind(this, sourceTileSize))\n .catch(function (error) {\n logError(error);\n throw error;\n });\n }\n\n /**\n * @param {import(\"../size.js\").Size} sourceTileSize The source tile size.\n * @param {Array} sourceSamples The source samples.\n * @return {import(\"../DataTile.js\").Data} The composed tile data.\n * @private\n */\n composeTile_(sourceTileSize, sourceSamples) {\n const metadata = this.metadata_;\n const sourceInfo = this.sourceInfo_;\n const sourceCount = this.sourceImagery_.length;\n const bandCount = this.bandCount;\n const samplesPerPixel = this.samplesPerPixel_;\n const nodataValues = this.nodataValues_;\n const normalize = this.normalize_;\n const addAlpha = this.addAlpha_;\n\n const pixelCount = sourceTileSize[0] * sourceTileSize[1];\n const dataLength = pixelCount * bandCount;\n\n /** @type {Uint8Array|Float32Array} */\n let data;\n if (normalize) {\n data = new Uint8Array(dataLength);\n } else {\n data = new Float32Array(dataLength);\n }\n\n let dataIndex = 0;\n for (let pixelIndex = 0; pixelIndex < pixelCount; ++pixelIndex) {\n let transparent = addAlpha;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const source = sourceInfo[sourceIndex];\n\n let min = source.min;\n let max = source.max;\n let gain, bias;\n if (normalize) {\n const stats = metadata[sourceIndex][0];\n if (min === undefined) {\n if (stats && STATISTICS_MINIMUM in stats) {\n min = parseFloat(stats[STATISTICS_MINIMUM]);\n } else {\n min = getMinForDataType(sourceSamples[sourceIndex][0]);\n }\n }\n if (max === undefined) {\n if (stats && STATISTICS_MAXIMUM in stats) {\n max = parseFloat(stats[STATISTICS_MAXIMUM]);\n } else {\n max = getMaxForDataType(sourceSamples[sourceIndex][0]);\n }\n }\n\n gain = 255 / (max - min);\n bias = -min * gain;\n }\n\n for (\n let sampleIndex = 0;\n sampleIndex < samplesPerPixel[sourceIndex];\n ++sampleIndex\n ) {\n const sourceValue =\n sourceSamples[sourceIndex][sampleIndex][pixelIndex];\n\n let value;\n if (normalize) {\n value = clamp(gain * sourceValue + bias, 0, 255);\n } else {\n value = sourceValue;\n }\n\n if (!addAlpha) {\n data[dataIndex] = value;\n } else {\n let nodata = source.nodata;\n if (nodata === undefined) {\n let bandIndex;\n if (source.bands) {\n bandIndex = source.bands[sampleIndex] - 1;\n } else {\n bandIndex = sampleIndex;\n }\n nodata = nodataValues[sourceIndex][bandIndex];\n }\n\n const nodataIsNaN = isNaN(nodata);\n if (\n (!nodataIsNaN && sourceValue !== nodata) ||\n (nodataIsNaN && !isNaN(sourceValue))\n ) {\n transparent = false;\n data[dataIndex] = value;\n }\n }\n dataIndex++;\n }\n if (!transparent) {\n const maskIndex = sourceCount + sourceIndex;\n const mask = sourceSamples[maskIndex];\n if (mask && !mask[0][pixelIndex]) {\n transparent = true;\n }\n }\n }\n if (addAlpha) {\n if (!transparent) {\n data[dataIndex] = 255;\n }\n dataIndex++;\n }\n }\n\n return data;\n }\n}\n\n/**\n * Get a promise for view properties based on the source. Use the result of this function\n * as the `view` option in a map constructor.\n *\n * const source = new GeoTIFF(options);\n *\n * const map = new Map({\n * target: 'map',\n * layers: [\n * new TileLayer({\n * source: source,\n * }),\n * ],\n * view: source.getView(),\n * });\n *\n * @function\n * @return {Promise} A promise for view-related properties.\n * @api\n *\n */\nGeoTIFFSource.prototype.getView;\n\nexport default GeoTIFFSource;\n","// Use this separately until https://github.com/Viglino/ol-ext/pull/1087 is released\n/*\n Copyright (c) 2015 Jean-Marc VIGLINO,\n released under the CeCILL-B license (French BSD license)\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\n*/\n\nimport ol_control_Control from 'ol/control/Control.js'\n\n/**\n * @classdesc Swipe Control.\n * @fires moving\n * @constructor\n * @extends {ol_control_Control}\n * @param {Object=} Control options.\n * @param {ol.layer|Array} options.layers layers to swipe\n * @param {ol.layer|Array} options.rightLayers layers to swipe on right side\n * @param {string} options.className control class name\n * @param {number} options.position position property of the swipe [0,1], default 0.5\n * @param {string} options.orientation orientation property (vertical|horizontal), default vertical\n */\nvar ol_control_Swipe = class olcontrolSwipe extends ol_control_Control {\n constructor(options) {\n options = options || {};\n\n var element = document.createElement('div');\n super({\n element: element\n });\n \n element.className = (options.className || 'ol-swipe') + ' ol-unselectable ol-control';\n var button = document.createElement('button');\n element.appendChild(button);\n\n element.addEventListener('mousedown', this.move.bind(this));\n element.addEventListener('touchstart', this.move.bind(this));\n\n // An array of listener on layer postcompose\n this.precomposeRight_ = this.precomposeRight.bind(this);\n this.precomposeLeft_ = this.precomposeLeft.bind(this);\n this.postcompose_ = this.postcompose.bind(this);\n\n this.layers = [];\n if (options.layers)\n this.addLayer(options.layers, false);\n if (options.rightLayers)\n this.addLayer(options.rightLayers, true);\n\n this.on('propertychange', function (e) {\n if (this.getMap()) {\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n if (this.get('orientation') === \"horizontal\") {\n this.element.style.top = this.get('position') * 100 + \"%\";\n this.element.style.left = \"\";\n } else {\n if (this.get('orientation') !== \"vertical\")\n this.set('orientation', \"vertical\");\n this.element.style.left = this.get('position') * 100 + \"%\";\n this.element.style.top = \"\";\n }\n if (e.key === 'orientation') {\n this.element.classList.remove(\"horizontal\", \"vertical\");\n this.element.classList.add(this.get('orientation'));\n }\n // Force VectorImage to refresh\n if (!this.isMoving) {\n this.layers.forEach(function (l) {\n if (l.layer.getImageRatio)\n l.layer.changed();\n });\n }\n }.bind(this));\n\n this.set('position', options.position || 0.5);\n this.set('orientation', options.orientation || 'vertical');\n }\n /**\n * Set the map instance the control associated with.\n * @param {_ol_Map_} map The map instance.\n */\n setMap(map) {\n var i;\n var l;\n\n if (this.getMap()) {\n for (i = 0; i < this.layers.length; i++) {\n l = this.layers[i];\n if (l.right)\n l.layer.un(['precompose', 'prerender'], this.precomposeRight_);\n else\n l.layer.un(['precompose', 'prerender'], this.precomposeLeft_);\n l.layer.un(['postcompose', 'postrender'], this.postcompose_);\n }\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n\n super.setMap(map);\n\n if (map) {\n this._listener = [];\n for (i = 0; i < this.layers.length; i++) {\n l = this.layers[i];\n if (l.right)\n l.layer.on(['precompose', 'prerender'], this.precomposeRight_);\n else\n l.layer.on(['precompose', 'prerender'], this.precomposeLeft_);\n l.layer.on(['postcompose', 'postrender'], this.postcompose_);\n }\n try { map.renderSync(); } catch (e) { /* ok */ }\n }\n }\n /** @private\n */\n isLayer_(layer) {\n for (var k = 0; k < this.layers.length; k++) {\n if (this.layers[k].layer === layer)\n return k;\n }\n return -1;\n }\n /** Add a layer to clip\n *\t@param {ol.layer|Array} layer to clip\n *\t@param {bool} add layer in the right part of the map, default left.\n */\n addLayer(layers, right) {\n if (!(layers instanceof Array))\n layers = [layers];\n for (var i = 0; i < layers.length; i++) {\n var l = layers[i];\n if (this.isLayer_(l) < 0) {\n this.layers.push({ layer: l, right: right });\n if (this.getMap()) {\n if (right)\n l.on(['precompose', 'prerender'], this.precomposeRight_);\n else\n l.on(['precompose', 'prerender'], this.precomposeLeft_);\n l.on(['postcompose', 'postrender'], this.postcompose_);\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n }\n }\n }\n /** Remove all layers\n */\n removeLayers() {\n var layers = [];\n this.layers.forEach(function (l) { layers.push(l.layer); });\n this.removeLayer(layers);\n }\n /** Remove a layer to clip\n *\t@param {ol.layer|Array} layer to clip\n */\n removeLayer(layers) {\n if (!(layers instanceof Array))\n layers = [layers];\n for (var i = 0; i < layers.length; i++) {\n var k = this.isLayer_(layers[i]);\n if (k >= 0 && this.getMap()) {\n if (this.layers[k].right)\n layers[i].un(['precompose', 'prerender'], this.precomposeRight_);\n else\n layers[i].un(['precompose', 'prerender'], this.precomposeLeft_);\n layers[i].un(['postcompose', 'postrender'], this.postcompose_);\n this.layers.splice(k, 1);\n }\n }\n if (this.getMap()) {\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n }\n /** Get visible rectangle\n * @returns {ol.extent}\n */\n getRectangle() {\n var s;\n if (this.get('orientation') === 'vertical') {\n s = this.getMap().getSize();\n return [0, 0, s[0] * this.get('position'), s[1]];\n } else {\n s = this.getMap().getSize();\n return [0, 0, s[0], s[1] * this.get('position')];\n }\n }\n /** @private\n */\n move(e) {\n var self = this;\n var l;\n if (!this._movefn)\n this._movefn = this.move.bind(this);\n switch (e.type) {\n case 'touchcancel':\n case 'touchend':\n case 'mouseup': {\n self.isMoving = false;\n [\"mouseup\", \"mousemove\", \"touchend\", \"touchcancel\", \"touchmove\"]\n .forEach(function (eventName) {\n document.removeEventListener(eventName, self._movefn);\n });\n // Force VectorImage to refresh\n this.layers.forEach(function (l) {\n if (l.layer.getImageRatio)\n l.layer.changed();\n });\n break;\n }\n case 'mousedown':\n case 'touchstart': {\n self.isMoving = true;\n [\"mouseup\", \"mousemove\", \"touchend\", \"touchcancel\", \"touchmove\"]\n .forEach(function (eventName) {\n document.addEventListener(eventName, self._movefn);\n });\n }\n // fallthrough\n case 'mousemove':\n case 'touchmove': {\n if (self.isMoving) {\n if (self.get('orientation') === 'vertical') {\n var pageX = e.pageX\n || (e.touches && e.touches.length && e.touches[0].pageX)\n || (e.changedTouches && e.changedTouches.length && e.changedTouches[0].pageX);\n if (!pageX)\n break;\n pageX -= self.getMap().getTargetElement().getBoundingClientRect().left +\n window.pageXOffset - document.documentElement.clientLeft;\n\n l = self.getMap().getSize()[0];\n var w = l - Math.min(Math.max(0, l - pageX), l);\n l = w / l;\n self.set('position', l);\n self.dispatchEvent({ type: 'moving', size: [w, self.getMap().getSize()[1]], position: [l, 0] });\n } else {\n var pageY = e.pageY\n || (e.touches && e.touches.length && e.touches[0].pageY)\n || (e.changedTouches && e.changedTouches.length && e.changedTouches[0].pageY);\n if (!pageY)\n break;\n pageY -= self.getMap().getTargetElement().getBoundingClientRect().top +\n window.pageYOffset - document.documentElement.clientTop;\n\n l = self.getMap().getSize()[1];\n var h = l - Math.min(Math.max(0, l - pageY), l);\n l = h / l;\n self.set('position', l);\n self.dispatchEvent({ type: 'moving', size: [self.getMap().getSize()[0], h], position: [0, l] });\n }\n }\n break;\n }\n default: break;\n }\n }\n /** @private\n */\n _transformPt(e, pt) {\n var tr = e.inversePixelTransform;\n var x = pt[0];\n var y = pt[1];\n pt[0] = tr[0] * x + tr[2] * y + tr[4];\n pt[1] = tr[1] * x + tr[3] * y + tr[5];\n return pt;\n }\n /** @private\n */\n _drawRect(e, pts) {\n var tr = e.inversePixelTransform;\n if (tr) {\n var r = [\n [pts[0][0], pts[0][1]],\n [pts[0][0], pts[1][1]],\n [pts[1][0], pts[1][1]],\n [pts[1][0], pts[0][1]],\n [pts[0][0], pts[0][1]]\n ];\n e.context.save();\n // Rotate VectorImages \n if (e.target.getImageRatio) {\n var rot = -Math.atan2(e.frameState.pixelToCoordinateTransform[1], e.frameState.pixelToCoordinateTransform[0]);\n e.context.translate(e.frameState.size[0] / 2, e.frameState.size[1] / 2);\n e.context.rotate(rot);\n e.context.translate(-e.frameState.size[0] / 2, -e.frameState.size[1] / 2);\n }\n r.forEach(function (pt, i) {\n pt = [\n (pt[0] * tr[0] - pt[1] * tr[1] + tr[4]),\n (-pt[0] * tr[2] + pt[1] * tr[3] + tr[5])\n ];\n if (!i) {\n e.context.moveTo(pt[0], pt[1]);\n } else {\n e.context.lineTo(pt[0], pt[1]);\n }\n });\n e.context.restore();\n } else {\n var ratio = e.frameState.pixelRatio;\n e.context.rect(pts[0][0] * ratio, pts[0][1] * ratio, pts[1][0] * ratio, pts[1][1] * ratio);\n }\n }\n /** @private\n */\n precomposeLeft(e) {\n var ctx = e.context;\n if (ctx instanceof WebGLRenderingContext) {\n if (e.type === 'prerender') {\n // Clear\n if (this._lefttime != e.frameState.time) {\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n this._lefttime = e.frameState.time;\n }\n\n // Clip\n ctx.enable(ctx.SCISSOR_TEST);\n\n var mapSize = this.getMap().getSize(); // [width, height] in CSS pixels\n\n\n // get render coordinates and dimensions given CSS coordinates\n var bottomLeft = this._transformPt(e, [0, mapSize[1]]);\n var topRight = this._transformPt(e, [mapSize[0], 0]);\n\n var fullWidth = topRight[0] - bottomLeft[0];\n var fullHeight = topRight[1] - bottomLeft[1];\n var width, height;\n if (this.get('orientation') === \"vertical\") {\n width = Math.round(fullWidth * this.get('position'));\n height = fullHeight;\n } else {\n width = fullWidth;\n height = Math.round((fullHeight * this.get('position')));\n bottomLeft[1] += fullHeight - height;\n }\n ctx.scissor(bottomLeft[0], bottomLeft[1], width, height);\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n }\n } else {\n var size = e.frameState.size;\n ctx.save();\n ctx.beginPath();\n var pts = [[0, 0], [size[0], size[1]]];\n if (this.get('orientation') === \"vertical\") {\n pts[1] = [\n size[0] * .5 + this.getMap().getSize()[0] * (this.get('position') - .5),\n size[1]\n ];\n } else {\n pts[1] = [\n size[0],\n size[1] * .5 + this.getMap().getSize()[1] * (this.get('position') - .5)\n ];\n }\n this._drawRect(e, pts);\n ctx.clip();\n }\n }\n /** @private\n */\n precomposeRight(e) {\n var ctx = e.context;\n if (ctx instanceof WebGLRenderingContext) {\n if (e.type === 'prerender') {\n // Clear\n if (this._righttime != e.frameState.time) {\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n this._righttime = e.frameState.time;\n }\n\n // Clip\n ctx.enable(ctx.SCISSOR_TEST);\n\n var mapSize = this.getMap().getSize(); // [width, height] in CSS pixels\n\n\n // get render coordinates and dimensions given CSS coordinates\n var bottomLeft = this._transformPt(e, [0, mapSize[1]]);\n var topRight = this._transformPt(e, [mapSize[0], 0]);\n\n var fullWidth = topRight[0] - bottomLeft[0];\n var fullHeight = topRight[1] - bottomLeft[1];\n var width, height;\n if (this.get('orientation') === \"vertical\") {\n height = fullHeight;\n width = Math.round(fullWidth * (1 - this.get('position')));\n bottomLeft[0] += fullWidth - width;\n } else {\n width = fullWidth;\n height = Math.round(fullHeight * (1 - this.get('position')));\n }\n ctx.scissor(bottomLeft[0], bottomLeft[1], width, height);\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n }\n } else {\n var size = e.frameState.size;\n ctx.save();\n ctx.beginPath();\n var pts = [[0, 0], [size[0], size[1]]];\n if (this.get('orientation') === \"vertical\") {\n pts[0] = [\n size[0] * .5 + this.getMap().getSize()[0] * (this.get('position') - .5),\n 0\n ];\n } else {\n pts[0] = [\n 0,\n size[1] * .5 + this.getMap().getSize()[1] * (this.get('position') - .5)\n ];\n }\n this._drawRect(e, pts);\n ctx.clip();\n }\n }\n /** @private\n */\n postcompose(e) {\n if (e.context instanceof WebGLRenderingContext) {\n if (e.type === 'postrender') {\n var gl = e.context;\n gl.disable(gl.SCISSOR_TEST);\n }\n } else {\n // restore context when decluttering is done (ol>=6)\n // https://github.com/openlayers/openlayers/issues/10096\n if (e.target.getClassName && e.target.getClassName() !== 'ol-layer' && e.target.get('declutter')) {\n setTimeout(function () {\n e.context.restore();\n }, 0);\n } else {\n e.context.restore();\n }\n }\n }\n}\n\nexport default ol_control_Swipe\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!./MapViewer.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!./MapViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MapViewer.vue?vue&type=template&id=76347783\"\nimport script from \"./MapViewer.vue?vue&type=script&lang=js\"\nexport * from \"./MapViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\nimport style1 from \"./MapViewer.vue?vue&type=style&index=1&id=76347783&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","'use strict';\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw new $RangeError('NaN is not allowed');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.drop');\n"],"names":["e","t","module","exports","this","s","r","n","o","a","i","l","default","c","d","u","p","h","m","g","y","f","b","w","v","$","namespace","spin","hidden","address","country","city","road","olControl","glass","container","control","button","input","expanded","reset","result","inputText","icon","k","containerId","buttonControlId","inputQueryId","inputResetId","cssClasses","x","Object","freeze","__proto__","q","C","S","L","j","E","T","N","R","A","P","provider","placeholder","featureStyle","targetType","lang","limit","keepOpen","preventDefault","autoComplete","autoCompleteMinLength","autoCompleteTimeout","debug","I","Error","_","window","performance","Date","now","timing","navigationStart","toString","M","test","O","Array","isArray","forEach","split","length","V","U","F","G","classList","contains","B","className","D","replace","String","replaceAll","Q","document","createElement","id","classname","attr","setAttribute","name","value","innerHTML","createDocumentFragment","childNodes","append","RegExp","add","trim","setTimeout","remove","z","H","constructor","options","els","createControl","querySelector","K","settings","url","params","langs","getParameters","toLowerCase","query","includes","handleResponse","features","map","lon","geometry","coordinates","lat","properties","postcode","state","original","formatted","details","J","format","addressdetails","countrycodes","bbox","boundingbox","display_name","houseNumber","house_number","town","W","key","neighbourhood","X","callbackName","includeNeighborhood","maxResults","resources","resourceSets","point","formattedAddress","Y","countrycode","pretty","no_annotations","results","lng","components","Z","Promise","ee","data","method","mode","credentials","jsonp","head","Math","round","random","indexOf","removeChild","fetch","then","json","catch","keys","reduce","push","encodeURIComponent","join","te","se","Base","layerName","layer","source","newProvider","lastQuery","registeredListeners","mapClick","setListeners","stopPropagation","collapse","expand","addEventListener","target","which","keyCode","clearTimeout","focus","clearResults","firstChild","console","info","createList","listenMapClick","addressTemplate","chosen","getMap","Number","parseFloat","getView","getProjection","transform","transformExtent","dispatchEvent","type","coordinate","place","fit","duration","animate","resolution","center","createFeature","feature","addLayer","setStyle","setId","getSource","addFeature","building","village","blur","getTargetElement","handleEvent","removeEventListener","getLayers","re","image","scale","src","super","element","prototype","hasOwnProperty","call","getLayer","setProvider","setProviderKey","OSMGeocoder","geojson","opt","polygon_geojson","polygon_threshold","filter","class","methods","addGeocoder","callback","$config","geocoder","Geocoder","on","event","bboxOpenEO","west","east","north","south","addControl","render","staticRenderFns","component","_vm","_c","_self","texts","staticClass","pointer","toggle","_v","_s","current","_e","mixins","ControlMixin","computed","text","props","attrs","ref","addData","isGeoTiff","textControlText","_l","geotiffs","colorMap","bands","defaultChannels","get","update","updateGeoTiffStyle","loading","chart","closeChart","_b","staticStyle","$event","openModal","apply","arguments","EventBusMixin","events","save","broadcast","file","$emit","directives","rawName","channels","expression","title","cols","isGray","multiBand","channel","labels","modifiers","$$selectedVal","selected","val","_value","_n","$set","multiple","band","domProps","min","composing","$forceUpdate","max","_i","$$a","$$el","$$c","checked","$$v","$$i","concat","slice","mounted","watch","immediate","handler","updateChannels","emit","deep","isValid","assign","createElementNS","namespaceURI","qualifiedName","node","normalizeWhitespace","getAllTextContent_","accumulator","nodeType","Node","CDATA_SECTION_NODE","TEXT_NODE","nodeValue","nextSibling","isDocument","object","parse","xml","DOMParser","parseFromString","makeArrayPusher","valueReader","thisArg","objectStack","undefined","array","makeObjectPropertyPusher","property","localName","makeObjectPropertySetter","makeSimpleNodeFactory","fixedNodeName","fixedNamespaceURI","newNodeName","context","nodeName","makeStructureNS","namespaceURIs","structure","structureNS","ii","parseNode","parsersNS","firstElementChild","nextElementSibling","parsers","parser","pushParseAndPop","pop","document_","implementation","createDocument","XML","read","doc","readFromDocument","readFromNode","ELEMENT_NODE","NAMESPACE_URI","readHref","getAttributeNS","readDecimal","readDecimalString","string","exec","readPositiveInteger","readNonNegativeIntegerString","parseInt","readString","NAMESPACE_URIS","PARSERS","readServiceIdentification","readServiceProvider","readOperationsMetadata","OWS","owsObject","ADDRESS_PARSERS","ALLOWED_VALUES_PARSERS","readValue","CONSTRAINT_PARSERS","readAllowedValues","CONTACT_INFO_PARSERS","readPhone","readAddress","DCP_PARSERS","readHttp","HTTP_PARSERS","readGet","OPERATION_PARSERS","readDcp","OPERATIONS_METADATA_PARSERS","readOperation","PHONE_PARSERS","REQUEST_METHOD_PARSERS","readConstraint","SERVICE_CONTACT_PARSERS","readContactInfo","SERVICE_IDENTIFICATION_PARSERS","SERVICE_PROVIDER_PARSERS","readServiceContact","getAttribute","href","OWS_NAMESPACE_URIS","readContents","WMTSCapabilities","owsParser_","version","WMTSCapabilityObject","CONTENTS_PARSERS","readLayer","readTileMatrixSet","LAYER_PARSERS","readStyle","readTileMatrixSetLink","readDimensions","readResourceUrl","readBoundingBox","readBoundingBoxWithCrs","STYLE_PARSERS","readLegendUrl","TMS_LINKS_PARSERS","readTileMatrixLimitsList","TMS_LIMITS_LIST_PARSERS","readTileMatrixLimits","TMS_LIMITS_PARSERS","DIMENSION_PARSERS","WGS84_BBOX_READERS","readCoordinates","TMS_PARSERS","readTileMatrix","TM_PARSERS","style","isDefault","template","resourceType","resource","crs","extent","legend","isNaN","appendParams","uri","keyParams","qs","WMTSTileGrid","TileGrid","origin","origins","resolutions","tileSize","tileSizes","sizes","matrixIds_","matrixIds","getMatrixId","getMatrixIds","createFromCapabilitiesMatrixSet","matrixSet","matrixLimits","supportedCRSPropName","matrixIdsPropName","identifierPropName","scaleDenominatorPropName","topLeftCornerPropName","tileWidthPropName","tileHeightPropName","code","projection","metersPerUnit","getMetersPerUnit","switchOriginXY","getAxisOrientation","substr","sort","elt","matrixAvailable","find","elt_ml","tileWidth","tileHeight","TileImage","requestEncoding","tileGrid","urls","attributions","attributionsCollapsible","cacheSize","crossOrigin","interpolate","reprojectionErrorThreshold","tileClass","tileLoadFunction","tilePixelRatio","wrapX","transition","zDirection","version_","format_","dimensions_","dimensions","layer_","matrixSet_","style_","requestEncoding_","setKey","getKeyForDimensions_","tileUrlFunction","createFromWMTSTemplate","bind","setUrls","setTileUrlFunction","getDimensions","getFormat","getMatrixSet","getRequestEncoding","getStyle","getVersion","res","updateDimensions","tileCoord","pixelRatio","localContext","optionsFromCapabilities","wmtsCap","config","layers","tileMatrixSets","idx","findIndex","tileMatrixSet","el","supportedCRS","proj1","proj2","equivalent","index","matrixSets","matrixSetObj","projConfig","switchXY","matrix","TileMatrix","selectedMatrixLimit","MinTileCol","MinTileRow","MaxTileCol","MatrixWidth","MaxTileRow","MatrixHeight","tileMatrixValue","Identifier","ScaleDenominator","TopLeftCorner","tileSpanX","TileWidth","tileSpanY","TileHeight","matrixSetExtent","wgs84BoundingBox","wgs84ProjectionExtent","getExtent","wgs84MatrixSetExtent","gets","constraint","encodings","ol_control_Timeline","create","zoomButton","_scrollDiv","parent","_buttons","addButton","handleClick","zoom","refresh","_intervalDiv","_select","scrollListener","_setScrollLeft","date","getDate","dateStart","dateEnd","scrollTimeout","scrollDiv","onmove","_moving","_tline","_scrollLeft","set","maxWidth","minDate","Infinity","maxDate","graduation","minZoom","maxZoom","setInterval","interval","getHTML","_getHTML","getFeatureDate","_getFeatureDate","endFeatureDate","_endFeatureDate","setFeatures","setMap","html","click","isCollapsed","collapsed","_features","_source","getFeatures","first","d2","tline","end","div","_minDate","_maxDate","isFinite","delta","_scale","width","_drawTime","line","lineHeight","fdiv","left","img","querySelectorAll","ondragstart","minWidth","pos","top","_nbline","setDate","anim","position","_getOffsetFromDate","_getDateFromOffset","offset","scrollLeft","_getScrollLeft","dt","month","dmonth","tdiv","dx","heigth","year","getFullYear","setFullYear","dyear","setMonth","toLocaleDateString","dday","day","offdate","getMonth","outerWidth","roundDate","stick","_roundTo","getStartDate","getEndDate","ExtentMixin","timeline","addWebService","service","updateXYZLayer","updateWMTSLayer","Utils","error","getWMTSTimes","capabilities","layerId","Contents","Layer","Dimension","timeDimension","Value","initWMTSLayer","URL","searchParams","response","axios","responseType","exception","prefix","attributes","layerNames","defaultDate","getResourceTitle","layerCollection","Collection","TIME","times","isObject","WMTS","mapLayer","TileLayer","trackTileProgress","noSwitcherDelete","run","Timeline","toISOString","btns","getElementsByClassName","innerText","disabled","log","group","LayerGroup","display","getVisible","addLayerToMap","removeControl","replaceParam","getTime","XYZ","process","process_graph","crs84","e4326","values","process_id","spatial_extent","isBBox","isGeoJSON","addExtent","GeoTiffState","geotiff","getColorMap","noData","getNoData","getBands","getBandVar","getFormula","getNoDataFormula","variables","alphaband","color","formula","GeoTIFFImage","getSampleByteSize","fileDirectory","BitsPerSample","ceil","getReaderForSample","sampleIndex","getSampleFormat","bitsPerSample","getBitsPerSample","DataView","getUint8","getUint16","getUint32","getInt8","getInt16","getInt32","littleEndian","getFloat16","getFloat32","getFloat64","SampleFormat","expressionToGlsl","compilationContext","expectedType","parsingContext","parseStyle","bandCount","vertexShader","TEXTURE_COORD","TILE_TRANSFORM","TEXTURE_PIXEL_WIDTH","TEXTURE_PIXEL_HEIGHT","TEXTURE_RESOLUTION","TEXTURE_ORIGIN_X","TEXTURE_ORIGIN_Y","DEPTH","inFragmentShader","pipeline","contrast","exposure","saturation","gamma","brightness","uniforms","numVariables","variable","uniformName","uniformDeclarations","textureCount","TILE_TEXTURE_ARRAY","paletteTextures","functionDefintions","functions","fragmentShader","RENDER_EXTENT","TRANSITION_ALPHA","RESOLUTION","ZOOM","WebGLTileLayer","BaseTile","sources_","sources","renderedSource_","renderedResolution_","NaN","cacheSize_","styleVariables_","addChangeListener","SOURCE","handleSourceUpdate_","getSources","getRenderSource","getSourceState","getState","hasRenderer","getRenderer","clearCache","getSourceBandCount_","MAX_SAFE_INTEGER","createRenderer","parsedStyle","renderSources","frameState","layerRenderer","canvas","prepareFrame","renderFrame","rendered","viewState","ready","sourceState","onChange","changed","renderComplete","altSources","renderer","updateStyleVariables","dispose","DataTileSource","maxResolution","opaque","gutter_","gutter","tileSize_","tileSizes_","tileLoadingKeys_","loader_","loader","handleTileChange_","tileGridForProjection_","tileCacheForProjection_","setTileSizes","getTileSize","getTileGrid","getGutterForProjection","thisProj","setLoader","getReprojTile_","targetProj","sourceProj","cache","getTileCacheForProjection","tileCoordKey","containsKey","tile","getKey","reprojTilePixelRatio","getResolutions","textureSize","sourceTileGrid","getTileGridForProjection","targetTileGrid","wrappedTileCoord","getTileCoordForTileUrlFunction","getTileFunction","getTile","tileOptions","newTile","sourceProjection","size","tileCache","sourceLoader","DataTile","EventType","CHANGE","uid","tileState","TileState","LOADING","TileEventType","TILELOADSTART","ERROR","TILELOADERROR","LOADED","TILELOADEND","projKey","setTileGridForProjection","tilegrid","proj","TileCache","expireCache","usedTiles","usedTileCache","clear","defaultPoolSize","navigator","hardwareConcurrency","Pool","createWorker","workers","_awaitingDecoder","messageId","resolve","worker","idle","decode","buffer","decoder","candidate","floor","onMessage","decoded","postMessage","destroy","terminate","isMask","NewSubfileType","readRGB","preference","getSamplesPerPixel","interpretation","PhotometricInterpretation","interpretations","CMYK","YCbCr","CIELab","ICCLab","STATISTICS_MAXIMUM","STATISTICS_MINIMUM","defaultTileSize","workerPool","getWorkerPool","getBoundingBox","getWidth","getHeight","getOrigin","referenceImage","getResolution","geoKeys","ProjectedCSTypeGeoKey","units","ProjLinearUnitsGeoKey","Projection","GeographicTypeGeoKey","GeogAngularUnitsGeoKey","getImagesForTIFF","tiff","getImageCount","count","requests","getImage","all","getImagesForSource","request","blob","overviews","assertEqual","expected","got","tolerance","message","rejector","abs","getMinForDataType","Int8Array","Int16Array","Int32Array","Float32Array","getMaxForDataType","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","GeoTIFFSource","sourceInfo_","numSources","sourceOptions_","sourceOptions","sourceImagery_","sourceMasks_","resolutionFactors_","samplesPerPixel_","nodataValues_","metadata_","normalize_","normalize","addAlpha_","error_","convertToRGB_","convertToRGB","self","configure_","setState","getError","determineProjection","firstSource","commonRenderTileSizes","commonSourceTileSizes","samplesPerPixel","nodataValues","metadata","sourceCount","sourceIndex","images","masks","item","imageCount","sourceExtent","sourceOrigin","sourceTileSizes","renderTileSizes","sourceResolutions","imageIndex","nodataValue","getGDALNoData","getGDALMetadata","wantedSamples","level","imageResolutions","sourceTileSize","getTileWidth","getTileHeight","aspectRatio","viewRejector","resolutionFactor","scaledSourceResolutions","reverse","sourceImagery","unshift","outer","nodata","loadTile_","viewResolver","showFullExtent","toUserCoordinate","toUserExtent","sourceInfo","pool","pixelBounds","samples","fillValue","bandNumber","readOptions","height","interleave","readRasters","maskIndex","mask","composeTile_","sourceSamples","addAlpha","pixelCount","dataLength","dataIndex","pixelIndex","transparent","gain","bias","stats","sourceValue","bandIndex","nodataIsNaN","ol_control_Swipe","ol_control_Control","appendChild","move","precomposeRight_","precomposeRight","precomposeLeft_","precomposeLeft","postcompose_","postcompose","rightLayers","renderSync","isMoving","getImageRatio","orientation","right","un","_listener","isLayer_","removeLayers","removeLayer","splice","getRectangle","getSize","_movefn","eventName","pageX","touches","changedTouches","getBoundingClientRect","pageXOffset","documentElement","clientLeft","pageY","pageYOffset","clientTop","_transformPt","pt","tr","inversePixelTransform","_drawRect","pts","rot","atan2","pixelToCoordinateTransform","translate","rotate","lineTo","moveTo","restore","ratio","rect","ctx","WebGLRenderingContext","_lefttime","time","clearColor","COLOR_BUFFER_BIT","enable","SCISSOR_TEST","mapSize","bottomLeft","topRight","fullWidth","fullHeight","scissor","beginPath","clip","_righttime","gl","disable","getClassName","GeocoderMixin","MapMixin","WebServiceMixin","AddDataControl","ChannelControl","Pane","ScatterChart","Splitpanes","TextControl","swipe","mapState","isWebService","Service","GeoTiffFile","isGeoJson","JSON_","renderMap","view","loadData","connection","isMapServiceSupported","createMap","evt","updateSwiper","addLayerSwitcher","toExtent","getFitOptions","addBasemaps","addGeoJson","basemap","getCode","addGeoTiff","stac","getContext","$listeners","drop","getViewport","onPointerMove","onClick","addCollection","showWebService","fromLonLat","extentLayer","VectorLayer","VectorSource","Feature","PolygonFromExtent","removeLayerFill","getPixelValues","pixel","getData","from","alpha","formatCoords","coords","toFixed","formatValue","plural","validValues","flat","Set","datasets","label","tiffState","sourceOpts","getBlob","getUrl","OlGeoTiff","once","files","confirmOpenAll","promises","getArray","every","opts","Swipe","setOptions","$RangeError","RangeError","it","toIntegerOrInfinity","anObject","getIteratorDirect","notANaN","toPositiveInteger","createIteratorProxy","IS_PURE","IteratorProxy","done","iterator","next","remaining","proto","real","forced"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/1485.fbaeda97.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@kirtandesai/ol-geocoder/dist/ol-geocoder.js","webpack://@openeo/web-editor/./src/components/maps/osmgeocoder.js","webpack://@openeo/web-editor/src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue?9845","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue","webpack://@openeo/web-editor/src/components/maps/TextControl.vue","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?1df8","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?c848","webpack://@openeo/web-editor/./src/components/viewer/MapViewer.vue","webpack://@openeo/web-editor/./src/components/maps/AddDataControl.vue","webpack://@openeo/web-editor/src/components/maps/AddDataControl.vue","webpack://@openeo/web-editor/./src/components/maps/AddDataControl.vue?91fa","webpack://@openeo/web-editor/./src/components/maps/AddDataControl.vue?3c55","webpack://@openeo/web-editor/./src/components/maps/ChannelControl.vue","webpack://@openeo/web-editor/src/components/maps/ChannelControl.vue","webpack://@openeo/web-editor/./src/components/maps/ChannelControl.vue?bc38","webpack://@openeo/web-editor/./src/components/maps/ChannelControl.vue?9e5e","webpack://@openeo/web-editor/./node_modules/ol/xml.js","webpack://@openeo/web-editor/./node_modules/ol/format/XML.js","webpack://@openeo/web-editor/./node_modules/ol/format/xlink.js","webpack://@openeo/web-editor/./node_modules/ol/format/xsd.js","webpack://@openeo/web-editor/./node_modules/ol/format/OWS.js","webpack://@openeo/web-editor/./node_modules/ol/format/WMTSCapabilities.js","webpack://@openeo/web-editor/./node_modules/ol/uri.js","webpack://@openeo/web-editor/./node_modules/ol/tilegrid/WMTS.js","webpack://@openeo/web-editor/./node_modules/ol/source/WMTS.js","webpack://@openeo/web-editor/./node_modules/ol-ext/control/Timeline.js","webpack://@openeo/web-editor/src/components/maps/WebServiceMixin.vue","webpack://@openeo/web-editor/./src/components/maps/WebServiceMixin.vue?c34d","webpack://@openeo/web-editor/./src/components/maps/WebServiceMixin.vue","webpack://@openeo/web-editor/./src/components/maps/geotiff/state.js","webpack://@openeo/web-editor/./src/components/maps/geotiff/fix.js","webpack://@openeo/web-editor/./node_modules/ol/webgl/styleparser.js","webpack://@openeo/web-editor/./node_modules/ol/layer/WebGLTile.js","webpack://@openeo/web-editor/./node_modules/ol/source/DataTile.js","webpack://@openeo/web-editor/./node_modules/geotiff/dist-module/pool.js","webpack://@openeo/web-editor/./node_modules/ol/source/GeoTIFF.js","webpack://@openeo/web-editor/./src/components/maps/Swipe.js","webpack://@openeo/web-editor/src/components/viewer/MapViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/MapViewer.vue?dbd2","webpack://@openeo/web-editor/./src/components/viewer/MapViewer.vue?e73e","webpack://@openeo/web-editor/./node_modules/core-js/internals/not-a-nan.js","webpack://@openeo/web-editor/./node_modules/core-js/internals/to-positive-integer.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/es.iterator.drop.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/esnext.iterator.drop.js"],"sourcesContent":["/*!\n * @kirtandesai/ol-geocoder - v5.0.3\n * A geocoder extension compatible with OpenLayers v7.\n * https://github.com/kirtan-desai/ol-geocoder\n * Built: Thu Nov 17 2022 14:58:35 GMT-0500 (Eastern Standard Time)\n */\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"ol/control/Control\"),require(\"ol/style/Style\"),require(\"ol/style/Icon\"),require(\"ol/layer/Vector\"),require(\"ol/source/Vector\"),require(\"ol/geom/Point\"),require(\"ol/Feature\"),require(\"ol/proj\")):\"function\"==typeof define&&define.amd?define([\"ol/control/Control\",\"ol/style/Style\",\"ol/style/Icon\",\"ol/layer/Vector\",\"ol/source/Vector\",\"ol/geom/Point\",\"ol/Feature\",\"ol/proj\"],t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).Geocoder=t(e.ol.control.Control,e.ol.style.Style,e.ol.style.Icon,e.ol.layer.Vector,e.ol.source.Vector,e.ol.geom.Point,e.ol.Feature,e.ol.proj)}(this,(function(e,t,s,r,n,o,a,i){\"use strict\";function l(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var c=l(e),d=l(t),u=l(s),p=l(r),h=l(n),m=l(o),g=l(a),y=l(i),f=\"gcd-container\",b=\"gcd-button-control\",w=\"gcd-input-query\",v=\"gcd-input-reset\",$={namespace:\"ol-geocoder\",spin:\"gcd-pseudo-rotate\",hidden:\"gcd-hidden\",address:\"gcd-address\",country:\"gcd-country\",city:\"gcd-city\",road:\"gcd-road\",olControl:\"ol-control\",glass:{container:\"gcd-gl-container\",control:\"gcd-gl-control\",button:\"gcd-gl-btn\",input:\"gcd-gl-input\",expanded:\"gcd-gl-expanded\",reset:\"gcd-gl-reset\",result:\"gcd-gl-result\"},inputText:{container:\"gcd-txt-container\",control:\"gcd-txt-control\",input:\"gcd-txt-input\",reset:\"gcd-txt-reset\",icon:\"gcd-txt-glass\",result:\"gcd-txt-result\"}},k={containerId:f,buttonControlId:b,inputQueryId:w,inputResetId:v,cssClasses:$};const x=Object.freeze({__proto__:null,containerId:f,buttonControlId:b,inputQueryId:w,inputResetId:v,cssClasses:$,default:k}),q=\"addresschosen\",C=\"nominatim\",S=\"reverse\",L=\"glass-button\",j=\"text-input\",E=\"osm\",T=\"mapquest\",N=\"photon\",R=\"bing\",A=\"opencage\",P={provider:E,placeholder:\"Search for an address\",featureStyle:null,targetType:L,lang:\"en-US\",limit:5,keepOpen:!1,preventDefault:!1,autoComplete:!1,autoCompleteMinLength:2,autoCompleteTimeout:200,debug:!1};function I(e,t=\"Assertion failed\"){if(!e){if(\"undefined\"!=typeof Error)throw new Error(t);throw t}}function _(e){const t=function(){if(\"performance\"in window==0&&(window.performance={}),\"now\"in window.performance==0){let e=Date.now();performance.timing&&performance.timing.navigationStart&&(e=performance.timing.navigationStart),window.performance.now=()=>Date.now()-e}return window.performance.now()}().toString(36);return e?e+t:t}function M(e){return/^\\d+$/u.test(e)}function O(e,t,s){if(Array.isArray(e))return void e.forEach((e=>O(e,t)));const r=Array.isArray(t)?t:t.split(/\\s+/u);let n=r.length;for(;n--;)V(e,r[n])||U(e,r[n],s)}function F(e,t,s){if(Array.isArray(e))return void e.forEach((e=>F(e,t,s)));const r=Array.isArray(t)?t:t.split(/\\s+/u);let n=r.length;for(;n--;)V(e,r[n])&&G(e,r[n],s)}function V(e,t){return e.classList?e.classList.contains(t):B(t).test(e.className)}function D(e,t){return e.replace(/\\{\\s*([\\w-]+)\\s*\\}/gu,((e,s)=>{const r=void 0===t[s]?\"\":t[s];return String(r).replaceAll(\"&\",\"&\").replaceAll(\"<\",\"<\").replaceAll(\">\",\">\").replaceAll('\"',\""\").replaceAll(\"'\",\"'\")}))}function Q(e,t){let s;if(Array.isArray(e)){if(s=document.createElement(e[0]),e[1].id&&(s.id=e[1].id),e[1].classname&&(s.className=e[1].classname),e[1].attr){const{attr:t}=e[1];if(Array.isArray(t)){let e=-1;for(;++eG(e,t)),s)}function G(e,t,s){e.classList?e.classList.remove(t):e.className=e.className.replace(B(t),\" \").trim(),s&&M(s)&&window.setTimeout((()=>U(e,t)),s)}const z=x.cssClasses;class H{constructor(e){this.options=e,this.els=this.createControl()}createControl(){let e,t,s;return this.options.targetType===j?(t=`${z.namespace} ${z.inputText.container}`,e=Q([\"div\",{id:x.containerId,classname:t}],H.input),s={container:e,control:e.querySelector(`.${z.inputText.control}`),input:e.querySelector(`.${z.inputText.input}`),reset:e.querySelector(`.${z.inputText.reset}`),result:e.querySelector(`.${z.inputText.result}`)}):(t=`${z.namespace} ${z.glass.container}`,e=Q([\"div\",{id:x.containerId,classname:t}],H.glass),s={container:e,control:e.querySelector(`.${z.glass.control}`),button:e.querySelector(`.${z.glass.button}`),input:e.querySelector(`.${z.glass.input}`),reset:e.querySelector(`.${z.glass.reset}`),result:e.querySelector(`.${z.glass.result}`)}),s.input.placeholder=this.options.placeholder,s}}H.glass=`\\n
\\n \\n \\n \\n
\\n
    \\n`,H.input=`\\n
    \\n \\n \\n \\n
    \\n
      \\n`;class K{constructor(){this.settings={url:\"https://photon.komoot.io/api/\",params:{q:\"\",limit:10,lang:\"en\"},langs:[\"de\",\"it\",\"fr\",\"en\"]}}getParameters(e){return e.lang=e.lang.toLowerCase(),{url:this.settings.url,params:{q:e.query,limit:e.limit||this.settings.params.limit,lang:this.settings.langs.includes(e.lang)?e.lang:this.settings.params.lang}}}handleResponse(e){return 0===e.features.length?[]:e.features.map((e=>({lon:e.geometry.coordinates[0],lat:e.geometry.coordinates[1],address:{name:e.properties.name,postcode:e.properties.postcode,city:e.properties.city,state:e.properties.state,country:e.properties.country},original:{formatted:e.properties.name,details:e.properties}})))}}class J{constructor(){this.settings={url:\"https://nominatim.openstreetmap.org/search/\",params:{q:\"\",format:\"json\",addressdetails:1,limit:10,countrycodes:\"\",\"accept-language\":\"en-US\"}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,format:this.settings.params.format,addressdetails:this.settings.params.addressdetails,limit:e.limit||this.settings.params.limit,countrycodes:e.countrycodes||this.settings.params.countrycodes,\"accept-language\":e.lang||this.settings.params[\"accept-language\"]}}}handleResponse(e){return 0===e.length?[]:e.map((e=>({lon:e.lon,lat:e.lat,bbox:e.boundingbox,address:{name:e.display_name,road:e.address.road||\"\",houseNumber:e.address.house_number||\"\",postcode:e.address.postcode,city:e.address.city||e.address.town,state:e.address.state,country:e.address.country},original:{formatted:e.display_name,details:e.address}})))}}class W{constructor(){this.settings={url:\"https://open.mapquestapi.com/nominatim/v1/search.php\",params:{q:\"\",key:\"\",format:\"json\",addressdetails:1,limit:10,countrycodes:\"\",\"accept-language\":\"en-US\"}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,key:e.key,format:\"json\",addressdetails:1,limit:e.limit||this.settings.params.limit,countrycodes:e.countrycodes||this.settings.params.countrycodes,\"accept-language\":e.lang||this.settings.params[\"accept-language\"]}}}handleResponse(e){return 0===e.length?[]:e.map((e=>({lon:e.lon,lat:e.lat,address:{name:e.address.neighbourhood||\"\",road:e.address.road||\"\",postcode:e.address.postcode,city:e.address.city||e.address.town,state:e.address.state,country:e.address.country},original:{formatted:e.display_name,details:e.address}})))}}class X{constructor(){this.settings={url:\"https://dev.virtualearth.net/REST/v1/Locations\",callbackName:\"jsonp\",params:{query:\"\",key:\"\",includeNeighborhood:0,maxResults:10}}}getParameters(e){return{url:this.settings.url,callbackName:this.settings.callbackName,params:{query:e.query,key:e.key,includeNeighborhood:e.includeNeighborhood||this.settings.params.includeNeighborhood,maxResults:e.maxResults||this.settings.params.maxResults}}}handleResponse(e){const{resources:t}=e.resourceSets[0];return 0===t.length?[]:t.map((e=>({lon:e.point.coordinates[1],lat:e.point.coordinates[0],address:{name:e.name},original:{formatted:e.address.formattedAddress,details:e.address}})))}}class Y{constructor(){this.settings={url:\"https://api.opencagedata.com/geocode/v1/json?\",params:{q:\"\",key:\"\",limit:10,countrycode:\"\",pretty:1,no_annotations:1}}}getParameters(e){return{url:this.settings.url,params:{q:e.query,key:e.key,limit:e.limit||this.settings.params.limit,countrycode:e.countrycodes||this.settings.params.countrycodes}}}handleResponse(e){return 0===e.results.length?[]:e.results.map((e=>({lon:e.geometry.lng,lat:e.geometry.lat,address:{name:e.components.house_number||\"\",road:e.components.road||\"\",postcode:e.components.postcode,city:e.components.city||e.components.town,state:e.components.state,country:e.components.country},original:{formatted:e.formatted,details:e.components}})))}}function Z(e){return new Promise(((t,s)=>{const r=function(e,t){t&&\"object\"==typeof t&&(e+=(/\\?/u.test(e)?\"&\":\"?\")+ee(t));return e}(e.url,e.data),n={method:\"GET\",mode:\"cors\",credentials:\"same-origin\"};e.jsonp?function(e,t,s){const{head:r}=document,n=document.createElement(\"script\"),o=`f${Math.round(Math.random()*Date.now())}`;n.setAttribute(\"src\",`${e+(e.indexOf(\"?\")>0?\"&\":\"?\")+t}=${o}`),window[o]=e=>{window[o]=void 0,setTimeout((()=>r.removeChild(n)),0),s(e)},r.append(n)}(r,e.callbackName,t):fetch(r,n).then((e=>e.json())).then(t).catch(s)}))}function ee(e){return Object.keys(e).reduce(((t,s)=>(t.push(\"object\"==typeof e[s]?ee(e[s]):`${encodeURIComponent(s)}=${encodeURIComponent(e[s])}`),t)),[]).join(\"&\")}const te=x.cssClasses;class se{constructor(e,t){this.Base=e,this.layerName=_(\"geocoder-layer-\"),this.layer=new p.default({name:this.layerName,source:new h.default}),this.options=e.options,this.options.provider=\"string\"==typeof this.options.provider?this.options.provider.toLowerCase():this.options.provider,this.provider=this.newProvider(),this.els=t,this.lastQuery=\"\",this.container=this.els.container,this.registeredListeners={mapClick:!1},this.setListeners()}setListeners(){let e,t;const s=e=>{e.stopPropagation(),V(this.els.control,te.glass.expanded)?this.collapse():this.expand()};this.els.input.addEventListener(\"keypress\",(e=>{const t=e.target.value.trim();(e.key?\"Enter\"===e.key:e.which?13===e.which:!!e.keyCode&&13===e.keyCode)&&(e.preventDefault(),this.query(t))}),!1),this.els.input.addEventListener(\"click\",(e=>e.stopPropagation()),!1),this.els.input.addEventListener(\"input\",(s=>{const r=s.target.value.trim();0!==r.length?F(this.els.reset,te.hidden):O(this.els.reset,te.hidden),this.options.autoComplete&&r!==t&&(t=r,e&&clearTimeout(e),e=setTimeout((()=>{r.length>=this.options.autoCompleteMinLength&&this.query(r)}),this.options.autoCompleteTimeout))}),!1),this.els.reset.addEventListener(\"click\",(e=>{this.els.input.focus(),this.els.input.value=\"\",this.lastQuery=\"\",O(this.els.reset,te.hidden),this.clearResults()}),!1),this.options.targetType===L&&this.els.button.addEventListener(\"click\",s,!1)}query(e){this.provider||(this.provider=this.newProvider());const t=this.provider.getParameters({query:e,key:this.options.key,lang:this.options.lang,countrycodes:this.options.countrycodes,limit:this.options.limit});if(this.lastQuery===e&&this.els.result.firstChild)return;this.lastQuery=e,this.clearResults(),O(this.els.reset,te.spin);const s={url:t.url,data:t.params};t.callbackName&&(s.jsonp=!0,s.callbackName=t.callbackName),Z(s).then((e=>{this.options.debug&&console.info(e),F(this.els.reset,te.spin);const t=this.provider.handleResponse(e);t&&(this.createList(t),this.listenMapClick())})).catch((e=>{F(this.els.reset,te.spin);const t=Q(\"li\",\"
      Error! No internet connection?
      \");this.els.result.append(t)}))}createList(e){const t=this.els.result;e.forEach((e=>{let s;if(this.options.provider===E)s=`${e.address.name}`;else s=this.addressTemplate(e.address);const r=Q(\"li\",`${s}`);r.addEventListener(\"click\",(t=>{t.preventDefault(),this.chosen(e,s,e.address,e.original)}),!1),t.append(r)}))}chosen(e,t,s,r){const n=this.Base.getMap(),o=[Number.parseFloat(e.lon),Number.parseFloat(e.lat)],a=n.getView().getProjection(),i=y.default.transform(o,\"EPSG:4326\",a);let{bbox:l}=e;l&&(l=y.default.transformExtent([l[2],l[1],l[3],l[0]],\"EPSG:4326\",a));const c={formatted:t,details:s,original:r};if(!1===this.options.keepOpen&&this.clearResults(!0),!0===this.options.preventDefault)this.Base.dispatchEvent({type:q,address:c,coordinate:i,bbox:l,place:e});else{l?n.getView().fit(l,{duration:500}):function(e,t,s=500,r=2.388657133911758){e.getView().animate({duration:s,resolution:r},{duration:s,center:t})}(n,i);const t=this.createFeature(i,c);this.Base.dispatchEvent({type:q,address:c,feature:t,coordinate:i,bbox:l,place:e})}}createFeature(e){const t=new g.default(new m.default(e));return this.addLayer(),t.setStyle(this.options.featureStyle),t.setId(_(\"geocoder-ft-\")),this.getSource().addFeature(t),t}addressTemplate(e){const t=[];return e.name&&t.push(['{name}'].join(\"\")),(e.road||e.building||e.house_number)&&t.push(['{building} {road} {house_number}'].join(\"\")),(e.city||e.town||e.village)&&t.push(['{postcode} {city} {town} {village}'].join(\"\")),(e.state||e.country)&&t.push(['{state} {country}'].join(\"\")),D(t.join(\"
      \"),e)}newProvider(){switch(this.options.provider){case E:return new J;case T:return new W;case N:return new K;case R:return new X;case A:return new Y;default:return this.options.provider}}expand(){F(this.els.input,te.spin),O(this.els.control,te.glass.expanded),window.setTimeout((()=>this.els.input.focus()),100),this.listenMapClick()}collapse(){this.els.input.value=\"\",this.els.input.blur(),O(this.els.reset,te.hidden),F(this.els.control,te.glass.expanded),this.clearResults()}listenMapClick(){if(this.registeredListeners.mapClick)return;const e=this,t=this.Base.getMap().getTargetElement();this.registeredListeners.mapClick=!0,t.addEventListener(\"click\",{handleEvent(s){e.clearResults(!0),t.removeEventListener(s.type,this,!1),e.registeredListeners.mapClick=!1}},!1)}clearResults(e){e&&this.options.targetType===L?this.collapse():function(e){for(;e.firstChild;)e.firstChild.remove()}(this.els.result)}getSource(){return this.layer.getSource()}addLayer(){let e=!1;const t=this.Base.getMap();t.getLayers().forEach((t=>{t===this.layer&&(e=!0)})),e||t.addLayer(this.layer)}}class re extends c.default{constructor(e=C,t={}){let s,r;I(\"string\"==typeof e,\"@param `type` should be string!\"),I(e===C||e===S,`@param 'type' should be '${C}'\\n or '${S}'!`),I(\"object\"==typeof t,\"@param `options` should be object!\"),P.featureStyle=[new d.default({image:new u.default({scale:.7,src:\"//cdn.rawgit.com/jonataswalker/map-utils/master/images/marker.png\"})})];const n=new H(t);if(e===C&&(s=n.els.container),super({element:s}),!(this instanceof re))return new re;this.options=function(e,t){const s={};return Object.keys(e).forEach((t=>{Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=e[t])})),Object.keys(t).forEach((e=>{Object.prototype.hasOwnProperty.call(t,e)&&(s[e]=t[e])})),s}(P,t),this.container=s,e===C&&(r=new se(this,n.els),this.layer=r.layer)}getLayer(){return this.layer}getSource(){return this.getLayer().getSource()}setProvider(e){this.options.provider=e}setProviderKey(e){this.options.key=e}}return re}));\n//# sourceMappingURL=ol-geocoder.js.map\n","export default class OSMGeocoder {\n\tconstructor(url, geojson = false) {\n\t\tthis.url = url;\n\t\tthis.geojson = geojson;\n\t}\n\n\tgetParameters(opt) {\n\t\treturn {\n\t\t\turl: this.url,\n\t\t\tparams: {\n\t\t\t\tq: opt.query,\n\t\t\t\tformat: 'json',\n\t\t\t\tlimit: 10,\n\t\t\t\t'accept-language': 'en',\n\t\t\t\tpolygon_geojson: this.geojson ? 1 : 0,\n\t\t\t\tpolygon_threshold: 0.001,\n\t\t\t},\n\t\t};\n\t}\n\n\thandleResponse(results) {\n\t\tif (results.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn results\n\t\t\t.filter(result => [\"boundary\", \"geological\", \"leisure\", \"natural\", \"place\", \"water\", \"waterway\"].includes(result.class))\n\t\t\t.map(result => ({\n\t\t\t\tlon: result.lon,\n\t\t\t\tlat: result.lat,\n\t\t\t\tbbox: result.boundingbox,\n\t\t\t\taddress: {\n\t\t\t\t\tname: result.display_name\n\t\t\t\t},\n\t\t\t\toriginal: {\n\t\t\t\t\tformatted: result.display_name,\n\t\t\t\t\tdetails: result.address,\n\t\t\t\t\tgeojson: result.geojson\n\t\t\t\t}\n\t\t\t}));\n\t}\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!./GeocoderMixin.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!./GeocoderMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nimport style0 from \"@kirtandesai/ol-geocoder/dist/ol-geocoder.min.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./GeocoderMixin.vue?vue&type=style&index=1&id=643f6883&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 (_vm.texts.length > 0)?_c('div',{staticClass:\"ol-unselectable ol-control value\",class:{pointer: _vm.texts.length > 1},on:{\"click\":_vm.toggle}},[_vm._v(_vm._s(_vm.current))]):_vm._e()\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!./TextControl.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!./TextControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextControl.vue?vue&type=template&id=b1521986&scoped=true\"\nimport script from \"./TextControl.vue?vue&type=script&lang=js\"\nexport * from \"./TextControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextControl.vue?vue&type=style&index=0&id=b1521986&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 \"b1521986\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Splitpanes',{staticClass:\"default-theme\",attrs:{\"horizontal\":\"\"}},[_c('Pane',{attrs:{\"id\":\"map\"}},[_c('div',{staticClass:\"map-viewer\",attrs:{\"id\":_vm.id}},[_c('ProgressControl',{ref:\"progress\",attrs:{\"map\":_vm.map}}),_c('UserLocationControl',{attrs:{\"map\":_vm.map}}),_c('AddDataControl',{attrs:{\"map\":_vm.map},on:{\"add\":_vm.addData}}),(_vm.isGeoTiff)?[_c('TextControl',{attrs:{\"text\":_vm.textControlText}}),_c('div',{staticClass:\"ol-unselectable ol-control geotiff-channels\"},[_vm._l((_vm.geotiffs),function(state){return [(!state.colorMap)?_c('ChannelControl',{key:state.layer.id,attrs:{\"bands\":state.bands,\"defaultChannels\":state.defaultChannels,\"title\":_vm.geotiffs.length > 1 ? state.layer.get('title') : ''},on:{\"update\":(type, data) => _vm.updateGeoTiffStyle(state, type, data)}}):_vm._e()]})],2)]:_vm._e(),(_vm.loading)?_c('div',{staticClass:\"map-loading\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"}),_c('span',[_vm._v(\"Loading map...\")])]):_vm._e()],2)]),(_vm.chart)?_c('Pane',{attrs:{\"id\":\"chart\",\"size\":33}},[_c('span',{staticClass:\"close\",on:{\"click\":_vm.closeChart}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})]),_c('ScatterChart',_vm._b({attrs:{\"height\":220}},'ScatterChart',_vm.chart,false))],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ol-add-data ol-unselectable ol-control\",staticStyle:{\"pointer-events\":\"auto\"}},[_c('button',{attrs:{\"type\":\"button\",\"title\":\"Add external data source\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openModal.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-image\"})])])\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!./AddDataControl.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!./AddDataControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AddDataControl.vue?vue&type=template&id=046026ef&scoped=true\"\nimport script from \"./AddDataControl.vue?vue&type=script&lang=js\"\nexport * from \"./AddDataControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./AddDataControl.vue?vue&type=style&index=0&id=046026ef&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 \"046026ef\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.channels.length > 0),expression:\"channels.length > 0\"}],staticClass:\"channels\"},[_c('table',[_c('thead',[(_vm.title)?_c('tr',[_c('th',{attrs:{\"colspan\":_vm.cols}},[_vm._v(_vm._s(_vm.title))])]):_vm._e(),_c('tr',[(!_vm.isGray)?_c('th',[_vm._v(\"Channel\")]):_vm._e(),(_vm.multiBand)?_c('th',[_vm._v(\"Band\")]):_vm._e(),_c('th',[_vm._v(\"Min\")]),_c('th',[_vm._v(\"Max\")])])]),_c('tbody',_vm._l((_vm.channels),function(channel,i){return _c('tr',{key:i},[(!_vm.isGray)?_c('th',[_vm._v(_vm._s(_vm.labels[i]))]):_vm._e(),(_vm.multiBand)?_c('td',[_c('select',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.id),expression:\"channel.id\",modifiers:{\"number\":true}}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return _vm._n(val)}); _vm.$set(channel, \"id\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.bands),function(band){return _c('option',{key:band.id,domProps:{\"value\":band.id}},[_vm._v(_vm._s(band.name || band.id))])}),0)]):_vm._e(),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.min),expression:\"channel.min\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"required\":\"\"},domProps:{\"value\":(channel.min)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(channel, \"min\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(channel.max),expression:\"channel.max\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"required\":\"\"},domProps:{\"value\":(channel.max)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(channel, \"max\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})])])}),0),(_vm.multiBand)?_c('tfoot',[_c('tr',[_c('td',{attrs:{\"colspan\":_vm.cols}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.isGray),expression:\"isGray\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.isGray)?_vm._i(_vm.isGray,null)>-1:(_vm.isGray)},on:{\"change\":function($event){var $$a=_vm.isGray,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.isGray=$$a.concat([$$v]))}else{$$i>-1&&(_vm.isGray=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.isGray=$$c}}}}),_vm._v(\" Grayscale \")])])]):_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!./ChannelControl.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!./ChannelControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChannelControl.vue?vue&type=template&id=5223a7ca&scoped=true\"\nimport script from \"./ChannelControl.vue?vue&type=script&lang=js\"\nexport * from \"./ChannelControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./ChannelControl.vue?vue&type=style&index=0&id=5223a7ca&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 \"5223a7ca\",\n null\n \n)\n\nexport default component.exports","/**\n * @module ol/xml\n */\nimport {extend} from './array.js';\n\n/**\n * When using {@link module:ol/xml.makeChildAppender} or\n * {@link module:ol/xml.makeSimpleNodeFactory}, the top `objectStack` item needs\n * to have this structure.\n * @typedef {Object} NodeStackItem\n * @property {Element} node Node.\n */\n\n/**\n * @typedef {function(Element, Array<*>): void} Parser\n */\n\n/**\n * @typedef {function(Element, *, Array<*>): void} Serializer\n */\n\n/**\n * @type {string}\n */\nexport const XML_SCHEMA_INSTANCE_URI =\n 'http://www.w3.org/2001/XMLSchema-instance';\n\n/**\n * @param {string} namespaceURI Namespace URI.\n * @param {string} qualifiedName Qualified name.\n * @return {Element} Node.\n */\nexport function createElementNS(namespaceURI, qualifiedName) {\n return getDocument().createElementNS(namespaceURI, qualifiedName);\n}\n\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @return {string} All text content.\n * @api\n */\nexport function getAllTextContent(node, normalizeWhitespace) {\n return getAllTextContent_(node, normalizeWhitespace, []).join('');\n}\n\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @param {Array} accumulator Accumulator.\n * @private\n * @return {Array} Accumulator.\n */\nexport function getAllTextContent_(node, normalizeWhitespace, accumulator) {\n if (\n node.nodeType == Node.CDATA_SECTION_NODE ||\n node.nodeType == Node.TEXT_NODE\n ) {\n if (normalizeWhitespace) {\n accumulator.push(String(node.nodeValue).replace(/(\\r\\n|\\r|\\n)/g, ''));\n } else {\n accumulator.push(node.nodeValue);\n }\n } else {\n let n;\n for (n = node.firstChild; n; n = n.nextSibling) {\n getAllTextContent_(n, normalizeWhitespace, accumulator);\n }\n }\n return accumulator;\n}\n\n/**\n * @param {Object} object Object.\n * @return {boolean} Is a document.\n */\nexport function isDocument(object) {\n return 'documentElement' in object;\n}\n\n/**\n * @param {Element} node Node.\n * @param {?string} namespaceURI Namespace URI.\n * @param {string} name Attribute name.\n * @return {string} Value\n */\nexport function getAttributeNS(node, namespaceURI, name) {\n return node.getAttributeNS(namespaceURI, name) || '';\n}\n\n/**\n * Parse an XML string to an XML Document.\n * @param {string} xml XML.\n * @return {Document} Document.\n * @api\n */\nexport function parse(xml) {\n return new DOMParser().parseFromString(xml, 'application/xml');\n}\n\n/**\n * Make an array extender function for extending the array at the top of the\n * object stack.\n * @param {function(this: T, Node, Array<*>): (Array<*>|undefined)} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayExtender(valueReader, thisArg) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const array = /** @type {Array<*>} */ (\n objectStack[objectStack.length - 1]\n );\n extend(array, value);\n }\n }\n );\n}\n\n/**\n * Make an array pusher function for pushing to the array at the top of the\n * object stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayPusher(valueReader, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const array = /** @type {Array<*>} */ (\n objectStack[objectStack.length - 1]\n );\n array.push(value);\n }\n }\n );\n}\n\n/**\n * Make an object stack replacer function for replacing the object at the\n * top of the stack.\n * @param {function(this: T, Node, Array<*>): *} valueReader Value reader.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeReplacer(valueReader, thisArg) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n objectStack[objectStack.length - 1] = value;\n }\n }\n );\n}\n\n/**\n * Make an object property pusher function for adding a property to the\n * object at the top of the stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [property] Property.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertyPusher(valueReader, property, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const object = /** @type {!Object} */ (\n objectStack[objectStack.length - 1]\n );\n const name = property !== undefined ? property : node.localName;\n let array;\n if (name in object) {\n array = object[name];\n } else {\n array = [];\n object[name] = array;\n }\n array.push(value);\n }\n }\n );\n}\n\n/**\n * Make an object property setter function.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [property] Property.\n * @param {T} [thisArg] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertySetter(valueReader, property, thisArg) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n const value = valueReader.call(\n thisArg !== undefined ? thisArg : this,\n node,\n objectStack,\n );\n if (value !== undefined) {\n const object = /** @type {!Object} */ (\n objectStack[objectStack.length - 1]\n );\n const name = property !== undefined ? property : node.localName;\n object[name] = value;\n }\n }\n );\n}\n\n/**\n * Create a serializer that appends nodes written by its `nodeWriter` to its\n * designated parent. The parent is the `node` of the\n * {@link module:ol/xml~NodeStackItem} at the top of the `objectStack`.\n * @param {function(this: T, Node, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [thisArg] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeChildAppender(nodeWriter, thisArg) {\n return function (node, value, objectStack) {\n nodeWriter.call(\n thisArg !== undefined ? thisArg : this,\n node,\n value,\n objectStack,\n );\n const parent = /** @type {NodeStackItem} */ (\n objectStack[objectStack.length - 1]\n );\n const parentNode = parent.node;\n parentNode.appendChild(node);\n };\n}\n\n/**\n * Create a serializer that calls the provided `nodeWriter` from\n * {@link module:ol/xml.serialize}. This can be used by the parent writer to have the\n * `nodeWriter` called with an array of values when the `nodeWriter` was\n * designed to serialize a single item. An example would be a LineString\n * geometry writer, which could be reused for writing MultiLineString\n * geometries.\n * @param {function(this: T, Element, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [thisArg] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeArraySerializer(nodeWriter, thisArg) {\n let serializersNS, nodeFactory;\n return function (node, value, objectStack) {\n if (serializersNS === undefined) {\n serializersNS = {};\n const serializers = {};\n serializers[node.localName] = nodeWriter;\n serializersNS[node.namespaceURI] = serializers;\n nodeFactory = makeSimpleNodeFactory(node.localName);\n }\n serialize(serializersNS, nodeFactory, value, objectStack);\n };\n}\n\n/**\n * Create a node factory which can use the `keys` passed to\n * {@link module:ol/xml.serialize} or {@link module:ol/xml.pushSerializeAndPop} as node names,\n * or a fixed node name. The namespace of the created nodes can either be fixed,\n * or the parent namespace will be used.\n * @param {string} [fixedNodeName] Fixed node name which will be used for all\n * created nodes. If not provided, the 3rd argument to the resulting node\n * factory needs to be provided and will be the nodeName.\n * @param {string} [fixedNamespaceURI] Fixed namespace URI which will be used for\n * all created nodes. If not provided, the namespace of the parent node will\n * be used.\n * @return {function(*, Array<*>, string=): (Node|undefined)} Node factory.\n */\nexport function makeSimpleNodeFactory(fixedNodeName, fixedNamespaceURI) {\n return (\n /**\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [newNodeName] Node name.\n * @return {Node} Node.\n */\n function (value, objectStack, newNodeName) {\n const context = /** @type {NodeStackItem} */ (\n objectStack[objectStack.length - 1]\n );\n const node = context.node;\n let nodeName = fixedNodeName;\n if (nodeName === undefined) {\n nodeName = newNodeName;\n }\n\n const namespaceURI =\n fixedNamespaceURI !== undefined ? fixedNamespaceURI : node.namespaceURI;\n return createElementNS(namespaceURI, /** @type {string} */ (nodeName));\n }\n );\n}\n\n/**\n * A node factory that creates a node using the parent's `namespaceURI` and the\n * `nodeName` passed by {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop} to the node factory.\n * @const\n * @type {function(*, Array<*>, string=): (Node|undefined)}\n */\nexport const OBJECT_PROPERTY_NODE_FACTORY = makeSimpleNodeFactory();\n\n/**\n * Create an array of `values` to be used with {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop}, where `orderedKeys` has to be provided as\n * `key` argument.\n * @param {Object} object Key-value pairs for the sequence. Keys can\n * be a subset of the `orderedKeys`.\n * @param {Array} orderedKeys Keys in the order of the sequence.\n * @return {Array<*>} Values in the order of the sequence. The resulting array\n * has the same length as the `orderedKeys` array. Values that are not\n * present in `object` will be `undefined` in the resulting array.\n */\nexport function makeSequence(object, orderedKeys) {\n const length = orderedKeys.length;\n const sequence = new Array(length);\n for (let i = 0; i < length; ++i) {\n sequence[i] = object[orderedKeys[i]];\n }\n return sequence;\n}\n\n/**\n * Create a namespaced structure, using the same values for each namespace.\n * This can be used as a starting point for versioned parsers, when only a few\n * values are version specific.\n * @param {Array} namespaceURIs Namespace URIs.\n * @param {T} structure Structure.\n * @param {Object} [structureNS] Namespaced structure to add to.\n * @return {Object} Namespaced structure.\n * @template T\n */\nexport function makeStructureNS(namespaceURIs, structure, structureNS) {\n structureNS = structureNS !== undefined ? structureNS : {};\n let i, ii;\n for (i = 0, ii = namespaceURIs.length; i < ii; ++i) {\n structureNS[namespaceURIs[i]] = structure;\n }\n return structureNS;\n}\n\n/**\n * Parse a node using the parsers and object stack.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [thisArg] The object to use as `this`.\n */\nexport function parseNode(parsersNS, node, objectStack, thisArg) {\n let n;\n for (n = node.firstElementChild; n; n = n.nextElementSibling) {\n const parsers = parsersNS[n.namespaceURI];\n if (parsers !== undefined) {\n const parser = parsers[n.localName];\n if (parser !== undefined) {\n parser.call(thisArg, n, objectStack);\n }\n }\n }\n}\n\n/**\n * Push an object on top of the stack, parse and return the popped object.\n * @param {T} object Object.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [thisArg] The object to use as `this`.\n * @return {T} Object.\n * @template T\n */\nexport function pushParseAndPop(object, parsersNS, node, objectStack, thisArg) {\n objectStack.push(object);\n parseNode(parsersNS, node, objectStack, thisArg);\n return /** @type {T} */ (objectStack.pop());\n}\n\n/**\n * Walk through an array of `values` and call a serializer for each value.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `keys` has\n * to match the length of `values`. For serializing a sequence, `keys`\n * determines the order of the sequence.\n * @param {T} [thisArg] The object to use as `this` for the node factory and\n * serializers.\n * @template T\n */\nexport function serialize(\n serializersNS,\n nodeFactory,\n values,\n objectStack,\n keys,\n thisArg,\n) {\n const length = (keys !== undefined ? keys : values).length;\n let value, node;\n for (let i = 0; i < length; ++i) {\n value = values[i];\n if (value !== undefined) {\n node = nodeFactory.call(\n thisArg !== undefined ? thisArg : this,\n value,\n objectStack,\n keys !== undefined ? keys[i] : undefined,\n );\n if (node !== undefined) {\n serializersNS[node.namespaceURI][node.localName].call(\n thisArg,\n node,\n value,\n objectStack,\n );\n }\n }\n }\n}\n\n/**\n * @param {O} object Object.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `keys` has\n * to match the length of `values`. For serializing a sequence, `keys`\n * determines the order of the sequence.\n * @param {T} [thisArg] The object to use as `this` for the node factory and\n * serializers.\n * @return {O|undefined} Object.\n * @template O, T\n */\nexport function pushSerializeAndPop(\n object,\n serializersNS,\n nodeFactory,\n values,\n objectStack,\n keys,\n thisArg,\n) {\n objectStack.push(object);\n serialize(serializersNS, nodeFactory, values, objectStack, keys, thisArg);\n return /** @type {O|undefined} */ (objectStack.pop());\n}\n\nlet xmlSerializer_ = undefined;\n\n/**\n * Register a XMLSerializer. Can be used to inject a XMLSerializer\n * where there is no globally available implementation.\n *\n * @param {XMLSerializer} xmlSerializer A XMLSerializer.\n * @api\n */\nexport function registerXMLSerializer(xmlSerializer) {\n xmlSerializer_ = xmlSerializer;\n}\n\n/**\n * @return {XMLSerializer} The XMLSerializer.\n */\nexport function getXMLSerializer() {\n if (xmlSerializer_ === undefined && typeof XMLSerializer !== 'undefined') {\n xmlSerializer_ = new XMLSerializer();\n }\n return xmlSerializer_;\n}\n\nlet document_ = undefined;\n\n/**\n * Register a Document to use when creating nodes for XML serializations. Can be used\n * to inject a Document where there is no globally available implementation.\n *\n * @param {Document} document A Document.\n * @api\n */\nexport function registerDocument(document) {\n document_ = document;\n}\n\n/**\n * Get a document that should be used when creating nodes for XML serializations.\n * @return {Document} The document.\n */\nexport function getDocument() {\n if (document_ === undefined && typeof document !== 'undefined') {\n document_ = document.implementation.createDocument('', '', null);\n }\n return document_;\n}\n","/**\n * @module ol/format/XML\n */\nimport {abstract} from '../util.js';\nimport {isDocument, parse} from '../xml.js';\n\n/**\n * @classdesc\n * Generic format for reading non-feature XML data\n *\n * @abstract\n */\nclass XML {\n /**\n * Read the source document.\n *\n * @param {Document|Element|string} source The XML source.\n * @return {Object|null} An object representing the source.\n * @api\n */\n read(source) {\n if (!source) {\n return null;\n }\n if (typeof source === 'string') {\n const doc = parse(source);\n return this.readFromDocument(doc);\n }\n if (isDocument(source)) {\n return this.readFromDocument(/** @type {Document} */ (source));\n }\n return this.readFromNode(/** @type {Element} */ (source));\n }\n\n /**\n * @param {Document} doc Document.\n * @return {Object|null} Object\n */\n readFromDocument(doc) {\n for (let n = doc.firstChild; n; n = n.nextSibling) {\n if (n.nodeType == Node.ELEMENT_NODE) {\n return this.readFromNode(/** @type {Element} */ (n));\n }\n }\n return null;\n }\n\n /**\n * @abstract\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n abstract();\n }\n}\n\nexport default XML;\n","/**\n * @module ol/format/xlink\n */\n\n/**\n * @const\n * @type {string}\n */\nconst NAMESPACE_URI = 'http://www.w3.org/1999/xlink';\n\n/**\n * @param {Element} node Node.\n * @return {string|null} href.\n */\nexport function readHref(node) {\n return node.getAttributeNS(NAMESPACE_URI, 'href');\n}\n","/**\n * @module ol/format/xsd\n */\nimport {getAllTextContent, getDocument} from '../xml.js';\nimport {padNumber} from '../string.js';\n\n/**\n * @param {Node} node Node.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBoolean(node) {\n const s = getAllTextContent(node, false);\n return readBooleanString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBooleanString(string) {\n const m = /^\\s*(true|1)|(false|0)\\s*$/.exec(string);\n if (m) {\n return m[1] !== undefined || false;\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} DateTime in seconds.\n */\nexport function readDateTime(node) {\n const s = getAllTextContent(node, false);\n const dateTime = Date.parse(s);\n return isNaN(dateTime) ? undefined : dateTime / 1000;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimal(node) {\n const s = getAllTextContent(node, false);\n return readDecimalString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimalString(string) {\n // FIXME check spec\n const m = /^\\s*([+\\-]?\\d*\\.?\\d+(?:e[+\\-]?\\d+)?)\\s*$/i.exec(string);\n if (m) {\n return parseFloat(m[1]);\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Non negative integer.\n */\nexport function readPositiveInteger(node) {\n const s = getAllTextContent(node, false);\n return readNonNegativeIntegerString(s);\n}\n\n/**\n * @param {string} string String.\n * @return {number|undefined} Non negative integer.\n */\nexport function readNonNegativeIntegerString(string) {\n const m = /^\\s*(\\d+)\\s*$/.exec(string);\n if (m) {\n return parseInt(m[1], 10);\n }\n return undefined;\n}\n\n/**\n * @param {Node} node Node.\n * @return {string|undefined} String.\n */\nexport function readString(node) {\n return getAllTextContent(node, false).trim();\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the boolean to.\n * @param {boolean} bool Boolean.\n */\nexport function writeBooleanTextNode(node, bool) {\n writeStringTextNode(node, bool ? '1' : '0');\n}\n\n/**\n * @param {Node} node Node to append a CDATA Section with the string to.\n * @param {string} string String.\n */\nexport function writeCDATASection(node, string) {\n node.appendChild(getDocument().createCDATASection(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the dateTime to.\n * @param {number} dateTime DateTime in seconds.\n */\nexport function writeDateTimeTextNode(node, dateTime) {\n const date = new Date(dateTime * 1000);\n const string =\n date.getUTCFullYear() +\n '-' +\n padNumber(date.getUTCMonth() + 1, 2) +\n '-' +\n padNumber(date.getUTCDate(), 2) +\n 'T' +\n padNumber(date.getUTCHours(), 2) +\n ':' +\n padNumber(date.getUTCMinutes(), 2) +\n ':' +\n padNumber(date.getUTCSeconds(), 2) +\n 'Z';\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} decimal Decimal.\n */\nexport function writeDecimalTextNode(node, decimal) {\n const string = decimal.toPrecision();\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} nonNegativeInteger Non negative integer.\n */\nexport function writeNonNegativeIntegerTextNode(node, nonNegativeInteger) {\n const string = nonNegativeInteger.toString();\n node.appendChild(getDocument().createTextNode(string));\n}\n\n/**\n * @param {Node} node Node to append a TextNode with the string to.\n * @param {string} string String.\n */\nexport function writeStringTextNode(node, string) {\n node.appendChild(getDocument().createTextNode(string));\n}\n","/**\n * @module ol/format/OWS\n */\nimport XML from './XML.js';\nimport {\n makeObjectPropertyPusher,\n makeObjectPropertySetter,\n makeStructureNS,\n pushParseAndPop,\n} from '../xml.js';\nimport {readHref} from './xlink.js';\nimport {readString} from './xsd.js';\n\n/**\n * @const\n * @type {Array}\n */\nconst NAMESPACE_URIS = [null, 'http://www.opengis.net/ows/1.1'];\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ServiceIdentification': makeObjectPropertySetter(readServiceIdentification),\n 'ServiceProvider': makeObjectPropertySetter(readServiceProvider),\n 'OperationsMetadata': makeObjectPropertySetter(readOperationsMetadata),\n});\n\nclass OWS extends XML {\n constructor() {\n super();\n }\n\n /**\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n const owsObject = pushParseAndPop({}, PARSERS, node, []);\n return owsObject ? owsObject : null;\n }\n}\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst ADDRESS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'DeliveryPoint': makeObjectPropertySetter(readString),\n 'City': makeObjectPropertySetter(readString),\n 'AdministrativeArea': makeObjectPropertySetter(readString),\n 'PostalCode': makeObjectPropertySetter(readString),\n 'Country': makeObjectPropertySetter(readString),\n 'ElectronicMailAddress': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst ALLOWED_VALUES_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Value': makeObjectPropertyPusher(readValue),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONSTRAINT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'AllowedValues': makeObjectPropertySetter(readAllowedValues),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONTACT_INFO_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Phone': makeObjectPropertySetter(readPhone),\n 'Address': makeObjectPropertySetter(readAddress),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst DCP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'HTTP': makeObjectPropertySetter(readHttp),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst HTTP_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Get': makeObjectPropertyPusher(readGet),\n 'Post': undefined, // TODO\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst OPERATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'DCP': makeObjectPropertySetter(readDcp),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst OPERATIONS_METADATA_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Operation': readOperation,\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PHONE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Voice': makeObjectPropertySetter(readString),\n 'Facsimile': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst REQUEST_METHOD_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Constraint': makeObjectPropertyPusher(readConstraint),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_CONTACT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'IndividualName': makeObjectPropertySetter(readString),\n 'PositionName': makeObjectPropertySetter(readString),\n 'ContactInfo': makeObjectPropertySetter(readContactInfo),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_IDENTIFICATION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Abstract': makeObjectPropertySetter(readString),\n 'AccessConstraints': makeObjectPropertySetter(readString),\n 'Fees': makeObjectPropertySetter(readString),\n 'Title': makeObjectPropertySetter(readString),\n 'ServiceTypeVersion': makeObjectPropertySetter(readString),\n 'ServiceType': makeObjectPropertySetter(readString),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst SERVICE_PROVIDER_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ProviderName': makeObjectPropertySetter(readString),\n 'ProviderSite': makeObjectPropertySetter(readHref),\n 'ServiceContact': makeObjectPropertySetter(readServiceContact),\n});\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The address.\n */\nfunction readAddress(node, objectStack) {\n return pushParseAndPop({}, ADDRESS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The values.\n */\nfunction readAllowedValues(node, objectStack) {\n return pushParseAndPop({}, ALLOWED_VALUES_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The constraint.\n */\nfunction readConstraint(node, objectStack) {\n const name = node.getAttribute('name');\n if (!name) {\n return undefined;\n }\n return pushParseAndPop({'name': name}, CONSTRAINT_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The contact info.\n */\nfunction readContactInfo(node, objectStack) {\n return pushParseAndPop({}, CONTACT_INFO_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The DCP.\n */\nfunction readDcp(node, objectStack) {\n return pushParseAndPop({}, DCP_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The GET object.\n */\nfunction readGet(node, objectStack) {\n const href = readHref(node);\n if (!href) {\n return undefined;\n }\n return pushParseAndPop(\n {'href': href},\n REQUEST_METHOD_PARSERS,\n node,\n objectStack,\n );\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The HTTP object.\n */\nfunction readHttp(node, objectStack) {\n return pushParseAndPop({}, HTTP_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The operation.\n */\nfunction readOperation(node, objectStack) {\n const name = node.getAttribute('name');\n const value = pushParseAndPop({}, OPERATION_PARSERS, node, objectStack);\n if (!value) {\n return undefined;\n }\n const object = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n object[name] = value;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The operations metadata.\n */\nfunction readOperationsMetadata(node, objectStack) {\n return pushParseAndPop({}, OPERATIONS_METADATA_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The phone.\n */\nfunction readPhone(node, objectStack) {\n return pushParseAndPop({}, PHONE_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service identification.\n */\nfunction readServiceIdentification(node, objectStack) {\n return pushParseAndPop({}, SERVICE_IDENTIFICATION_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service contact.\n */\nfunction readServiceContact(node, objectStack) {\n return pushParseAndPop({}, SERVICE_CONTACT_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} The service provider.\n */\nfunction readServiceProvider(node, objectStack) {\n return pushParseAndPop({}, SERVICE_PROVIDER_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {string|undefined} The value.\n */\nfunction readValue(node, objectStack) {\n return readString(node);\n}\n\nexport default OWS;\n","/**\n * @module ol/format/WMTSCapabilities\n */\nimport OWS from './OWS.js';\nimport XML from './XML.js';\nimport {boundingExtent} from '../extent.js';\nimport {\n makeArrayPusher,\n makeObjectPropertyPusher,\n makeObjectPropertySetter,\n makeStructureNS,\n pushParseAndPop,\n} from '../xml.js';\nimport {readDecimal, readPositiveInteger, readString} from './xsd.js';\nimport {readHref} from './xlink.js';\n\n/**\n * @const\n * @type {Array}\n */\nconst NAMESPACE_URIS = [null, 'http://www.opengis.net/wmts/1.0'];\n\n/**\n * @const\n * @type {Array}\n */\nconst OWS_NAMESPACE_URIS = [null, 'http://www.opengis.net/ows/1.1'];\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Contents': makeObjectPropertySetter(readContents),\n});\n\n/**\n * @classdesc\n * Format for reading WMTS capabilities data.\n *\n * @api\n */\nclass WMTSCapabilities extends XML {\n constructor() {\n super();\n\n /**\n * @type {OWS}\n * @private\n */\n this.owsParser_ = new OWS();\n }\n\n /**\n * @param {Element} node Node.\n * @return {Object|null} Object\n */\n readFromNode(node) {\n let version = node.getAttribute('version');\n if (version) {\n version = version.trim();\n }\n let WMTSCapabilityObject = this.owsParser_.readFromNode(node);\n if (!WMTSCapabilityObject) {\n return null;\n }\n WMTSCapabilityObject['version'] = version;\n WMTSCapabilityObject = pushParseAndPop(\n WMTSCapabilityObject,\n PARSERS,\n node,\n [],\n );\n return WMTSCapabilityObject ? WMTSCapabilityObject : null;\n }\n}\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst CONTENTS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'Layer': makeObjectPropertyPusher(readLayer),\n 'TileMatrixSet': makeObjectPropertyPusher(readTileMatrixSet),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst LAYER_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'Style': makeObjectPropertyPusher(readStyle),\n 'Format': makeObjectPropertyPusher(readString),\n 'TileMatrixSetLink': makeObjectPropertyPusher(readTileMatrixSetLink),\n 'Dimension': makeObjectPropertyPusher(readDimensions),\n 'ResourceURL': makeObjectPropertyPusher(readResourceUrl),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Title': makeObjectPropertySetter(readString),\n 'Abstract': makeObjectPropertySetter(readString),\n 'WGS84BoundingBox': makeObjectPropertySetter(readBoundingBox),\n 'BoundingBox': makeObjectPropertyPusher(readBoundingBoxWithCrs),\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst STYLE_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'LegendURL': makeObjectPropertyPusher(readLegendUrl),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Title': makeObjectPropertySetter(readString),\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LINKS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrixSet': makeObjectPropertySetter(readString),\n 'TileMatrixSetLimits': makeObjectPropertySetter(readTileMatrixLimitsList),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LIMITS_LIST_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrixLimits': makeArrayPusher(readTileMatrixLimits),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_LIMITS_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'TileMatrix': makeObjectPropertySetter(readString),\n 'MinTileRow': makeObjectPropertySetter(readPositiveInteger),\n 'MaxTileRow': makeObjectPropertySetter(readPositiveInteger),\n 'MinTileCol': makeObjectPropertySetter(readPositiveInteger),\n 'MaxTileCol': makeObjectPropertySetter(readPositiveInteger),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst DIMENSION_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'Default': makeObjectPropertySetter(readString),\n 'Value': makeObjectPropertyPusher(readString),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst WGS84_BBOX_READERS = makeStructureNS(OWS_NAMESPACE_URIS, {\n 'LowerCorner': makeArrayPusher(readCoordinates),\n 'UpperCorner': makeArrayPusher(readCoordinates),\n});\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TMS_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'WellKnownScaleSet': makeObjectPropertySetter(readString),\n 'TileMatrix': makeObjectPropertyPusher(readTileMatrix),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'SupportedCRS': makeObjectPropertySetter(readString),\n 'Identifier': makeObjectPropertySetter(readString),\n 'BoundingBox': makeObjectPropertySetter(readBoundingBox),\n }),\n);\n\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nconst TM_PARSERS = makeStructureNS(\n NAMESPACE_URIS,\n {\n 'TopLeftCorner': makeObjectPropertySetter(readCoordinates),\n 'ScaleDenominator': makeObjectPropertySetter(readDecimal),\n 'TileWidth': makeObjectPropertySetter(readPositiveInteger),\n 'TileHeight': makeObjectPropertySetter(readPositiveInteger),\n 'MatrixWidth': makeObjectPropertySetter(readPositiveInteger),\n 'MatrixHeight': makeObjectPropertySetter(readPositiveInteger),\n },\n makeStructureNS(OWS_NAMESPACE_URIS, {\n 'Identifier': makeObjectPropertySetter(readString),\n }),\n);\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Attribution object.\n */\nfunction readContents(node, objectStack) {\n return pushParseAndPop({}, CONTENTS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Layers object.\n */\nfunction readLayer(node, objectStack) {\n return pushParseAndPop({}, LAYER_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Tile Matrix Set object.\n */\nfunction readTileMatrixSet(node, objectStack) {\n return pushParseAndPop({}, TMS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Style object.\n */\nfunction readStyle(node, objectStack) {\n const style = pushParseAndPop({}, STYLE_PARSERS, node, objectStack);\n if (!style) {\n return undefined;\n }\n const isDefault = node.getAttribute('isDefault') === 'true';\n style['isDefault'] = isDefault;\n return style;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Tile Matrix Set Link object.\n */\nfunction readTileMatrixSetLink(node, objectStack) {\n return pushParseAndPop({}, TMS_LINKS_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Dimension object.\n */\nfunction readDimensions(node, objectStack) {\n return pushParseAndPop({}, DIMENSION_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Resource URL object.\n */\nfunction readResourceUrl(node, objectStack) {\n const format = node.getAttribute('format');\n const template = node.getAttribute('template');\n const resourceType = node.getAttribute('resourceType');\n const resource = {};\n if (format) {\n resource['format'] = format;\n }\n if (template) {\n resource['template'] = template;\n }\n if (resourceType) {\n resource['resourceType'] = resourceType;\n }\n return resource;\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} BBox object.\n */\nfunction readBoundingBox(node, objectStack) {\n const coordinates = pushParseAndPop(\n [],\n WGS84_BBOX_READERS,\n node,\n objectStack,\n );\n if (coordinates.length != 2) {\n return undefined;\n }\n return boundingExtent(coordinates);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} BBox object.\n */\nfunction readBoundingBoxWithCrs(node, objectStack) {\n const crs = node.getAttribute('crs');\n const coordinates = pushParseAndPop(\n [],\n WGS84_BBOX_READERS,\n node,\n objectStack,\n );\n if (coordinates.length != 2) {\n return undefined;\n }\n return {extent: boundingExtent(coordinates), crs: crs};\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Legend object.\n */\nfunction readLegendUrl(node, objectStack) {\n const legend = {};\n legend['format'] = node.getAttribute('format');\n legend['href'] = readHref(node);\n return legend;\n}\n\n/**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} Coordinates object.\n */\nfunction readCoordinates(node, objectStack) {\n const coordinates = readString(node).split(/\\s+/);\n if (!coordinates || coordinates.length != 2) {\n return undefined;\n }\n const x = +coordinates[0];\n const y = +coordinates[1];\n if (isNaN(x) || isNaN(y)) {\n return undefined;\n }\n return [x, y];\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrix object.\n */\nfunction readTileMatrix(node, objectStack) {\n return pushParseAndPop({}, TM_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrixSetLimits Object.\n */\nfunction readTileMatrixLimitsList(node, objectStack) {\n return pushParseAndPop([], TMS_LIMITS_LIST_PARSERS, node, objectStack);\n}\n\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Object|undefined} TileMatrixLimits Array.\n */\nfunction readTileMatrixLimits(node, objectStack) {\n return pushParseAndPop({}, TMS_LIMITS_PARSERS, node, objectStack);\n}\n\nexport default WMTSCapabilities;\n","/**\n * @module ol/uri\n */\n\n/**\n * Appends query parameters to a URI.\n *\n * @param {string} uri The original URI, which may already have query data.\n * @param {!Object} params An object where keys are URI-encoded parameter keys,\n * and the values are arbitrary types or arrays.\n * @return {string} The new URI.\n */\nexport function appendParams(uri, params) {\n /** @type {Array} */\n const keyParams = [];\n // Skip any null or undefined parameter values\n Object.keys(params).forEach(function (k) {\n if (params[k] !== null && params[k] !== undefined) {\n keyParams.push(k + '=' + encodeURIComponent(params[k]));\n }\n });\n const qs = keyParams.join('&');\n // remove any trailing ? or &\n uri = uri.replace(/[?&]$/, '');\n // append ? or & depending on whether uri has existing parameters\n uri += uri.includes('?') ? '&' : '?';\n return uri + qs;\n}\n","/**\n * @module ol/tilegrid/WMTS\n */\n\nimport TileGrid from './TileGrid.js';\nimport {get as getProjection} from '../proj.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../extent.js\").Extent} [extent] Extent for the tile grid. No tiles\n * outside this extent will be requested by {@link module:ol/source/Tile~TileSource} sources.\n * When no `origin` or `origins` are configured, the `origin` will be set to the\n * top-left corner of the extent.\n * @property {import(\"../coordinate.js\").Coordinate} [origin] The tile grid origin, i.e.\n * where the `x` and `y` axes meet (`[z, 0, 0]`). Tile coordinates increase left\n * to right and downwards. If not specified, `extent` or `origins` must be provided.\n * @property {Array} [origins] Tile grid origins,\n * i.e. where the `x` and `y` axes meet (`[z, 0, 0]`), for each zoom level. If\n * given, the array length should match the length of the `resolutions` array, i.e.\n * each resolution can have a different origin. Tile coordinates increase left to\n * right and downwards. If not specified, `extent` or `origin` must be provided.\n * @property {!Array} resolutions Resolutions. The array index of each\n * resolution needs to match the zoom level. This means that even if a `minZoom`\n * is configured, the resolutions array will have a length of `maxZoom + 1`\n * @property {!Array} matrixIds matrix IDs. The length of this array needs\n * to match the length of the `resolutions` array.\n * @property {Array} [sizes] Number of tile rows and columns\n * of the grid for each zoom level. The values here are the `TileMatrixWidth` and\n * `TileMatrixHeight` advertised in the GetCapabilities response of the WMTS, and\n * define each zoom level's extent together with the `origin` or `origins`.\n * A grid `extent` can be configured in addition, and will further limit the extent for\n * which tile requests are made by sources. If the bottom-left corner of\n * an extent is used as `origin` or `origins`, then the `y` value must be\n * negative because OpenLayers tile coordinates use the top left as the origin.\n * @property {number|import(\"../size.js\").Size} [tileSize] Tile size.\n * @property {Array} [tileSizes] Tile sizes. The length of\n * this array needs to match the length of the `resolutions` array.\n */\n\n/**\n * @classdesc\n * Set the grid pattern for sources accessing WMTS tiled-image servers.\n * @api\n */\nclass WMTSTileGrid extends TileGrid {\n /**\n * @param {Options} options WMTS options.\n */\n constructor(options) {\n super({\n extent: options.extent,\n origin: options.origin,\n origins: options.origins,\n resolutions: options.resolutions,\n tileSize: options.tileSize,\n tileSizes: options.tileSizes,\n sizes: options.sizes,\n });\n\n /**\n * @private\n * @type {!Array}\n */\n this.matrixIds_ = options.matrixIds;\n }\n\n /**\n * @param {number} z Z.\n * @return {string} MatrixId..\n */\n getMatrixId(z) {\n return this.matrixIds_[z];\n }\n\n /**\n * Get the list of matrix identifiers.\n * @return {Array} MatrixIds.\n * @api\n */\n getMatrixIds() {\n return this.matrixIds_;\n }\n}\n\nexport default WMTSTileGrid;\n\n/**\n * Create a tile grid from a WMTS capabilities matrix set and an\n * optional TileMatrixSetLimits.\n * @param {Object} matrixSet An object representing a matrixSet in the\n * capabilities document.\n * @param {import(\"../extent.js\").Extent} [extent] An optional extent to restrict the tile\n * ranges the server provides.\n * @param {Array} [matrixLimits] An optional object representing\n * the available matrices for tileGrid.\n * @return {WMTSTileGrid} WMTS tileGrid instance.\n * @api\n */\nexport function createFromCapabilitiesMatrixSet(\n matrixSet,\n extent,\n matrixLimits,\n) {\n /** @type {!Array} */\n const resolutions = [];\n /** @type {!Array} */\n const matrixIds = [];\n /** @type {!Array} */\n const origins = [];\n /** @type {!Array} */\n const tileSizes = [];\n /** @type {!Array} */\n const sizes = [];\n\n matrixLimits = matrixLimits !== undefined ? matrixLimits : [];\n\n const supportedCRSPropName = 'SupportedCRS';\n const matrixIdsPropName = 'TileMatrix';\n const identifierPropName = 'Identifier';\n const scaleDenominatorPropName = 'ScaleDenominator';\n const topLeftCornerPropName = 'TopLeftCorner';\n const tileWidthPropName = 'TileWidth';\n const tileHeightPropName = 'TileHeight';\n\n const code = matrixSet[supportedCRSPropName];\n const projection = getProjection(code);\n const metersPerUnit = projection.getMetersPerUnit();\n // swap origin x and y coordinates if axis orientation is lat/long\n const switchOriginXY = projection.getAxisOrientation().substr(0, 2) == 'ne';\n\n matrixSet[matrixIdsPropName].sort(function (a, b) {\n return b[scaleDenominatorPropName] - a[scaleDenominatorPropName];\n });\n\n matrixSet[matrixIdsPropName].forEach(function (elt) {\n let matrixAvailable;\n // use of matrixLimits to filter TileMatrices from GetCapabilities\n // TileMatrixSet from unavailable matrix levels.\n if (matrixLimits.length > 0) {\n matrixAvailable = matrixLimits.find(function (elt_ml) {\n if (elt[identifierPropName] == elt_ml[matrixIdsPropName]) {\n return true;\n }\n // Fallback for tileMatrix identifiers that don't get prefixed\n // by their tileMatrixSet identifiers.\n if (!elt[identifierPropName].includes(':')) {\n return (\n matrixSet[identifierPropName] + ':' + elt[identifierPropName] ===\n elt_ml[matrixIdsPropName]\n );\n }\n return false;\n });\n } else {\n matrixAvailable = true;\n }\n\n if (matrixAvailable) {\n matrixIds.push(elt[identifierPropName]);\n const resolution =\n (elt[scaleDenominatorPropName] * 0.28e-3) / metersPerUnit;\n const tileWidth = elt[tileWidthPropName];\n const tileHeight = elt[tileHeightPropName];\n if (switchOriginXY) {\n origins.push([\n elt[topLeftCornerPropName][1],\n elt[topLeftCornerPropName][0],\n ]);\n } else {\n origins.push(elt[topLeftCornerPropName]);\n }\n resolutions.push(resolution);\n tileSizes.push(\n tileWidth == tileHeight ? tileWidth : [tileWidth, tileHeight],\n );\n sizes.push([elt['MatrixWidth'], elt['MatrixHeight']]);\n }\n });\n\n return new WMTSTileGrid({\n extent: extent,\n origins: origins,\n resolutions: resolutions,\n matrixIds: matrixIds,\n tileSizes: tileSizes,\n sizes: sizes,\n });\n}\n","/**\n * @module ol/source/WMTS\n */\n\nimport TileImage from './TileImage.js';\nimport {appendParams} from '../uri.js';\nimport {containsExtent} from '../extent.js';\nimport {createFromCapabilitiesMatrixSet} from '../tilegrid/WMTS.js';\nimport {createFromTileUrlFunctions, expandUrl} from '../tileurlfunction.js';\nimport {equivalent, get as getProjection, transformExtent} from '../proj.js';\n\n/**\n * Request encoding. One of 'KVP', 'REST'.\n * @typedef {'KVP' | 'REST'} RequestEncoding\n */\n\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.\n * @property {null|string} [crossOrigin] The `crossOrigin` attribute for loaded images. Note that\n * you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.\n * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,\n * linear interpolation is used when resampling. Set to false to use the nearest neighbor instead.\n * @property {import(\"../tilegrid/WMTS.js\").default} tileGrid Tile grid.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection. Default is the view projection.\n * @property {number} [reprojectionErrorThreshold=0.5] Maximum allowed reprojection error (in pixels).\n * Higher values can increase reprojection performance, but decrease precision.\n * @property {RequestEncoding} [requestEncoding='KVP'] Request encoding.\n * @property {string} layer Layer name as advertised in the WMTS capabilities.\n * @property {string} style Style name as advertised in the WMTS capabilities.\n * @property {typeof import(\"../ImageTile.js\").default} [tileClass] Class used to instantiate image tiles. Default is {@link module:ol/ImageTile~ImageTile}.\n * @property {number} [tilePixelRatio=1] The pixel ratio used by the tile service.\n * For example, if the tile service advertizes 256px by 256px tiles but actually sends 512px\n * by 512px images (for retina/hidpi devices) then `tilePixelRatio`\n * should be set to `2`.\n * @property {string} [format='image/jpeg'] Image format. Only used when `requestEncoding` is `'KVP'`.\n * @property {string} [version='1.0.0'] WMTS version.\n * @property {string} matrixSet Matrix set.\n * @property {!Object} [dimensions] Additional \"dimensions\" for tile requests.\n * This is an object with properties named like the advertised WMTS dimensions.\n * @property {string} [url] A URL for the service.\n * For the RESTful request encoding, this is a URL\n * template. For KVP encoding, it is normal URL. A `{?-?}` template pattern,\n * for example `subdomain{a-f}.domain.com`, may be used instead of defining\n * each one separately in the `urls` option.\n * @property {import(\"../Tile.js\").LoadFunction} [tileLoadFunction] Optional function to load a tile given a URL. The default is\n * ```js\n * function(imageTile, src) {\n * imageTile.getImage().src = src;\n * };\n * ```\n * @property {Array} [urls] An array of URLs.\n * Requests will be distributed among the URLs in this array.\n * @property {boolean} [wrapX=false] Whether to wrap the world horizontally.\n * @property {number} [transition] Duration of the opacity transition for rendering.\n * To disable the opacity transition, pass `transition: 0`.\n * @property {number|import(\"../array.js\").NearestDirectionFunction} [zDirection=0]\n * Choose whether to use tiles with a higher or lower zoom level when between integer\n * zoom levels. See {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution}.\n */\n\n/**\n * @classdesc\n * Layer source for tile data from WMTS servers.\n * @api\n */\nclass WMTS extends TileImage {\n /**\n * @param {Options} options WMTS options.\n */\n constructor(options) {\n // TODO: add support for TileMatrixLimits\n\n const requestEncoding =\n options.requestEncoding !== undefined ? options.requestEncoding : 'KVP';\n\n // FIXME: should we create a default tileGrid?\n // we could issue a getCapabilities xhr to retrieve missing configuration\n const tileGrid = options.tileGrid;\n\n let urls = options.urls;\n if (urls === undefined && options.url !== undefined) {\n urls = expandUrl(options.url);\n }\n\n super({\n attributions: options.attributions,\n attributionsCollapsible: options.attributionsCollapsible,\n cacheSize: options.cacheSize,\n crossOrigin: options.crossOrigin,\n interpolate: options.interpolate,\n projection: options.projection,\n reprojectionErrorThreshold: options.reprojectionErrorThreshold,\n tileClass: options.tileClass,\n tileGrid: tileGrid,\n tileLoadFunction: options.tileLoadFunction,\n tilePixelRatio: options.tilePixelRatio,\n urls: urls,\n wrapX: options.wrapX !== undefined ? options.wrapX : false,\n transition: options.transition,\n zDirection: options.zDirection,\n });\n\n /**\n * @private\n * @type {string}\n */\n this.version_ = options.version !== undefined ? options.version : '1.0.0';\n\n /**\n * @private\n * @type {string}\n */\n this.format_ = options.format !== undefined ? options.format : 'image/jpeg';\n\n /**\n * @private\n * @type {!Object}\n */\n this.dimensions_ =\n options.dimensions !== undefined ? options.dimensions : {};\n\n /**\n * @private\n * @type {string}\n */\n this.layer_ = options.layer;\n\n /**\n * @private\n * @type {string}\n */\n this.matrixSet_ = options.matrixSet;\n\n /**\n * @private\n * @type {string}\n */\n this.style_ = options.style;\n\n // FIXME: should we guess this requestEncoding from options.url(s)\n // structure? that would mean KVP only if a template is not provided.\n\n /**\n * @private\n * @type {RequestEncoding}\n */\n this.requestEncoding_ = requestEncoding;\n\n this.setKey(this.getKeyForDimensions_());\n\n if (urls && urls.length > 0) {\n this.tileUrlFunction = createFromTileUrlFunctions(\n urls.map(this.createFromWMTSTemplate.bind(this)),\n );\n }\n }\n\n /**\n * Set the URLs to use for requests.\n * URLs may contain OGC conform URL Template Variables: {TileMatrix}, {TileRow}, {TileCol}.\n * @param {Array} urls URLs.\n */\n setUrls(urls) {\n this.urls = urls;\n const key = urls.join('\\n');\n this.setTileUrlFunction(\n createFromTileUrlFunctions(\n urls.map(this.createFromWMTSTemplate.bind(this)),\n ),\n key,\n );\n }\n\n /**\n * Get the dimensions, i.e. those passed to the constructor through the\n * \"dimensions\" option, and possibly updated using the updateDimensions\n * method.\n * @return {!Object} Dimensions.\n * @api\n */\n getDimensions() {\n return this.dimensions_;\n }\n\n /**\n * Return the image format of the WMTS source.\n * @return {string} Format.\n * @api\n */\n getFormat() {\n return this.format_;\n }\n\n /**\n * Return the layer of the WMTS source.\n * @return {string} Layer.\n * @api\n */\n getLayer() {\n return this.layer_;\n }\n\n /**\n * Return the matrix set of the WMTS source.\n * @return {string} MatrixSet.\n * @api\n */\n getMatrixSet() {\n return this.matrixSet_;\n }\n\n /**\n * Return the request encoding, either \"KVP\" or \"REST\".\n * @return {RequestEncoding} Request encoding.\n * @api\n */\n getRequestEncoding() {\n return this.requestEncoding_;\n }\n\n /**\n * Return the style of the WMTS source.\n * @return {string} Style.\n * @api\n */\n getStyle() {\n return this.style_;\n }\n\n /**\n * Return the version of the WMTS source.\n * @return {string} Version.\n * @api\n */\n getVersion() {\n return this.version_;\n }\n\n /**\n * @private\n * @return {string} The key for the current dimensions.\n */\n getKeyForDimensions_() {\n const res = this.urls ? this.urls.slice(0) : [];\n for (const key in this.dimensions_) {\n res.push(key + '-' + this.dimensions_[key]);\n }\n return res.join('/');\n }\n\n /**\n * Update the dimensions.\n * @param {Object} dimensions Dimensions.\n * @api\n */\n updateDimensions(dimensions) {\n Object.assign(this.dimensions_, dimensions);\n this.setKey(this.getKeyForDimensions_());\n }\n\n /**\n * @param {string} template Template.\n * @return {import(\"../Tile.js\").UrlFunction} Tile URL function.\n */\n createFromWMTSTemplate(template) {\n const requestEncoding = this.requestEncoding_;\n\n // context property names are lower case to allow for a case insensitive\n // replacement as some services use different naming conventions\n const context = {\n 'layer': this.layer_,\n 'style': this.style_,\n 'tilematrixset': this.matrixSet_,\n };\n\n if (requestEncoding == 'KVP') {\n Object.assign(context, {\n 'Service': 'WMTS',\n 'Request': 'GetTile',\n 'Version': this.version_,\n 'Format': this.format_,\n });\n }\n\n // TODO: we may want to create our own appendParams function so that params\n // order conforms to wmts spec guidance, and so that we can avoid to escape\n // special template params\n\n template =\n requestEncoding == 'KVP'\n ? appendParams(template, context)\n : template.replace(/\\{(\\w+?)\\}/g, function (m, p) {\n return p.toLowerCase() in context ? context[p.toLowerCase()] : m;\n });\n\n const tileGrid = /** @type {import(\"../tilegrid/WMTS.js\").default} */ (\n this.tileGrid\n );\n const dimensions = this.dimensions_;\n\n return (\n /**\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n function (tileCoord, pixelRatio, projection) {\n if (!tileCoord) {\n return undefined;\n }\n const localContext = {\n 'TileMatrix': tileGrid.getMatrixId(tileCoord[0]),\n 'TileCol': tileCoord[1],\n 'TileRow': tileCoord[2],\n };\n Object.assign(localContext, dimensions);\n let url = template;\n if (requestEncoding == 'KVP') {\n url = appendParams(url, localContext);\n } else {\n url = url.replace(/\\{(\\w+?)\\}/g, function (m, p) {\n return localContext[p];\n });\n }\n return url;\n }\n );\n }\n}\n\nexport default WMTS;\n\n/**\n * Generate source options from a capabilities object.\n * @param {Object} wmtsCap An object representing the capabilities document.\n * @param {!Object} config Configuration properties for the layer. Defaults for\n * the layer will apply if not provided.\n *\n * Required config properties:\n * - layer - {string} The layer identifier.\n *\n * Optional config properties:\n * - matrixSet - {string} The matrix set identifier, required if there is\n * more than one matrix set in the layer capabilities.\n * - projection - {string} The desired CRS when no matrixSet is specified.\n * eg: \"EPSG:3857\". If the desired projection is not available,\n * an error is thrown.\n * - requestEncoding - {string} url encoding format for the layer. Default is\n * the first tile url format found in the GetCapabilities response.\n * - style - {string} The name of the style\n * - format - {string} Image format for the layer. Default is the first\n * format returned in the GetCapabilities response.\n * - crossOrigin - {string|null|undefined} Cross origin. Default is `undefined`.\n * @return {Options|null} WMTS source options object or `null` if the layer was not found.\n * @api\n */\nexport function optionsFromCapabilities(wmtsCap, config) {\n const layers = wmtsCap['Contents']['Layer'];\n const l = layers?.find(function (elt) {\n return elt['Identifier'] == config['layer'];\n });\n if (!l) {\n return null;\n }\n const tileMatrixSets = wmtsCap['Contents']['TileMatrixSet'];\n let idx;\n if (l['TileMatrixSetLink'].length > 1) {\n if ('projection' in config) {\n idx = l['TileMatrixSetLink'].findIndex(function (elt) {\n const tileMatrixSet = tileMatrixSets.find(function (el) {\n return el['Identifier'] == elt['TileMatrixSet'];\n });\n const supportedCRS = tileMatrixSet['SupportedCRS'];\n const proj1 = getProjection(supportedCRS);\n const proj2 = getProjection(config['projection']);\n if (proj1 && proj2) {\n return equivalent(proj1, proj2);\n }\n return supportedCRS == config['projection'];\n });\n } else {\n idx = l['TileMatrixSetLink'].findIndex(function (elt) {\n return elt['TileMatrixSet'] == config['matrixSet'];\n });\n }\n } else {\n idx = 0;\n }\n if (idx < 0) {\n idx = 0;\n }\n const matrixSet =\n /** @type {string} */\n (l['TileMatrixSetLink'][idx]['TileMatrixSet']);\n const matrixLimits =\n /** @type {Array} */\n (l['TileMatrixSetLink'][idx]['TileMatrixSetLimits']);\n\n let format = /** @type {string} */ (l['Format'][0]);\n if ('format' in config) {\n format = config['format'];\n }\n idx = l['Style'].findIndex(function (elt) {\n if ('style' in config) {\n return elt['Title'] == config['style'];\n }\n return elt['isDefault'];\n });\n if (idx < 0) {\n idx = 0;\n }\n const style = /** @type {string} */ (l['Style'][idx]['Identifier']);\n\n const dimensions = {};\n if ('Dimension' in l) {\n l['Dimension'].forEach(function (elt, index, array) {\n const key = elt['Identifier'];\n let value = elt['Default'];\n if (value === undefined) {\n value = elt['Value'][0];\n }\n dimensions[key] = value;\n });\n }\n\n const matrixSets = wmtsCap['Contents']['TileMatrixSet'];\n const matrixSetObj = matrixSets.find(function (elt) {\n return elt['Identifier'] == matrixSet;\n });\n\n let projection;\n const code = matrixSetObj['SupportedCRS'];\n if (code) {\n projection = getProjection(code);\n }\n if ('projection' in config) {\n const projConfig = getProjection(config['projection']);\n if (projConfig) {\n if (!projection || equivalent(projConfig, projection)) {\n projection = projConfig;\n }\n }\n }\n\n let wrapX = false;\n const switchXY = projection.getAxisOrientation().substr(0, 2) == 'ne';\n\n let matrix = matrixSetObj.TileMatrix[0];\n\n // create default matrixLimit\n let selectedMatrixLimit = {\n MinTileCol: 0,\n MinTileRow: 0,\n // subtract one to end up at tile top left\n MaxTileCol: matrix.MatrixWidth - 1,\n MaxTileRow: matrix.MatrixHeight - 1,\n };\n\n //in case of matrix limits, use matrix limits to calculate extent\n if (matrixLimits) {\n selectedMatrixLimit = matrixLimits[matrixLimits.length - 1];\n const m = matrixSetObj.TileMatrix.find(\n (tileMatrixValue) =>\n tileMatrixValue.Identifier === selectedMatrixLimit.TileMatrix ||\n matrixSetObj.Identifier + ':' + tileMatrixValue.Identifier ===\n selectedMatrixLimit.TileMatrix,\n );\n if (m) {\n matrix = m;\n }\n }\n\n const resolution =\n (matrix.ScaleDenominator * 0.00028) / projection.getMetersPerUnit(); // WMTS 1.0.0: standardized rendering pixel size\n const origin = switchXY\n ? [matrix.TopLeftCorner[1], matrix.TopLeftCorner[0]]\n : matrix.TopLeftCorner;\n const tileSpanX = matrix.TileWidth * resolution;\n const tileSpanY = matrix.TileHeight * resolution;\n let matrixSetExtent = matrixSetObj['BoundingBox'];\n if (matrixSetExtent && switchXY) {\n matrixSetExtent = [\n matrixSetExtent[1],\n matrixSetExtent[0],\n matrixSetExtent[3],\n matrixSetExtent[2],\n ];\n }\n let extent = [\n origin[0] + tileSpanX * selectedMatrixLimit.MinTileCol,\n // add one to get proper bottom/right coordinate\n origin[1] - tileSpanY * (1 + selectedMatrixLimit.MaxTileRow),\n origin[0] + tileSpanX * (1 + selectedMatrixLimit.MaxTileCol),\n origin[1] - tileSpanY * selectedMatrixLimit.MinTileRow,\n ];\n\n if (\n matrixSetExtent !== undefined &&\n !containsExtent(matrixSetExtent, extent)\n ) {\n const wgs84BoundingBox = l['WGS84BoundingBox'];\n const wgs84ProjectionExtent = getProjection('EPSG:4326').getExtent();\n extent = matrixSetExtent;\n if (wgs84BoundingBox) {\n wrapX =\n wgs84BoundingBox[0] === wgs84ProjectionExtent[0] &&\n wgs84BoundingBox[2] === wgs84ProjectionExtent[2];\n } else {\n const wgs84MatrixSetExtent = transformExtent(\n matrixSetExtent,\n matrixSetObj['SupportedCRS'],\n 'EPSG:4326',\n );\n // Ignore slight deviation from the correct x limits\n wrapX =\n wgs84MatrixSetExtent[0] - 1e-10 <= wgs84ProjectionExtent[0] &&\n wgs84MatrixSetExtent[2] + 1e-10 >= wgs84ProjectionExtent[2];\n }\n }\n\n const tileGrid = createFromCapabilitiesMatrixSet(\n matrixSetObj,\n extent,\n matrixLimits,\n );\n\n /** @type {!Array} */\n const urls = [];\n let requestEncoding = config['requestEncoding'];\n requestEncoding = requestEncoding !== undefined ? requestEncoding : '';\n\n if (\n 'OperationsMetadata' in wmtsCap &&\n 'GetTile' in wmtsCap['OperationsMetadata']\n ) {\n const gets = wmtsCap['OperationsMetadata']['GetTile']['DCP']['HTTP']['Get'];\n\n for (let i = 0, ii = gets.length; i < ii; ++i) {\n if (gets[i]['Constraint']) {\n const constraint = gets[i]['Constraint'].find(function (element) {\n return element['name'] == 'GetEncoding';\n });\n const encodings = constraint['AllowedValues']['Value'];\n\n if (requestEncoding === '') {\n // requestEncoding not provided, use the first encoding from the list\n requestEncoding = encodings[0];\n }\n if (requestEncoding === 'KVP') {\n if (encodings.includes('KVP')) {\n urls.push(/** @type {string} */ (gets[i]['href']));\n }\n } else {\n break;\n }\n } else if (gets[i]['href']) {\n requestEncoding = 'KVP';\n urls.push(/** @type {string} */ (gets[i]['href']));\n }\n }\n }\n if (urls.length === 0) {\n requestEncoding = 'REST';\n l['ResourceURL'].forEach(function (element) {\n if (element['resourceType'] === 'tile') {\n format = element['format'];\n urls.push(/** @type {string} */ (element['template']));\n }\n });\n }\n\n return {\n urls: urls,\n layer: config['layer'],\n matrixSet: matrixSet,\n format: format,\n projection: projection,\n requestEncoding: requestEncoding,\n tileGrid: tileGrid,\n style: style,\n dimensions: dimensions,\n wrapX: wrapX,\n crossOrigin: config['crossOrigin'],\n };\n}\n","/*eslint no-constant-condition: [\"error\", { \"checkLoops\": false }]*/\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_control_Control from 'ol/control/Control.js'\r\nimport ol_ext_element from '../util/element.js'\r\n\r\n/** Timeline control\r\n *\r\n * @constructor\r\n * @extends {ol.control.Control}\r\n * @fires select\r\n * @fires scroll\r\n * @fires collapse\r\n * @param {Object=} options Control options.\r\n *\t@param {String} options.className class of the control\r\n *\t@param {Array} options.features Features to show in the timeline\r\n *\t@param {ol.SourceImageOptions.vector} options.source class of the control\r\n *\t@param {Number} options.interval time interval length in ms or a text with a format d, h, mn, s (31 days = '31d'), default none\r\n *\t@param {String} options.maxWidth width of the time line in px, default 2000px\r\n *\t@param {String} options.minDate minimum date \r\n *\t@param {String} options.maxDate maximum date \r\n *\t@param {Number} options.minZoom Minimum zoom for the line, default .2\r\n *\t@param {Number} options.maxZoom Maximum zoom for the line, default 4\r\n *\t@param {boolean} options.zoomButton Are zoom buttons avaliable, default false\r\n *\t@param {function} options.getHTML a function that takes a feature and returns the html to display\r\n *\t@param {function} options.getFeatureDate a function that takes a feature and returns its date, default the date propertie\r\n *\t@param {function} options.endFeatureDate a function that takes a feature and returns its end date, default no end date\r\n *\t@param {String} options.graduation day|month to show month or day graduation, default show only years\r\n *\t@param {String} options.scrollTimeout Time in milliseconds to get a scroll event, default 15ms\r\n */\r\nvar ol_control_Timeline = class olcontrolTimeline extends ol_control_Control {\r\n constructor(options) {\r\n\r\n var element = ol_ext_element.create('DIV', {\r\n className: (options.className || '') + ' ol-timeline'\r\n + (options.target ? '' : ' ol-unselectable ol-control')\r\n + (options.zoomButton ? ' ol-hasbutton' : '')\r\n });\r\n\r\n // Initialize\r\n super({\r\n element: element,\r\n target: options.target\r\n });\r\n\r\n // Scroll div\r\n this._scrollDiv = ol_ext_element.create('DIV', {\r\n className: 'ol-scroll',\r\n parent: this.element\r\n });\r\n\r\n // Add a button bar\r\n this._buttons = ol_ext_element.create('DIV', {\r\n className: 'ol-buttons',\r\n parent: this.element\r\n });\r\n // Zoom buttons\r\n if (options.zoomButton) {\r\n // Zoom in\r\n this.addButton({\r\n className: 'ol-zoom-in',\r\n handleClick: function () {\r\n var zoom = this.get('zoom');\r\n if (zoom >= 1) {\r\n zoom++;\r\n } else {\r\n zoom = Math.min(1, zoom + 0.1);\r\n }\r\n zoom = Math.round(zoom * 100) / 100;\r\n this.refresh(zoom);\r\n }.bind(this)\r\n });\r\n // Zoom out\r\n this.addButton({\r\n className: 'ol-zoom-out',\r\n handleClick: function () {\r\n var zoom = this.get('zoom');\r\n if (zoom > 1) {\r\n zoom--;\r\n } else {\r\n zoom -= 0.1;\r\n }\r\n zoom = Math.round(zoom * 100) / 100;\r\n this.refresh(zoom);\r\n }.bind(this)\r\n });\r\n }\r\n\r\n // Draw center date\r\n this._intervalDiv = ol_ext_element.create('DIV', {\r\n className: 'ol-center-date',\r\n parent: this.element\r\n });\r\n\r\n // Remove selection\r\n this.element.addEventListener('mouseover', function () {\r\n if (this._select)\r\n this._select.elt.classList.remove('ol-select');\r\n }.bind(this));\r\n\r\n // Trigger scroll event\r\n var scrollListener = null;\r\n this._scrollDiv.addEventListener('scroll', function () {\r\n this._setScrollLeft();\r\n if (scrollListener) {\r\n clearTimeout(scrollListener);\r\n scrollListener = null;\r\n }\r\n scrollListener = setTimeout(function () {\r\n this.dispatchEvent({\r\n type: 'scroll',\r\n date: this.getDate(),\r\n dateStart: this.getDate('start'),\r\n dateEnd: this.getDate('end')\r\n });\r\n }.bind(this), options.scrollTimeout || 15);\r\n }.bind(this));\r\n // Magic to give \"live\" scroll events on touch devices\r\n // this._scrollDiv.addEventListener('gesturechange', function() {});\r\n // Scroll timeline\r\n ol_ext_element.scrollDiv(this._scrollDiv, {\r\n onmove: function (b) {\r\n // Prevent selection on moving\r\n this._moving = b;\r\n }.bind(this)\r\n });\r\n\r\n this._tline = [];\r\n\r\n // Parameters\r\n this._scrollLeft = 0;\r\n this.set('maxWidth', options.maxWidth || 2000);\r\n this.set('minDate', options.minDate || Infinity);\r\n this.set('maxDate', options.maxDate || -Infinity);\r\n this.set('graduation', options.graduation);\r\n this.set('minZoom', options.minZoom || .2);\r\n this.set('maxZoom', options.maxZoom || 4);\r\n this.setInterval(options.interval);\r\n if (options.getHTML)\r\n this._getHTML = options.getHTML;\r\n if (options.getFeatureDate)\r\n this._getFeatureDate = options.getFeatureDate;\r\n if (options.endFeatureDate)\r\n this._endFeatureDate = options.endFeatureDate;\r\n\r\n // Feature source \r\n this.setFeatures(options.features || options.source, options.zoom);\r\n }\r\n /**\r\n * Set the map instance the control is associated with\r\n * and add interaction attached to it to this map.\r\n * @param {_ol_Map_} map The map instance.\r\n */\r\n setMap(map) {\r\n super.setMap(map);\r\n this.refresh(this.get('zoom') || 1, true);\r\n }\r\n /** Add a button on the timeline\r\n * @param {*} button\r\n * @param {string} button.className\r\n * @param {title} button.className\r\n * @param {Element|string} button.html Content of the element\r\n * @param {function} button.click a function called when the button is clicked\r\n */\r\n addButton(button) {\r\n this.element.classList.add('ol-hasbutton');\r\n ol_ext_element.create('BUTTON', {\r\n className: button.className || undefined,\r\n title: button.title,\r\n html: button.html,\r\n click: button.handleClick,\r\n parent: this._buttons\r\n });\r\n }\r\n /** Set an interval\r\n * @param {number|string} length the interval length in ms or a farmatted text ie. end with y, 1d, h, mn, s (31 days = '31d'), default none\r\n */\r\n setInterval(length) {\r\n if (typeof (length) === 'string') {\r\n if (/s$/.test(length)) {\r\n length = parseFloat(length) * 1000;\r\n } else if (/mn$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 60;\r\n } else if (/h$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 3600;\r\n } else if (/d$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 3600 * 24;\r\n } else if (/y$/.test(length)) {\r\n length = parseFloat(length) * 1000 * 3600 * 24 * 365;\r\n } else {\r\n length = 0;\r\n }\r\n }\r\n this.set('interval', length || 0);\r\n if (length)\r\n this.element.classList.add('ol-interval');\r\n else\r\n this.element.classList.remove('ol-interval');\r\n this.refresh(this.get('zoom'));\r\n }\r\n /** Default html to show in the line\r\n * @param {ol.Feature} feature\r\n * @return {DOMElement|string}\r\n * @private\r\n */\r\n _getHTML(feature) {\r\n return feature.get('name') || '';\r\n }\r\n /** Default function to get the date of a feature, returns the date attribute\r\n * @param {ol.Feature} feature\r\n * @return {Data|string}\r\n * @private\r\n */\r\n _getFeatureDate(feature) {\r\n return (feature && feature.get) ? feature.get('date') : null;\r\n }\r\n /** Default function to get the end date of a feature, return undefined\r\n * @param {ol.Feature} feature\r\n * @return {Data|string}\r\n * @private\r\n */\r\n _endFeatureDate( /* feature */) {\r\n return undefined;\r\n }\r\n /** Is the line collapsed\r\n * @return {boolean}\r\n */\r\n isCollapsed() {\r\n return this.element.classList.contains('ol-collapsed');\r\n }\r\n /** Collapse the line\r\n * @param {boolean} b\r\n */\r\n collapse(b) {\r\n if (b)\r\n this.element.classList.add('ol-collapsed');\r\n else\r\n this.element.classList.remove('ol-collapsed');\r\n this.dispatchEvent({ type: 'collapse', collapsed: this.isCollapsed() });\r\n }\r\n /** Collapse the line\r\n */\r\n toggle() {\r\n this.element.classList.toggle('ol-collapsed');\r\n this.dispatchEvent({ type: 'collapse', collapsed: this.isCollapsed() });\r\n }\r\n /** Set the features to display in the timeline\r\n * @param {Array|ol.source.Vector} features An array of features or a vector source\r\n * @param {number} zoom zoom to draw the line default 1\r\n */\r\n setFeatures(features, zoom) {\r\n this._features = this._source = null;\r\n if (features instanceof ol_source_Vector)\r\n this._source = features;\r\n else if (features instanceof Array)\r\n this._features = features;\r\n else\r\n this._features = [];\r\n this.refresh(zoom);\r\n }\r\n /**\r\n * Get features\r\n * @return {Array}\r\n */\r\n getFeatures() {\r\n return this._features || this._source.getFeatures();\r\n }\r\n /**\r\n * Refresh the timeline with new data\r\n * @param {Number} zoom Zoom factor from 0.25 to 10, default 1\r\n */\r\n refresh(zoom, first) {\r\n if (!this.getMap())\r\n return;\r\n if (!zoom)\r\n zoom = this.get('zoom');\r\n zoom = Math.min(this.get('maxZoom'), Math.max(this.get('minZoom'), zoom || 1));\r\n this.set('zoom', zoom);\r\n this._scrollDiv.innerHTML = '';\r\n var features = this.getFeatures();\r\n var d, d2;\r\n\r\n // Get features sorted by date\r\n var tline = this._tline = [];\r\n features.forEach(function (f) {\r\n if (d = this._getFeatureDate(f)) {\r\n if (!(d instanceof Date)) {\r\n d = new Date(d);\r\n }\r\n if (this._endFeatureDate) {\r\n d2 = this._endFeatureDate(f);\r\n if (!(d2 instanceof Date)) {\r\n d2 = new Date(d2);\r\n }\r\n }\r\n if (!isNaN(d)) {\r\n tline.push({\r\n date: d,\r\n end: isNaN(d2) ? null : d2,\r\n feature: f\r\n });\r\n }\r\n }\r\n }.bind(this));\r\n\r\n tline.sort(function (a, b) {\r\n return (a.date < b.date ? -1 : (a.date === b.date ? 0 : 1));\r\n });\r\n\r\n // Draw\r\n var div = ol_ext_element.create('DIV', {\r\n parent: this._scrollDiv\r\n });\r\n\r\n // Calculate width\r\n var min = this._minDate = Math.min(this.get('minDate'), tline.length ? tline[0].date : Infinity);\r\n var max = this._maxDate = Math.max(this.get('maxDate'), tline.length ? tline[tline.length - 1].date : -Infinity);\r\n if (!isFinite(min))\r\n this._minDate = min = new Date();\r\n if (!isFinite(max))\r\n this._maxDate = max = new Date();\r\n var delta = (max - min);\r\n var maxWidth = this.get('maxWidth');\r\n var scale = this._scale = (delta > maxWidth ? maxWidth / delta : 1) * zoom;\r\n // Leave 10px on right\r\n min = this._minDate = this._minDate - 10 / scale;\r\n delta = (max - min) * scale;\r\n ol_ext_element.setStyle(div, {\r\n width: delta,\r\n maxWidth: 'unset'\r\n });\r\n\r\n // Draw time's bar\r\n this._drawTime(div, min, max, scale);\r\n\r\n // Set interval\r\n if (this.get('interval')) {\r\n ol_ext_element.setStyle(this._intervalDiv, { width: this.get('interval') * scale });\r\n } else {\r\n ol_ext_element.setStyle(this._intervalDiv, { width: '' });\r\n }\r\n\r\n // Draw features\r\n var line = [];\r\n var lineHeight = ol_ext_element.getStyle(this._scrollDiv, 'lineHeight');\r\n\r\n // Wrapper\r\n var fdiv = ol_ext_element.create('DIV', {\r\n className: 'ol-features',\r\n parent: div\r\n });\r\n\r\n // Add features on the line\r\n tline.forEach(function (f) {\r\n var d = f.date;\r\n var t = f.elt = ol_ext_element.create('DIV', {\r\n className: 'ol-feature',\r\n style: {\r\n left: Math.round((d - min) * scale),\r\n },\r\n html: this._getHTML(f.feature),\r\n parent: fdiv\r\n });\r\n // Prevent image dragging\r\n var img = t.querySelectorAll('img');\r\n for (var i = 0; i < img.length; i++) {\r\n img[i].ondragstart = function () { return false; };\r\n }\r\n\r\n // Calculate image width\r\n if (f.end) {\r\n ol_ext_element.setStyle(t, {\r\n minWidth: (f.end - d) * scale,\r\n width: (f.end - d) * scale,\r\n maxWidth: 'unset'\r\n });\r\n }\r\n var left = ol_ext_element.getStyle(t, 'left');\r\n // Select on click\r\n t.addEventListener('click', function () {\r\n if (!this._moving) {\r\n this.dispatchEvent({ type: 'select', feature: f.feature });\r\n }\r\n }.bind(this));\r\n\r\n // Find first free Y position\r\n var pos, l;\r\n for (pos = 0; l = line[pos]; pos++) {\r\n if (left > l) {\r\n break;\r\n }\r\n }\r\n line[pos] = left + ol_ext_element.getStyle(t, 'width');\r\n ol_ext_element.setStyle(t, { top: pos * lineHeight });\r\n }.bind(this));\r\n this._nbline = line.length;\r\n\r\n if (first)\r\n this.setDate(this._minDate, { anim: false, position: 'start' });\r\n // Dispatch scroll event\r\n this.dispatchEvent({\r\n type: 'scroll',\r\n date: this.getDate(),\r\n dateStart: this.getDate('start'),\r\n dateEnd: this.getDate('end')\r\n });\r\n }\r\n /** Get offset given a date\r\n * @param {Date} date\r\n * @return {number}\r\n * @private\r\n */\r\n _getOffsetFromDate(date) {\r\n return (date - this._minDate) * this._scale;\r\n }\r\n /** Get date given an offset\r\n * @param {Date} date\r\n * @return {number}\r\n * @private\r\n */\r\n _getDateFromOffset(offset) {\r\n return offset / this._scale + this._minDate;\r\n }\r\n /** Set the current position\r\n * @param {number} scrollLeft current position (undefined when scrolling)\r\n * @returns {number}\r\n * @private\r\n */\r\n _setScrollLeft(scrollLeft) {\r\n this._scrollLeft = scrollLeft;\r\n if (scrollLeft !== undefined) {\r\n this._scrollDiv.scrollLeft = scrollLeft;\r\n }\r\n }\r\n /** Get the current position\r\n * @returns {number}\r\n * @private\r\n */\r\n _getScrollLeft() {\r\n // Unset when scrolling\r\n if (this._scrollLeft === undefined) {\r\n return this._scrollDiv.scrollLeft;\r\n } else {\r\n // St by user\r\n return this._scrollLeft;\r\n }\r\n }\r\n /**\r\n * Draw dates on line\r\n * @private\r\n */\r\n _drawTime(div, min, max, scale) {\r\n // Times div\r\n var tdiv = ol_ext_element.create('DIV', {\r\n className: 'ol-times',\r\n parent: div\r\n });\r\n var d, dt, month, dmonth;\r\n var dx = ol_ext_element.getStyle(tdiv, 'left');\r\n var heigth = ol_ext_element.getStyle(tdiv, 'height');\r\n // Year\r\n var year = (new Date(this._minDate)).getFullYear();\r\n dt = ((new Date(0)).setFullYear(String(year)) - new Date(0).setFullYear(String(year - 1))) * scale;\r\n var dyear = Math.round(2 * heigth / dt) + 1;\r\n while (true) {\r\n d = new Date(0).setFullYear(year);\r\n if (d > this._maxDate)\r\n break;\r\n ol_ext_element.create('DIV', {\r\n className: 'ol-time ol-year',\r\n style: {\r\n left: this._getOffsetFromDate(d) - dx\r\n },\r\n html: year,\r\n parent: tdiv\r\n });\r\n year += dyear;\r\n }\r\n // Month\r\n if (/day|month/.test(this.get('graduation'))) {\r\n dt = ((new Date(0, 0, 1)).setFullYear(String(year)) - new Date(0, 0, 1).setFullYear(String(year - 1))) * scale;\r\n dmonth = Math.max(1, Math.round(12 / Math.round(dt / heigth / 2)));\r\n if (dmonth < 12) {\r\n year = (new Date(this._minDate)).getFullYear();\r\n month = dmonth + 1;\r\n while (true) {\r\n d = new Date(0, 0, 1);\r\n d.setFullYear(year);\r\n d.setMonth(month - 1);\r\n if (d > this._maxDate)\r\n break;\r\n ol_ext_element.create('DIV', {\r\n className: 'ol-time ol-month',\r\n style: {\r\n left: this._getOffsetFromDate(d) - dx\r\n },\r\n html: d.toLocaleDateString(undefined, { month: 'short' }),\r\n parent: tdiv\r\n });\r\n month += dmonth;\r\n if (month > 12) {\r\n year++;\r\n month = dmonth + 1;\r\n }\r\n }\r\n }\r\n }\r\n // Day\r\n if (this.get('graduation') === 'day') {\r\n dt = (new Date(0, 1, 1) - new Date(0, 0, 1)) * scale;\r\n var dday = Math.max(1, Math.round(31 / Math.round(dt / heigth / 2)));\r\n if (dday < 31) {\r\n year = (new Date(this._minDate)).getFullYear();\r\n month = 0;\r\n var day = dday;\r\n while (true) {\r\n d = new Date(0, 0, 1);\r\n d.setFullYear(year);\r\n d.setMonth(month);\r\n d.setDate(day);\r\n if (isNaN(d)) {\r\n month++;\r\n if (month > 12) {\r\n month = 1;\r\n year++;\r\n }\r\n day = dday;\r\n } else {\r\n if (d > this._maxDate)\r\n break;\r\n if (day > 1) {\r\n var offdate = this._getOffsetFromDate(d);\r\n if (this._getOffsetFromDate(new Date(year, month + 1, 1)) - offdate > heigth) {\r\n ol_ext_element.create('DIV', {\r\n className: 'ol-time ol-day',\r\n style: {\r\n left: offdate - dx\r\n },\r\n html: day,\r\n parent: tdiv\r\n });\r\n }\r\n }\r\n year = d.getFullYear();\r\n month = d.getMonth();\r\n day = d.getDate() + dday;\r\n if (day > new Date(year, month + 1, 0).getDate()) {\r\n month++;\r\n day = dday;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /** Center timeline on a date\r\n * @param {Date|String|ol.feature} feature a date or a feature with a date\r\n * @param {Object} options\r\n * @param {boolean} options.anim animate scroll\r\n * @param {string} options.position start, end or middle, default middle\r\n */\r\n setDate(feature, options) {\r\n var date;\r\n options = options || {};\r\n // It's a date\r\n if (feature instanceof Date) {\r\n date = feature;\r\n } else {\r\n // Get date from Feature\r\n if (this.getFeatures().indexOf(feature) >= 0) {\r\n date = this._getFeatureDate(feature);\r\n }\r\n if (date && !(date instanceof Date)) {\r\n date = new Date(date);\r\n }\r\n if (!date || isNaN(date)) {\r\n date = new Date(String(feature));\r\n }\r\n }\r\n if (!isNaN(date)) {\r\n if (options.anim === false)\r\n this._scrollDiv.classList.add('ol-move');\r\n var scrollLeft = this._getOffsetFromDate(date);\r\n if (options.position === 'start') {\r\n scrollLeft += ol_ext_element.outerWidth(this._scrollDiv) / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n } else if (options.position === 'end') {\r\n scrollLeft -= ol_ext_element.outerWidth(this._scrollDiv) / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n }\r\n this._setScrollLeft(scrollLeft);\r\n if (options.anim === false)\r\n this._scrollDiv.classList.remove('ol-move');\r\n if (feature) {\r\n for (var i = 0, f; f = this._tline[i]; i++) {\r\n if (f.feature === feature) {\r\n f.elt.classList.add('ol-select');\r\n this._select = f;\r\n } else {\r\n f.elt.classList.remove('ol-select');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /** Get round date (sticked to mn, hour day or month)\r\n * @param {Date} d\r\n * @param {string} stick sticking option to stick date to: 'mn', 'hour', 'day', 'month', default no stick\r\n * @return {Date}\r\n */\r\n roundDate(d, stick) {\r\n switch (stick) {\r\n case 'mn': {\r\n return new Date(this._roundTo(d, 60 * 1000));\r\n }\r\n case 'hour': {\r\n return new Date(this._roundTo(d, 60 * 60 * 1000));\r\n }\r\n case 'day': {\r\n return new Date(this._roundTo(d, 24 * 60 * 60 * 1000));\r\n }\r\n case 'month': {\r\n d = new Date(this._roundTo(d, 24 * 60 * 60 * 1000));\r\n if (d.getDate() > 15) {\r\n d = new Date(d.setMonth(d.getMonth() + 1));\r\n }\r\n d = d.setDate(1);\r\n return new Date(d);\r\n }\r\n default: return new Date(d);\r\n }\r\n }\r\n /** Get the date of the center\r\n * @param {string} position position to get 'start', 'end' or 'middle', default middle\r\n * @param {string} stick sticking option to stick date to: 'mn', 'hour', 'day', 'month', default no stick\r\n * @return {Date}\r\n */\r\n getDate(position, stick) {\r\n var pos;\r\n if (!stick)\r\n stick = position;\r\n switch (position) {\r\n case 'start': {\r\n if (this.get('interval')) {\r\n pos = -ol_ext_element.getStyle(this._intervalDiv, 'width') / 2 + ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n } else {\r\n pos = -ol_ext_element.outerWidth(this._scrollDiv) / 2 + ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n }\r\n break;\r\n }\r\n case 'end': {\r\n if (this.get('interval')) {\r\n pos = ol_ext_element.getStyle(this._intervalDiv, 'width') / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n } else {\r\n pos = ol_ext_element.outerWidth(this._scrollDiv) / 2 - ol_ext_element.getStyle(this._scrollDiv, 'marginLeft') / 2;\r\n }\r\n break;\r\n }\r\n default: {\r\n pos = 0;\r\n break;\r\n }\r\n }\r\n var d = this._getDateFromOffset(this._getScrollLeft() + pos);\r\n d = this.roundDate(d, stick);\r\n return new Date(d);\r\n }\r\n /** Round number to\r\n * @param {number} d\r\n * @param {number} r\r\n * @return {number}\r\n * @private\r\n */\r\n _roundTo(d, r) {\r\n return Math.round(d / r) * r;\r\n }\r\n /** Get the start date of the control\r\n * @return {Date}\r\n */\r\n getStartDate() {\r\n return new Date(this.get('minDate'));\r\n }\r\n /** Get the end date of the control\r\n * @return {Date}\r\n */\r\n getEndDate() {\r\n return new Date(this.get('maxDate'));\r\n }\r\n}\r\n\r\nexport default ol_control_Timeline","","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!./WebServiceMixin.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!./WebServiceMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./WebServiceMixin.vue?vue&type=script&lang=js\"\nexport * from \"./WebServiceMixin.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","export default class GeoTiffState {\n\n\tconstructor(geotiff) {\n\t\tthis.layer = null;\n\t\tthis.colorMap = geotiff.getColorMap();\n\t\tthis.noData = geotiff.getNoData();\n\t\tthis.bands = geotiff.getBands();\n\t\tthis.defaultChannels = this.bands.slice(0, 3);\n\t\tthis.channels = this.bands.slice(0, 3);\n this.file = geotiff;\n\t}\n\n\tgetBandVar(i) {\n\t\treturn ['band', ['var', `${i}band`]];\n\t}\n\n\tgetFormula(i) {\n\t\tlet min = ['var', `${i}min`];\n\t\tlet max = ['var', `${i}max`];\n\t\tlet x = this.getBandVar(i);\n\t\tlet scale = ['*', ['/', ['-', x, min], ['-', max, min]], 255]; // Linear scaling from min - max to 0 - 255\n\t\treturn ['clamp', scale, 0, 255]; // clamp values in case we get cales < 0 or > 255\n\t}\n\n\tgetNoDataFormula() {\n\t\tlet band = this.getBandVar('alpha');\n\t\t// https://github.com/openlayers/openlayers/issues/13588#issuecomment-1125317573\n\t\t// return ['clamp', band, 0, 1];\n\t\t// return ['/', band, 255];\n\t\treturn ['case', ['==', band, 0], 0, 1];\n\t}\n\n\tsetStyle() {\n\t\tif (!this.layer) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Compute variables\n\t\tlet variables = {};\n\t\tfor(let i in this.channels) {\n\t\t\tlet channel = this.channels[i];\n\t\t\tvariables[`${i}band`] = channel.id;\n\t\t\tvariables[`${i}min`] = channel.min;\n\t\t\tvariables[`${i}max`] = channel.max;\n\t\t}\n\t\tvariables.alphaband = this.bands.length + 1;\n\n\t\t// Create style\n\t\tlet color = [];\n\t\tif (this.colorMap) {\n\t\t\tcolor.push('palette');\n\t\t\tcolor.push(['band', 1]);\n\t\t\tcolor.push(this.colorMap);\n\t\t}\n\t\telse if (this.channels.length === 0) {\n\t\t\treturn null;\n\t\t}\n\t\telse if (this.channels.length === 1) {\n\t\t\tcolor.push('color');\n\t\t\tlet formula = this.getFormula(0);\n\t\t\tcolor.push(formula);\n\t\t\tcolor.push(formula);\n\t\t\tcolor.push(formula);\n\t\t\tif (this.noData.length > 0) {\n\t\t\t\tcolor.push(this.getNoDataFormula());\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tcolor.push('color');\n\t\t\tcolor.push(this.getFormula(0));\n\t\t\tcolor.push(this.getFormula(1));\n\t\t\tcolor.push(this.getFormula(2));\n\t\t\tif (this.noData.length > 0) {\n\t\t\t\tcolor.push(this.getNoDataFormula());\n\t\t\t}\n\t\t}\n\n\t\t// Set style\n\t\tthis.layer.setStyle({variables, color});\n\t}\n\n}\n","import { GeoTIFFImage } from 'geotiff';\n\n// Integrate changes/fixes from https://github.com/geotiffjs/geotiff.js/pull/303 until released/integrated by geotiff.js\nGeoTIFFImage.prototype.getSampleByteSize = function(i) {\n if (!this.fileDirectory.BitsPerSample || this.fileDirectory.BitsPerSample.length === 0) {\n return;\n }\n if (i >= this.fileDirectory.BitsPerSample.length) {\n i = 0;\n }\n return Math.ceil(this.fileDirectory.BitsPerSample[i] / 8);\n};\n\nGeoTIFFImage.prototype.getReaderForSample = function(sampleIndex) {\n const format = this.getSampleFormat(sampleIndex);\n const bitsPerSample = this.getBitsPerSample(sampleIndex);\n switch (format) {\n case 1: // unsigned integer data\n if (bitsPerSample <= 8) {\n return DataView.prototype.getUint8;\n } else if (bitsPerSample <= 16) {\n return DataView.prototype.getUint16;\n } else if (bitsPerSample <= 32) {\n return DataView.prototype.getUint32;\n }\n break;\n case 2: // twos complement signed integer data\n if (bitsPerSample <= 8) {\n return DataView.prototype.getInt8;\n } else if (bitsPerSample <= 16) {\n return DataView.prototype.getInt16;\n } else if (bitsPerSample <= 32) {\n return DataView.prototype.getInt32;\n }\n break;\n case 3:\n switch (bitsPerSample) {\n case 16:\n return function (offset, littleEndian) {\n return getFloat16(this, offset, littleEndian);\n };\n case 32:\n return DataView.prototype.getFloat32;\n case 64:\n return DataView.prototype.getFloat64;\n default:\n break;\n }\n break;\n default:\n break;\n }\n throw Error('Unsupported data format/bitsPerSample');\n};\n\nGeoTIFFImage.prototype.getSampleFormat = function(sampleIndex = 0) {\n if (!this.fileDirectory.SampleFormat || this.fileDirectory.SampleFormat.length === 0) {\n return 1;\n }\n return typeof this.fileDirectory.SampleFormat[sampleIndex] !== 'undefined'\n ? this.fileDirectory.SampleFormat[sampleIndex] : this.fileDirectory.SampleFormat[0];\n};\n\nGeoTIFFImage.prototype.getBitsPerSample = function(sampleIndex = 0) {\n if (!this.fileDirectory.BitsPerSample || this.fileDirectory.BitsPerSample.length === 0) {\n return;\n }\n return typeof this.fileDirectory.BitsPerSample[sampleIndex] !== 'undefined'\n ? this.fileDirectory.BitsPerSample[sampleIndex] : this.fileDirectory.BitsPerSample[0];\n};\n// End of geotiff.js fixes","/**\n * Utilities for parsing literal style objects\n * @module ol/webgl/styleparser\n */\nimport {\n BooleanType,\n ColorType,\n NumberArrayType,\n NumberType,\n SizeType,\n StringType,\n newParsingContext,\n} from '../expr/expression.js';\nimport {ShaderBuilder} from './ShaderBuilder.js';\nimport {\n arrayToGlsl,\n buildExpression,\n getStringNumberEquivalent,\n stringToGlsl,\n uniformNameForVariable,\n} from '../expr/gpu.js';\nimport {asArray} from '../color.js';\n\n/**\n * Recursively parses a style expression and outputs a GLSL-compatible string. Takes in a compilation context that\n * will be read and modified during the parsing operation.\n * @param {import(\"../expr/gpu.js\").CompilationContext} compilationContext Compilation context\n * @param {import(\"../expr/expression.js\").EncodedExpression} value Value\n * @param {number} [expectedType] Expected final type (can be several types combined)\n * @return {string} GLSL-compatible output\n */\nexport function expressionToGlsl(compilationContext, value, expectedType) {\n const parsingContext = newParsingContext();\n parsingContext.style = compilationContext.style;\n return buildExpression(\n value,\n expectedType,\n parsingContext,\n compilationContext,\n );\n}\n\n/**\n * Packs all components of a color into a two-floats array\n * @param {import(\"../color.js\").Color|string} color Color as array of numbers or string\n * @return {Array} Vec2 array containing the color in compressed form\n */\nexport function packColor(color) {\n const array = asArray(color);\n const r = array[0] * 256;\n const g = array[1];\n const b = array[2] * 256;\n const a = Math.round(array[3] * 255);\n return [r + g, b + a];\n}\n\nconst UNPACK_COLOR_FN = `vec4 unpackColor(vec2 packedColor) {\n return fract(packedColor[1] / 256.0) * vec4(\n fract(floor(packedColor[0] / 256.0) / 256.0),\n fract(packedColor[0] / 256.0),\n fract(floor(packedColor[1] / 256.0) / 256.0),\n 1.0\n );\n}`;\n\n/**\n * @param {number} type Value type\n * @return {1|2|3|4} The amount of components for this value\n */\nfunction getGlslSizeFromType(type) {\n if (type === ColorType || type === SizeType) {\n return 2;\n }\n if (type === NumberArrayType) {\n return 4;\n }\n return 1;\n}\n\n/**\n * @param {number} type Value type\n * @return {'float'|'vec2'|'vec3'|'vec4'} The corresponding GLSL type for this value\n */\nfunction getGlslTypeFromType(type) {\n const size = getGlslSizeFromType(type);\n if (size > 1) {\n return /** @type {'vec2'|'vec3'|'vec4'} */ (`vec${size}`);\n }\n return 'float';\n}\n\n/**\n * see https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\n * @param {Object|string} input The hash input, either an object or string\n * @return {string} Hash (if the object cannot be serialized, it is based on `getUid`)\n */\nexport function computeHash(input) {\n const hash = JSON.stringify(input)\n .split('')\n .reduce((prev, curr) => (prev << 5) - prev + curr.charCodeAt(0), 0);\n return (hash >>> 0).toString();\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {'shape-'|'circle-'|'icon-'} prefix Properties prefix\n */\nfunction parseCommonSymbolProperties(style, builder, vertContext, prefix) {\n if (`${prefix}radius` in style && prefix !== 'icon-') {\n let radius = expressionToGlsl(\n vertContext,\n style[`${prefix}radius`],\n NumberType,\n );\n if (`${prefix}radius2` in style) {\n const radius2 = expressionToGlsl(\n vertContext,\n style[`${prefix}radius2`],\n NumberType,\n );\n radius = `max(${radius}, ${radius2})`;\n }\n if (`${prefix}stroke-width` in style) {\n radius = `(${radius} + ${expressionToGlsl(\n vertContext,\n style[`${prefix}stroke-width`],\n NumberType,\n )} * 0.5)`;\n }\n builder.setSymbolSizeExpression(`vec2(${radius} * 2. + 0.5)`); // adding some padding for antialiasing\n }\n if (`${prefix}scale` in style) {\n const scale = expressionToGlsl(\n vertContext,\n style[`${prefix}scale`],\n SizeType,\n );\n builder.setSymbolSizeExpression(\n `${builder.getSymbolSizeExpression()} * ${scale}`,\n );\n }\n if (`${prefix}displacement` in style) {\n builder.setSymbolOffsetExpression(\n expressionToGlsl(\n vertContext,\n style[`${prefix}displacement`],\n NumberArrayType,\n ),\n );\n }\n if (`${prefix}rotation` in style) {\n builder.setSymbolRotationExpression(\n expressionToGlsl(vertContext, style[`${prefix}rotation`], NumberType),\n );\n }\n if (`${prefix}rotate-with-view` in style) {\n builder.setSymbolRotateWithView(!!style[`${prefix}rotate-with-view`]);\n }\n}\n\n/**\n * @param {string} distanceField The distance field expression\n * @param {string|null} fillColor The fill color expression; null if no fill\n * @param {string|null} strokeColor The stroke color expression; null if no stroke\n * @param {string|null} strokeWidth The stroke width expression; null if no stroke\n * @param {string|null} opacity The opacity expression; null if no stroke\n * @return {string} The final color expression, based on the distance field and given params\n */\nfunction getColorFromDistanceField(\n distanceField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n) {\n let color = 'vec4(0.)';\n if (fillColor !== null) {\n color = fillColor;\n }\n if (strokeColor !== null && strokeWidth !== null) {\n const strokeFillRatio = `smoothstep(-${strokeWidth} + 0.63, -${strokeWidth} - 0.58, ${distanceField})`;\n color = `mix(${strokeColor}, ${color}, ${strokeFillRatio})`;\n }\n const shapeOpacity = `(1.0 - smoothstep(-0.63, 0.58, ${distanceField}))`;\n let result = `${color} * ${shapeOpacity}`;\n if (opacity !== null) {\n result = `${result} * ${opacity}`;\n }\n return result;\n}\n\n/**\n * This will parse an image property provided by `-src`\n * The image size expression in GLSL will be returned\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {'icon-'|'fill-pattern-'|'stroke-pattern-'} prefix Property prefix\n * @param {string} textureId A identifier that will be used in the generated uniforms: `sample2d u_texture` and `vec2 u_texture_size`\n * @return {string} The image size expression\n */\nfunction parseImageProperties(style, builder, uniforms, prefix, textureId) {\n const image = new Image();\n let size;\n image.crossOrigin =\n style[`${prefix}cross-origin`] === undefined\n ? 'anonymous'\n : style[`${prefix}cross-origin`];\n image.src = style[`${prefix}src`];\n\n if (image.complete && image.width && image.height) {\n size = arrayToGlsl([image.width, image.height]);\n } else {\n // the size is provided asynchronously using a uniform\n uniforms[`u_texture${textureId}_size`] = () => {\n return image.complete ? [image.width, image.height] : [0, 0];\n };\n builder.addUniform(`vec2 u_texture${textureId}_size`);\n size = `u_texture${textureId}_size`;\n }\n uniforms[`u_texture${textureId}`] = image;\n builder.addUniform(`sampler2D u_texture${textureId}`);\n return size;\n}\n\n/**\n * This will parse an image's offset properties provided by `-offset`, `-offset-origin` and `-size`\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {'icon-'|'fill-pattern-'|'stroke-pattern-'} prefix Property prefix\n * @param {import(\"../expr/gpu.js\").CompilationContext} context Shader compilation context (vertex or fragment)\n * @param {string} imageSize Pixel size of the full image as a GLSL expression\n * @param {string} sampleSize Pixel size of the sample in the image as a GLSL expression\n * @return {string} The offset expression\n */\nfunction parseImageOffsetProperties(\n style,\n prefix,\n context,\n imageSize,\n sampleSize,\n) {\n let offsetExpression = expressionToGlsl(\n context,\n style[`${prefix}offset`],\n NumberArrayType,\n );\n if (`${prefix}offset-origin` in style) {\n switch (style[`${prefix}offset-origin`]) {\n case 'top-right':\n offsetExpression = `vec2(${imageSize}.x, 0.) + ${sampleSize} * vec2(-1., 0.) + ${offsetExpression} * vec2(-1., 1.)`;\n break;\n case 'bottom-left':\n offsetExpression = `vec2(0., ${imageSize}.y) + ${sampleSize} * vec2(0., -1.) + ${offsetExpression} * vec2(1., -1.)`;\n break;\n case 'bottom-right':\n offsetExpression = `${imageSize} - ${sampleSize} - ${offsetExpression}`;\n break;\n default: // pass\n }\n }\n return offsetExpression;\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseCircleProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n // this function takes in screen coordinates in pixels and returns the signed distance field\n // (0 on the boundary, negative inside the circle, positive outside, values in pixels)\n fragContext.functions['circleDistanceField'] =\n `float circleDistanceField(vec2 point, float radius) {\n return length(point) - radius;\n}`;\n\n parseCommonSymbolProperties(style, builder, vertContext, 'circle-');\n\n // OPACITY\n let opacity = null;\n if ('circle-opacity' in style) {\n opacity = expressionToGlsl(\n fragContext,\n style['circle-opacity'],\n NumberType,\n );\n }\n\n // SCALE\n let currentPoint = 'coordsPx';\n if ('circle-scale' in style) {\n const scale = expressionToGlsl(\n fragContext,\n style['circle-scale'],\n SizeType,\n );\n currentPoint = `coordsPx / ${scale}`;\n }\n\n // FILL COLOR\n let fillColor = null;\n if ('circle-fill-color' in style) {\n fillColor = expressionToGlsl(\n fragContext,\n style['circle-fill-color'],\n ColorType,\n );\n }\n\n // STROKE COLOR\n let strokeColor = null;\n if ('circle-stroke-color' in style) {\n strokeColor = expressionToGlsl(\n fragContext,\n style['circle-stroke-color'],\n ColorType,\n );\n }\n\n // RADIUS\n let radius = expressionToGlsl(\n fragContext,\n style['circle-radius'],\n NumberType,\n );\n\n // STROKE WIDTH\n let strokeWidth = null;\n if ('circle-stroke-width' in style) {\n strokeWidth = expressionToGlsl(\n fragContext,\n style['circle-stroke-width'],\n NumberType,\n );\n radius = `(${radius} + ${strokeWidth} * 0.5)`;\n }\n\n // FINAL COLOR\n const distanceField = `circleDistanceField(${currentPoint}, ${radius})`;\n const colorExpression = getColorFromDistanceField(\n distanceField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n );\n builder.setSymbolColorExpression(colorExpression);\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseShapeProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n fragContext.functions['round'] = `float round(float v) {\n return sign(v) * floor(abs(v) + 0.5);\n}`;\n\n // these functions take in screen coordinates in pixels and returns the signed distance field\n // (0 on the boundary, negative inside the polygon, positive outside, values in pixels)\n // inspired by https://github.com/zranger1/PixelblazePatterns/blob/master/Toolkit/sdf2d.md#n-sided-regular-polygon\n fragContext.functions['starDistanceField'] =\n `float starDistanceField(vec2 point, float numPoints, float radius, float radius2, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\n float alpha = TWO_PI / numPoints; // the angle of one sector\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round(beta / alpha) * alpha; // angle in sector\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n vec2 tipToPoint = inSector + vec2(-radius, 0.);\n vec2 edgeNormal = vec2(radius2 * sin(alpha * 0.5), -radius2 * cos(alpha * 0.5) + radius);\n return dot(normalize(edgeNormal), tipToPoint);\n}`;\n fragContext.functions['regularDistanceField'] =\n `float regularDistanceField(vec2 point, float numPoints, float radius, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\n float alpha = TWO_PI / numPoints; // the angle of one sector\n float radiusIn = radius * cos(PI / numPoints);\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round((beta - alpha * 0.5) / alpha) * alpha + alpha * 0.5; // angle in sector from mid\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n return inSector.x - radiusIn;\n}`;\n\n parseCommonSymbolProperties(style, builder, vertContext, 'shape-');\n\n // OPACITY\n let opacity = null;\n if ('shape-opacity' in style) {\n opacity = expressionToGlsl(fragContext, style['shape-opacity'], NumberType);\n }\n\n // SCALE\n let currentPoint = 'coordsPx';\n if ('shape-scale' in style) {\n const scale = expressionToGlsl(fragContext, style['shape-scale'], SizeType);\n currentPoint = `coordsPx / ${scale}`;\n }\n\n // FILL COLOR\n let fillColor = null;\n if ('shape-fill-color' in style) {\n fillColor = expressionToGlsl(\n fragContext,\n style['shape-fill-color'],\n ColorType,\n );\n }\n\n // STROKE COLOR\n let strokeColor = null;\n if ('shape-stroke-color' in style) {\n strokeColor = expressionToGlsl(\n fragContext,\n style['shape-stroke-color'],\n ColorType,\n );\n }\n\n // STROKE WIDTH\n let strokeWidth = null;\n if ('shape-stroke-width' in style) {\n strokeWidth = expressionToGlsl(\n fragContext,\n style['shape-stroke-width'],\n NumberType,\n );\n }\n\n // SHAPE TYPE\n const numPoints = expressionToGlsl(\n fragContext,\n style['shape-points'],\n NumberType,\n );\n let angle = '0.';\n if ('shape-angle' in style) {\n angle = expressionToGlsl(fragContext, style['shape-angle'], NumberType);\n }\n let shapeField;\n let radius = expressionToGlsl(fragContext, style['shape-radius'], NumberType);\n if (strokeWidth !== null) {\n radius = `${radius} + ${strokeWidth} * 0.5`;\n }\n if ('shape-radius2' in style) {\n let radius2 = expressionToGlsl(\n fragContext,\n style['shape-radius2'],\n NumberType,\n );\n if (strokeWidth !== null) {\n radius2 = `${radius2} + ${strokeWidth} * 0.5`;\n }\n shapeField = `starDistanceField(${currentPoint}, ${numPoints}, ${radius}, ${radius2}, ${angle})`;\n } else {\n shapeField = `regularDistanceField(${currentPoint}, ${numPoints}, ${radius}, ${angle})`;\n }\n\n // FINAL COLOR\n const colorExpression = getColorFromDistanceField(\n shapeField,\n fillColor,\n strokeColor,\n strokeWidth,\n opacity,\n );\n builder.setSymbolColorExpression(colorExpression);\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseIconProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n // COLOR\n let color = 'vec4(1.0)';\n if ('icon-color' in style) {\n color = expressionToGlsl(fragContext, style['icon-color'], ColorType);\n }\n\n // OPACITY\n if ('icon-opacity' in style) {\n color = `${color} * ${expressionToGlsl(\n fragContext,\n style['icon-opacity'],\n NumberType,\n )}`;\n }\n\n // IMAGE & SIZE\n const textureId = computeHash(style['icon-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'icon-',\n textureId,\n );\n builder\n .setSymbolColorExpression(\n `${color} * samplePremultiplied(u_texture${textureId}, v_texCoord)`,\n )\n .setSymbolSizeExpression(sizeExpression);\n\n // override size if width/height were specified\n if ('icon-width' in style && 'icon-height' in style) {\n builder.setSymbolSizeExpression(\n `vec2(${expressionToGlsl(\n vertContext,\n style['icon-width'],\n NumberType,\n )}, ${expressionToGlsl(vertContext, style['icon-height'], NumberType)})`,\n );\n }\n\n // tex coord\n if ('icon-offset' in style && 'icon-size' in style) {\n const sampleSize = expressionToGlsl(\n vertContext,\n style['icon-size'],\n NumberArrayType,\n );\n const fullsize = builder.getSymbolSizeExpression();\n builder.setSymbolSizeExpression(sampleSize);\n const offset = parseImageOffsetProperties(\n style,\n 'icon-',\n vertContext,\n 'v_quadSizePx',\n sampleSize,\n );\n builder.setTextureCoordinateExpression(\n `(vec4((${offset}).xyxy) + vec4(0., 0., ${sampleSize})) / (${fullsize}).xyxy`,\n );\n }\n\n parseCommonSymbolProperties(style, builder, vertContext, 'icon-');\n\n if ('icon-anchor' in style) {\n const anchor = expressionToGlsl(\n vertContext,\n style['icon-anchor'],\n NumberArrayType,\n );\n let scale = `1.0`;\n if (`icon-scale` in style) {\n scale = expressionToGlsl(vertContext, style[`icon-scale`], SizeType);\n }\n let shiftPx;\n if (\n style['icon-anchor-x-units'] === 'pixels' &&\n style['icon-anchor-y-units'] === 'pixels'\n ) {\n shiftPx = `${anchor} * ${scale}`;\n } else if (style['icon-anchor-x-units'] === 'pixels') {\n shiftPx = `${anchor} * vec2(vec2(${scale}).x, v_quadSizePx.y)`;\n } else if (style['icon-anchor-y-units'] === 'pixels') {\n shiftPx = `${anchor} * vec2(v_quadSizePx.x, vec2(${scale}).x)`;\n } else {\n shiftPx = `${anchor} * v_quadSizePx`;\n }\n // default origin is top-left\n let offsetPx = `v_quadSizePx * vec2(0.5, -0.5) + ${shiftPx} * vec2(-1., 1.)`;\n if ('icon-anchor-origin' in style) {\n switch (style['icon-anchor-origin']) {\n case 'top-right':\n offsetPx = `v_quadSizePx * -0.5 + ${shiftPx}`;\n break;\n case 'bottom-left':\n offsetPx = `v_quadSizePx * 0.5 - ${shiftPx}`;\n break;\n case 'bottom-right':\n offsetPx = `v_quadSizePx * vec2(-0.5, 0.5) + ${shiftPx} * vec2(1., -1.)`;\n break;\n default: // pass\n }\n }\n builder.setSymbolOffsetExpression(\n `${builder.getSymbolOffsetExpression()} + ${offsetPx}`,\n );\n }\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader Builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseStrokeProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n if ('stroke-color' in style) {\n builder.setStrokeColorExpression(\n expressionToGlsl(fragContext, style['stroke-color'], ColorType),\n );\n }\n if ('stroke-pattern-src' in style) {\n const textureId = computeHash(style['stroke-pattern-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'stroke-pattern-',\n textureId,\n );\n let sampleSizeExpression = sizeExpression;\n let offsetExpression = 'vec2(0.)';\n if ('stroke-pattern-offset' in style && 'stroke-pattern-size' in style) {\n sampleSizeExpression = expressionToGlsl(\n fragContext,\n style[`stroke-pattern-size`],\n NumberArrayType,\n );\n offsetExpression = parseImageOffsetProperties(\n style,\n 'stroke-pattern-',\n fragContext,\n sizeExpression,\n sampleSizeExpression,\n );\n }\n let spacingExpression = '0.';\n if ('stroke-pattern-spacing' in style) {\n spacingExpression = expressionToGlsl(\n fragContext,\n style['stroke-pattern-spacing'],\n NumberType,\n );\n }\n fragContext.functions['sampleStrokePattern'] =\n `vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) {\n float currentLengthScaled = currentLengthPx * sampleSize.y / lineWidth;\n float spacingScaled = spacingPx * sampleSize.y / lineWidth;\n float uCoordPx = mod(currentLengthScaled, (sampleSize.x + spacingScaled));\n // make sure that we're not sampling too close to the borders to avoid interpolation with outside pixels\n uCoordPx = clamp(uCoordPx, 0.5, sampleSize.x - 0.5);\n float vCoordPx = (-currentRadiusRatio * 0.5 + 0.5) * sampleSize.y;\n vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize;\n return samplePremultiplied(texture, texCoord);\n}`;\n const textureName = `u_texture${textureId}`;\n let tintExpression = '1.';\n if ('stroke-color' in style) {\n tintExpression = builder.getStrokeColorExpression();\n }\n builder.setStrokeColorExpression(\n `${tintExpression} * sampleStrokePattern(${textureName}, ${sizeExpression}, ${offsetExpression}, ${sampleSizeExpression}, ${spacingExpression}, currentLengthPx, currentRadiusRatio, v_width)`,\n );\n }\n\n if ('stroke-width' in style) {\n builder.setStrokeWidthExpression(\n expressionToGlsl(vertContext, style['stroke-width'], NumberType),\n );\n }\n\n if ('stroke-offset' in style) {\n builder.setStrokeOffsetExpression(\n expressionToGlsl(vertContext, style['stroke-offset'], NumberType),\n );\n }\n\n if ('stroke-line-cap' in style) {\n builder.setStrokeCapExpression(\n expressionToGlsl(vertContext, style['stroke-line-cap'], StringType),\n );\n }\n\n if ('stroke-line-join' in style) {\n builder.setStrokeJoinExpression(\n expressionToGlsl(vertContext, style['stroke-line-join'], StringType),\n );\n }\n\n if ('stroke-miter-limit' in style) {\n builder.setStrokeMiterLimitExpression(\n expressionToGlsl(vertContext, style['stroke-miter-limit'], NumberType),\n );\n }\n\n if ('stroke-line-dash' in style) {\n fragContext.functions['getSingleDashDistance'] =\n `float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType) {\n float localDistance = mod(distance, dashLengthTotal);\n float distanceSegment = abs(localDistance - dashOffset - dashLength * 0.5) - dashLength * 0.5;\n distanceSegment = min(distanceSegment, dashLengthTotal - localDistance);\n if (capType == ${stringToGlsl('square')}) {\n distanceSegment -= v_width * 0.5;\n } else if (capType == ${stringToGlsl('round')}) {\n distanceSegment = min(distanceSegment, sqrt(distanceSegment * distanceSegment + radius * radius) - v_width * 0.5);\n }\n return distanceSegment;\n}`;\n\n let dashPattern = style['stroke-line-dash'].map((v) =>\n expressionToGlsl(fragContext, v, NumberType),\n );\n // if pattern has odd length, concatenate it with itself to be even\n if (dashPattern.length % 2 === 1) {\n dashPattern = [...dashPattern, ...dashPattern];\n }\n\n let offsetExpression = '0.';\n if ('stroke-line-dash-offset' in style) {\n offsetExpression = expressionToGlsl(\n vertContext,\n style['stroke-line-dash-offset'],\n NumberType,\n );\n }\n\n // define a function for this dash specifically\n const uniqueDashKey = computeHash(style['stroke-line-dash']);\n const dashFunctionName = `dashDistanceField_${uniqueDashKey}`;\n\n const dashLengthsDef = dashPattern.map(\n (v, i) => `float dashLength${i} = ${v};`,\n );\n const totalLengthDef = dashPattern\n .map((v, i) => `dashLength${i}`)\n .join(' + ');\n let currentDashOffset = '0.';\n let distanceExpression = `getSingleDashDistance(distance, radius, ${currentDashOffset}, dashLength0, totalDashLength, capType)`;\n for (let i = 2; i < dashPattern.length; i += 2) {\n currentDashOffset = `${currentDashOffset} + dashLength${\n i - 2\n } + dashLength${i - 1}`;\n distanceExpression = `min(${distanceExpression}, getSingleDashDistance(distance, radius, ${currentDashOffset}, dashLength${i}, totalDashLength, capType))`;\n }\n\n fragContext.functions[dashFunctionName] =\n `float ${dashFunctionName}(float distance, float radius, float capType) {\n ${dashLengthsDef.join('\\n ')}\n float totalDashLength = ${totalLengthDef};\n return ${distanceExpression};\n}`;\n builder.setStrokeDistanceFieldExpression(\n `${dashFunctionName}(currentLengthPx + ${offsetExpression}, currentRadiusPx, capType)`,\n );\n }\n}\n\n/**\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Style\n * @param {ShaderBuilder} builder Shader Builder\n * @param {Object} uniforms Uniforms\n * @param {import(\"../expr/gpu.js\").CompilationContext} vertContext Vertex shader compilation context\n * @param {import(\"../expr/gpu.js\").CompilationContext} fragContext Fragment shader compilation context\n */\nfunction parseFillProperties(\n style,\n builder,\n uniforms,\n vertContext,\n fragContext,\n) {\n if ('fill-color' in style) {\n builder.setFillColorExpression(\n expressionToGlsl(fragContext, style['fill-color'], ColorType),\n );\n }\n if ('fill-pattern-src' in style) {\n const textureId = computeHash(style['fill-pattern-src']);\n const sizeExpression = parseImageProperties(\n style,\n builder,\n uniforms,\n 'fill-pattern-',\n textureId,\n );\n let sampleSizeExpression = sizeExpression;\n let offsetExpression = 'vec2(0.)';\n if ('fill-pattern-offset' in style && 'fill-pattern-size' in style) {\n sampleSizeExpression = expressionToGlsl(\n fragContext,\n style[`fill-pattern-size`],\n NumberArrayType,\n );\n offsetExpression = parseImageOffsetProperties(\n style,\n 'fill-pattern-',\n fragContext,\n sizeExpression,\n sampleSizeExpression,\n );\n }\n fragContext.functions['sampleFillPattern'] =\n `vec4 sampleFillPattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, vec2 pxOrigin, vec2 pxPosition) {\n float scaleRatio = pow(2., mod(u_zoom + 0.5, 1.) - 0.5);\n vec2 pxRelativePos = pxPosition - pxOrigin;\n // rotate the relative position from origin by the current view rotation\n pxRelativePos = vec2(pxRelativePos.x * cos(u_rotation) - pxRelativePos.y * sin(u_rotation), pxRelativePos.x * sin(u_rotation) + pxRelativePos.y * cos(u_rotation));\n // sample position is computed according to the sample offset & size\n vec2 samplePos = mod(pxRelativePos / scaleRatio, sampleSize);\n // also make sure that we're not sampling too close to the borders to avoid interpolation with outside pixels\n samplePos = clamp(samplePos, vec2(0.5), sampleSize - vec2(0.5));\n samplePos.y = sampleSize.y - samplePos.y; // invert y axis so that images appear upright\n return samplePremultiplied(texture, (samplePos + textureOffset) / textureSize);\n}`;\n const textureName = `u_texture${textureId}`;\n let tintExpression = '1.';\n if ('fill-color' in style) {\n tintExpression = builder.getFillColorExpression();\n }\n builder.setFillColorExpression(\n `${tintExpression} * sampleFillPattern(${textureName}, ${sizeExpression}, ${offsetExpression}, ${sampleSizeExpression}, pxOrigin, pxPos)`,\n );\n }\n}\n\n/**\n * @typedef {Object} StyleParseResult\n * @property {ShaderBuilder} builder Shader builder pre-configured according to a given style\n * @property {import(\"../render/webgl/VectorStyleRenderer.js\").UniformDefinitions} uniforms Uniform definitions\n * @property {import(\"../render/webgl/VectorStyleRenderer.js\").AttributeDefinitions} attributes Attribute definitions\n */\n\n/**\n * Parses a {@link import(\"../style/webgl.js\").WebGLStyle} object and returns a {@link ShaderBuilder}\n * object that has been configured according to the given style, as well as `attributes` and `uniforms`\n * arrays to be fed to the `WebGLPointsRenderer` class.\n *\n * Also returns `uniforms` and `attributes` properties as expected by the\n * {@link module:ol/renderer/webgl/PointsLayer~WebGLPointsLayerRenderer}.\n *\n * @param {import(\"../style/webgl.js\").WebGLStyle} style Literal style.\n * @return {StyleParseResult} Result containing shader params, attributes and uniforms.\n */\nexport function parseLiteralStyle(style) {\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const vertContext = {\n inFragmentShader: false,\n properties: {},\n variables: {},\n functions: {},\n style,\n };\n\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const fragContext = {\n inFragmentShader: true,\n variables: vertContext.variables,\n properties: {},\n functions: {},\n style,\n };\n\n const builder = new ShaderBuilder();\n\n /** @type {Object} */\n const uniforms = {};\n\n if ('icon-src' in style) {\n parseIconProperties(style, builder, uniforms, vertContext, fragContext);\n } else if ('shape-points' in style) {\n parseShapeProperties(style, builder, uniforms, vertContext, fragContext);\n } else if ('circle-radius' in style) {\n parseCircleProperties(style, builder, uniforms, vertContext, fragContext);\n }\n parseStrokeProperties(style, builder, uniforms, vertContext, fragContext);\n parseFillProperties(style, builder, uniforms, vertContext, fragContext);\n\n if (style.filter) {\n const parsedFilter = expressionToGlsl(\n fragContext,\n style.filter,\n BooleanType,\n );\n builder.setFragmentDiscardExpression(`!${parsedFilter}`);\n }\n\n // define one uniform per variable\n Object.keys(fragContext.variables).forEach(function (varName) {\n const variable = fragContext.variables[varName];\n const uniformName = uniformNameForVariable(variable.name);\n builder.addUniform(`${getGlslTypeFromType(variable.type)} ${uniformName}`);\n\n let callback;\n if (variable.type === StringType) {\n callback = () =>\n getStringNumberEquivalent(\n /** @type {string} */ (style.variables[variable.name]),\n );\n } else if (variable.type === ColorType) {\n callback = () =>\n packColor([\n ...asArray(\n /** @type {string|Array} */ (\n style.variables[variable.name]\n ) || '#eee',\n ),\n ]);\n } else if (variable.type === BooleanType) {\n callback = () =>\n /** @type {boolean} */ (style.variables[variable.name]) ? 1.0 : 0.0;\n } else {\n callback = () => /** @type {number} */ (style.variables[variable.name]);\n }\n uniforms[uniformName] = callback;\n });\n\n // for each feature attribute used in the fragment shader, define a varying that will be used to pass data\n // from the vertex to the fragment shader, as well as an attribute in the vertex shader (if not already present)\n Object.keys(fragContext.properties).forEach(function (propName) {\n const property = fragContext.properties[propName];\n if (!vertContext.properties[propName]) {\n vertContext.properties[propName] = property;\n }\n let type = getGlslTypeFromType(property.type);\n let expression = `a_prop_${property.name}`;\n if (property.type === ColorType) {\n type = 'vec4';\n expression = `unpackColor(${expression})`;\n builder.addVertexShaderFunction(UNPACK_COLOR_FN);\n }\n builder.addVarying(`v_prop_${property.name}`, type, expression);\n });\n\n // for each feature attribute used in the vertex shader, define an attribute in the vertex shader.\n Object.keys(vertContext.properties).forEach(function (propName) {\n const property = vertContext.properties[propName];\n builder.addAttribute(\n `${getGlslTypeFromType(property.type)} a_prop_${property.name}`,\n );\n });\n\n const attributes = Object.keys(vertContext.properties).map(\n function (propName) {\n const property = vertContext.properties[propName];\n let callback;\n if (property.evaluator) {\n callback = property.evaluator;\n } else if (property.type === StringType) {\n callback = (feature) =>\n getStringNumberEquivalent(feature.get(property.name));\n } else if (property.type === ColorType) {\n callback = (feature) =>\n packColor([...asArray(feature.get(property.name) || '#eee')]);\n } else if (property.type === BooleanType) {\n callback = (feature) => (feature.get(property.name) ? 1.0 : 0.0);\n } else {\n callback = (feature) => feature.get(property.name);\n }\n\n return {\n name: property.name,\n size: getGlslSizeFromType(property.type),\n callback,\n };\n },\n );\n\n // add functions that were collected in the compilation contexts\n for (const functionName in vertContext.functions) {\n builder.addVertexShaderFunction(vertContext.functions[functionName]);\n }\n for (const functionName in fragContext.functions) {\n builder.addFragmentShaderFunction(fragContext.functions[functionName]);\n }\n\n return {\n builder: builder,\n attributes: attributes.reduce(\n (prev, curr) => ({\n ...prev,\n [curr.name]: {callback: curr.callback, size: curr.size},\n }),\n {},\n ),\n uniforms: uniforms,\n };\n}\n","/**\n * @module ol/layer/WebGLTile\n */\nimport BaseTileLayer from './BaseTile.js';\nimport LayerProperty from '../layer/Property.js';\nimport WebGLTileLayerRenderer, {\n Attributes,\n Uniforms,\n} from '../renderer/webgl/TileLayer.js';\nimport {ColorType, NumberType} from '../expr/expression.js';\nimport {\n PALETTE_TEXTURE_ARRAY,\n getStringNumberEquivalent,\n newCompilationContext,\n uniformNameForVariable,\n} from '../expr/gpu.js';\nimport {expressionToGlsl} from '../webgl/styleparser.js';\n\n/**\n * @typedef {import(\"../source/DataTile.js\").default|import(\"../source/TileImage.js\").default} SourceType\n */\n\n/**\n * @typedef {Object} Style\n * Translates tile data to rendered pixels.\n *\n * @property {Object} [variables] Style variables. Each variable must hold a number or string. These\n * variables can be used in the `color`, `brightness`, `contrast`, `exposure`, `saturation` and `gamma`\n * {@link import(\"../expr/expression.js\").ExpressionValue expressions}, using the `['var', 'varName']` operator.\n * To update style variables, use the {@link import(\"./WebGLTile.js\").default#updateStyleVariables} method.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [color] An expression applied to color values.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [brightness=0] Value used to decrease or increase\n * the layer brightness. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [contrast=0] Value used to decrease or increase\n * the layer contrast. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [exposure=0] Value used to decrease or increase\n * the layer exposure. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [saturation=0] Value used to decrease or increase\n * the layer saturation. Values range from -1 to 1.\n * @property {import(\"../expr/expression.js\").ExpressionValue} [gamma=1] Apply a gamma correction to the layer.\n * Values range from 0 to infinity.\n */\n\n/**\n * @typedef {Object} Options\n * @property {Style} [style] Style to apply to the layer.\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`\n * means no preloading.\n * @property {SourceType} [source] Source for this layer.\n * @property {Array|function(import(\"../extent.js\").Extent, number):Array} [sources] Array\n * of sources for this layer. Takes precedence over `source`. Can either be an array of sources, or a function that\n * expects an extent and a resolution (in view projection units per pixel) and returns an array of sources. See\n * {@link module:ol/source.sourcesFromTileGrid} for a helper function to generate sources that are organized in a\n * pyramid following the same pattern as a tile grid. **Note:** All sources must have the same band count and content.\n * @property {import(\"../Map.js\").default} [map] Sets the layer as overlay on a map. The map will not manage\n * this layer in its layers collection, and the layer will be rendered on top. This is useful for\n * temporary layers. The standard way to add a layer to a map and have it managed by the map is to\n * use {@link module:ol/Map~Map#addLayer}.\n * @property {boolean} [useInterimTilesOnError=true] Use interim tiles on error.\n * @property {number} [cacheSize=512] The internal texture cache size. This needs to be large enough to render\n * two zoom levels worth of tiles.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n\n/**\n * @typedef {Object} ParsedStyle\n * @property {string} vertexShader The vertex shader.\n * @property {string} fragmentShader The fragment shader.\n * @property {Object} uniforms Uniform definitions.\n * @property {Array} paletteTextures Palette textures.\n */\n\n/**\n * @param {Style} style The layer style.\n * @param {number} [bandCount] The number of bands.\n * @return {ParsedStyle} Shaders and uniforms generated from the style.\n */\nfunction parseStyle(style, bandCount) {\n const vertexShader = `\n attribute vec2 ${Attributes.TEXTURE_COORD};\n uniform mat4 ${Uniforms.TILE_TRANSFORM};\n uniform float ${Uniforms.TEXTURE_PIXEL_WIDTH};\n uniform float ${Uniforms.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Uniforms.TEXTURE_RESOLUTION};\n uniform float ${Uniforms.TEXTURE_ORIGIN_X};\n uniform float ${Uniforms.TEXTURE_ORIGIN_Y};\n uniform float ${Uniforms.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${Attributes.TEXTURE_COORD};\n v_mapCoord = vec2(\n ${Uniforms.TEXTURE_ORIGIN_X} + ${Uniforms.TEXTURE_RESOLUTION} * ${Uniforms.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${Uniforms.TEXTURE_ORIGIN_Y} - ${Uniforms.TEXTURE_RESOLUTION} * ${Uniforms.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${Uniforms.TILE_TRANSFORM} * vec4(${Attributes.TEXTURE_COORD}, ${Uniforms.DEPTH}, 1.0);\n }\n `;\n\n /**\n * @type {import(\"../expr/gpu.js\").CompilationContext}\n */\n const context = {\n ...newCompilationContext(),\n inFragmentShader: true,\n bandCount: bandCount,\n style: style,\n };\n\n const pipeline = [];\n\n if (style.color !== undefined) {\n const color = expressionToGlsl(context, style.color, ColorType);\n pipeline.push(`color = ${color};`);\n }\n\n if (style.contrast !== undefined) {\n const contrast = expressionToGlsl(context, style.contrast, NumberType);\n pipeline.push(\n `color.rgb = clamp((${contrast} + 1.0) * color.rgb - (${contrast} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n if (style.exposure !== undefined) {\n const exposure = expressionToGlsl(context, style.exposure, NumberType);\n pipeline.push(\n `color.rgb = clamp((${exposure} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n if (style.saturation !== undefined) {\n const saturation = expressionToGlsl(context, style.saturation, NumberType);\n pipeline.push(`\n float saturation = ${saturation} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `);\n }\n\n if (style.gamma !== undefined) {\n const gamma = expressionToGlsl(context, style.gamma, NumberType);\n pipeline.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${gamma}));`);\n }\n\n if (style.brightness !== undefined) {\n const brightness = expressionToGlsl(context, style.brightness, NumberType);\n pipeline.push(\n `color.rgb = clamp(color.rgb + ${brightness}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`,\n );\n }\n\n /** @type {Object} */\n const uniforms = {};\n\n const numVariables = Object.keys(context.variables).length;\n if (numVariables > 1 && !style.variables) {\n throw new Error(\n `Missing variables in style (expected ${context.variables})`,\n );\n }\n\n for (let i = 0; i < numVariables; ++i) {\n const variable = context.variables[Object.keys(context.variables)[i]];\n if (!(variable.name in style.variables)) {\n throw new Error(`Missing '${variable.name}' in style variables`);\n }\n const uniformName = uniformNameForVariable(variable.name);\n uniforms[uniformName] = function () {\n let value = style.variables[variable.name];\n if (typeof value === 'string') {\n value = getStringNumberEquivalent(value);\n }\n return value !== undefined ? value : -9999999; // to avoid matching with the first string literal\n };\n }\n\n const uniformDeclarations = Object.keys(uniforms).map(function (name) {\n return `uniform float ${name};`;\n });\n\n const textureCount = Math.ceil(bandCount / 4);\n uniformDeclarations.push(\n `uniform sampler2D ${Uniforms.TILE_TEXTURE_ARRAY}[${textureCount}];`,\n );\n\n if (context.paletteTextures) {\n uniformDeclarations.push(\n `uniform sampler2D ${PALETTE_TEXTURE_ARRAY}[${context.paletteTextures.length}];`,\n );\n }\n\n const functionDefintions = Object.keys(context.functions).map(\n function (name) {\n return context.functions[name];\n },\n );\n\n const fragmentShader = `\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n #endif\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n uniform vec4 ${Uniforms.RENDER_EXTENT};\n uniform float ${Uniforms.TRANSITION_ALPHA};\n uniform float ${Uniforms.TEXTURE_PIXEL_WIDTH};\n uniform float ${Uniforms.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Uniforms.RESOLUTION};\n uniform float ${Uniforms.ZOOM};\n\n ${uniformDeclarations.join('\\n')}\n\n ${functionDefintions.join('\\n')}\n\n void main() {\n if (\n v_mapCoord[0] < ${Uniforms.RENDER_EXTENT}[0] ||\n v_mapCoord[1] < ${Uniforms.RENDER_EXTENT}[1] ||\n v_mapCoord[0] > ${Uniforms.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${Uniforms.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${\n Uniforms.TILE_TEXTURE_ARRAY\n }[0], v_textureCoord);\n\n ${pipeline.join('\\n')}\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${Uniforms.TRANSITION_ALPHA};\n }`;\n\n return {\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n uniforms: uniforms,\n paletteTextures: context.paletteTextures,\n };\n}\n\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @extends BaseTileLayer\n * @fires import(\"../render/Event.js\").RenderEvent\n * @api\n */\nclass WebGLTileLayer extends BaseTileLayer {\n /**\n * @param {Options} options Tile layer options.\n */\n constructor(options) {\n options = options ? Object.assign({}, options) : {};\n\n const style = options.style || {};\n delete options.style;\n\n const cacheSize = options.cacheSize;\n delete options.cacheSize;\n\n super(options);\n\n /**\n * @type {Array|function(import(\"../extent.js\").Extent, number):Array}\n * @private\n */\n this.sources_ = options.sources;\n\n /**\n * @type {SourceType|null}\n * @private\n */\n this.renderedSource_ = null;\n\n /**\n * @type {number}\n * @private\n */\n this.renderedResolution_ = NaN;\n\n /**\n * @type {Style}\n * @private\n */\n this.style_ = style;\n\n /**\n * @type {number}\n * @private\n */\n this.cacheSize_ = cacheSize;\n\n /**\n * @type {Object}\n * @private\n */\n this.styleVariables_ = this.style_.variables || {};\n\n this.addChangeListener(LayerProperty.SOURCE, this.handleSourceUpdate_);\n }\n\n /**\n * Gets the sources for this layer, for a given extent and resolution.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @return {Array} Sources.\n */\n getSources(extent, resolution) {\n const source = this.getSource();\n return this.sources_\n ? typeof this.sources_ === 'function'\n ? this.sources_(extent, resolution)\n : this.sources_\n : source\n ? [source]\n : [];\n }\n\n /**\n * @return {SourceType} The source being rendered.\n */\n getRenderSource() {\n return this.renderedSource_ || this.getSource();\n }\n\n /**\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n getSourceState() {\n const source = this.getRenderSource();\n return source ? source.getState() : 'undefined';\n }\n\n /**\n * @private\n */\n handleSourceUpdate_() {\n if (this.hasRenderer()) {\n this.getRenderer().clearCache();\n }\n if (this.getSource()) {\n this.setStyle(this.style_);\n }\n }\n\n /**\n * @private\n * @return {number} The number of source bands.\n */\n getSourceBandCount_() {\n const max = Number.MAX_SAFE_INTEGER;\n const sources = this.getSources([-max, -max, max, max], max);\n return sources && sources.length && 'bandCount' in sources[0]\n ? sources[0].bandCount\n : 4;\n }\n\n createRenderer() {\n const parsedStyle = parseStyle(this.style_, this.getSourceBandCount_());\n\n return new WebGLTileLayerRenderer(this, {\n vertexShader: parsedStyle.vertexShader,\n fragmentShader: parsedStyle.fragmentShader,\n uniforms: parsedStyle.uniforms,\n cacheSize: this.cacheSize_,\n paletteTextures: parsedStyle.paletteTextures,\n });\n }\n\n /**\n * @param {import(\"../Map\").FrameState} frameState Frame state.\n * @param {Array} sources Sources.\n * @return {HTMLElement} Canvas.\n */\n renderSources(frameState, sources) {\n const layerRenderer = this.getRenderer();\n let canvas;\n for (let i = 0, ii = sources.length; i < ii; ++i) {\n this.renderedSource_ = sources[i];\n if (layerRenderer.prepareFrame(frameState)) {\n canvas = layerRenderer.renderFrame(frameState);\n }\n }\n return canvas;\n }\n\n /**\n * @param {?import(\"../Map.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target which the renderer may (but need not) use\n * for rendering its content.\n * @return {HTMLElement} The rendered element.\n */\n render(frameState, target) {\n this.rendered = true;\n const viewState = frameState.viewState;\n const sources = this.getSources(frameState.extent, viewState.resolution);\n let ready = true;\n for (let i = 0, ii = sources.length; i < ii; ++i) {\n const source = sources[i];\n const sourceState = source.getState();\n if (sourceState == 'loading') {\n const onChange = () => {\n if (source.getState() == 'ready') {\n source.removeEventListener('change', onChange);\n this.changed();\n }\n };\n source.addEventListener('change', onChange);\n }\n ready = ready && sourceState == 'ready';\n }\n const canvas = this.renderSources(frameState, sources);\n if (this.getRenderer().renderComplete && ready) {\n // Fully rendered, done.\n this.renderedResolution_ = viewState.resolution;\n return canvas;\n }\n // Render sources from previously fully rendered frames\n if (this.renderedResolution_ > 0.5 * viewState.resolution) {\n const altSources = this.getSources(\n frameState.extent,\n this.renderedResolution_,\n ).filter((source) => !sources.includes(source));\n if (altSources.length > 0) {\n return this.renderSources(frameState, altSources);\n }\n }\n return canvas;\n }\n\n /**\n * Update the layer style. The `updateStyleVariables` function is a more efficient\n * way to update layer rendering. In cases where the whole style needs to be updated,\n * this method may be called instead. Note that calling this method will also replace\n * any previously set variables, so the new style also needs to include new variables,\n * if needed.\n * @param {Style} style The new style.\n */\n setStyle(style) {\n this.styleVariables_ = style.variables || {};\n this.style_ = style;\n const parsedStyle = parseStyle(this.style_, this.getSourceBandCount_());\n const renderer = this.getRenderer();\n renderer.reset({\n vertexShader: parsedStyle.vertexShader,\n fragmentShader: parsedStyle.fragmentShader,\n uniforms: parsedStyle.uniforms,\n paletteTextures: parsedStyle.paletteTextures,\n });\n this.changed();\n }\n\n /**\n * Update any variables used by the layer style and trigger a re-render.\n * @param {Object} variables Variables to update.\n * @api\n */\n updateStyleVariables(variables) {\n Object.assign(this.styleVariables_, variables);\n this.changed();\n }\n}\n\n/**\n * Clean up underlying WebGL resources.\n * @function\n * @api\n */\nWebGLTileLayer.prototype.dispose;\n\nexport default WebGLTileLayer;\n","/**\n * @module ol/source/DataTile\n */\nimport DataTile from '../DataTile.js';\nimport EventType from '../events/EventType.js';\nimport ReprojDataTile from '../reproj/DataTile.js';\nimport TileCache from '../TileCache.js';\nimport TileEventType from './TileEventType.js';\nimport TileSource, {TileSourceEvent} from './Tile.js';\nimport TileState from '../TileState.js';\nimport {\n createXYZ,\n extentFromProjection,\n getForProjection as getTileGridForProjection,\n} from '../tilegrid.js';\nimport {equivalent, get as getProjection} from '../proj.js';\nimport {getKeyZXY} from '../tilecoord.js';\nimport {getUid} from '../util.js';\nimport {toPromise} from '../functions.js';\nimport {toSize} from '../size.js';\n\n/**\n * Data tile loading function. The function is called with z, x, and y tile coordinates and\n * returns {@link import(\"../DataTile.js\").Data data} for a tile or a promise for the same.\n * @typedef {function(number, number, number) : (import(\"../DataTile.js\").Data|Promise)} Loader\n */\n\n/**\n * @typedef {Object} Options\n * @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.\n * Returns {@link import(\"../DataTile.js\").Data data} for a tile or a promise for the same.\n * For loaders that generate images, the promise should not resolve until the image is loaded.\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.\n * @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.\n * @property {number|import(\"../size.js\").Size} [tileSize=[256, 256]] The pixel width and height of the source tiles.\n * This may be different than the rendered pixel size if a `tileGrid` is provided.\n * @property {number} [gutter=0] The size in pixels of the gutter around data tiles to ignore.\n * This allows artifacts of rendering at tile edges to be ignored.\n * Supported data should be wider and taller than the tile size by a value of `2 x gutter`.\n * @property {number} [maxResolution] Optional tile grid resolution at level zero. Not used if `tileGrid` is provided.\n * @property {import(\"../proj.js\").ProjectionLike} [projection='EPSG:3857'] Tile projection.\n * @property {import(\"../tilegrid/TileGrid.js\").default} [tileGrid] Tile grid.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"./Source.js\").State} [state] The source state.\n * @property {boolean} [wrapX=false] Render tiles beyond the antimeridian.\n * @property {number} [transition] Transition time when fading in new tiles (in milliseconds).\n * @property {number} [bandCount=4] Number of bands represented in the data.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n */\n\n/**\n * @classdesc\n * A source for typed array data tiles.\n *\n * @fires import(\"./Tile.js\").TileSourceEvent\n * @api\n */\nclass DataTileSource extends TileSource {\n /**\n * @param {Options} options DataTile source options.\n */\n constructor(options) {\n const projection =\n options.projection === undefined ? 'EPSG:3857' : options.projection;\n\n let tileGrid = options.tileGrid;\n if (tileGrid === undefined && projection) {\n tileGrid = createXYZ({\n extent: extentFromProjection(projection),\n maxResolution: options.maxResolution,\n maxZoom: options.maxZoom,\n minZoom: options.minZoom,\n tileSize: options.tileSize,\n });\n }\n\n super({\n cacheSize: 0.1, // don't cache on the source\n attributions: options.attributions,\n attributionsCollapsible: options.attributionsCollapsible,\n projection: projection,\n tileGrid: tileGrid,\n opaque: options.opaque,\n state: options.state,\n wrapX: options.wrapX,\n transition: options.transition,\n interpolate: options.interpolate,\n });\n\n /**\n * @private\n * @type {number}\n */\n this.gutter_ = options.gutter !== undefined ? options.gutter : 0;\n\n /**\n * @private\n * @type {import('../size.js').Size|null}\n */\n this.tileSize_ = options.tileSize ? toSize(options.tileSize) : null;\n\n /**\n * @private\n * @type {Array|null}\n */\n this.tileSizes_ = null;\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileLoadingKeys_ = {};\n\n /**\n * @private\n */\n this.loader_ = options.loader;\n\n this.handleTileChange_ = this.handleTileChange_.bind(this);\n\n /**\n * @type {number}\n */\n this.bandCount = options.bandCount === undefined ? 4 : options.bandCount; // assume RGBA if undefined\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileGridForProjection_ = {};\n\n /**\n * @private\n * @type {!Object}\n */\n this.tileCacheForProjection_ = {};\n }\n\n /**\n * Set the source tile sizes. The length of the array is expected to match the number of\n * levels in the tile grid.\n * @protected\n * @param {Array} tileSizes An array of tile sizes.\n */\n setTileSizes(tileSizes) {\n this.tileSizes_ = tileSizes;\n }\n\n /**\n * Get the source tile size at the given zoom level. This may be different than the rendered tile\n * size.\n * @protected\n * @param {number} z Tile zoom level.\n * @return {import('../size.js').Size} The source tile size.\n */\n getTileSize(z) {\n if (this.tileSizes_) {\n return this.tileSizes_[z];\n }\n if (this.tileSize_) {\n return this.tileSize_;\n }\n const tileGrid = this.getTileGrid();\n return tileGrid ? toSize(tileGrid.getTileSize(z)) : [256, 256];\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {number} Gutter.\n */\n getGutterForProjection(projection) {\n const thisProj = this.getProjection();\n if (!thisProj || equivalent(thisProj, projection)) {\n return this.gutter_;\n }\n\n return 0;\n }\n\n /**\n * @param {Loader} loader The data loader.\n * @protected\n */\n setLoader(loader) {\n this.loader_ = loader;\n }\n\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {import(\"../proj/Projection.js\").default} targetProj The output projection.\n * @param {import(\"../proj/Projection.js\").default} sourceProj The input projection.\n * @return {!DataTile} Tile.\n */\n getReprojTile_(z, x, y, targetProj, sourceProj) {\n const cache = this.getTileCacheForProjection(targetProj);\n const tileCoordKey = getKeyZXY(z, x, y);\n if (cache.containsKey(tileCoordKey)) {\n const tile = cache.get(tileCoordKey);\n if (tile && tile.key == this.getKey()) {\n return tile;\n }\n }\n\n const tileGrid = this.getTileGrid();\n const reprojTilePixelRatio = Math.max.apply(\n null,\n tileGrid.getResolutions().map((r, z) => {\n const tileSize = toSize(tileGrid.getTileSize(z));\n const textureSize = this.getTileSize(z);\n return Math.max(\n textureSize[0] / tileSize[0],\n textureSize[1] / tileSize[1],\n );\n }),\n );\n\n const sourceTileGrid = this.getTileGridForProjection(sourceProj);\n const targetTileGrid = this.getTileGridForProjection(targetProj);\n const tileCoord = [z, x, y];\n const wrappedTileCoord = this.getTileCoordForTileUrlFunction(\n tileCoord,\n targetProj,\n );\n\n const options = Object.assign(\n {\n sourceProj,\n sourceTileGrid,\n targetProj,\n targetTileGrid,\n tileCoord,\n wrappedTileCoord,\n pixelRatio: reprojTilePixelRatio,\n gutter: this.getGutterForProjection(sourceProj),\n getTileFunction: (z, x, y, pixelRatio) =>\n this.getTile(z, x, y, pixelRatio, sourceProj),\n },\n this.tileOptions,\n );\n const newTile = new ReprojDataTile(options);\n newTile.key = this.getKey();\n return newTile;\n }\n\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!DataTile} Tile.\n */\n getTile(z, x, y, pixelRatio, projection) {\n const sourceProjection = this.getProjection();\n if (\n sourceProjection &&\n projection &&\n !equivalent(sourceProjection, projection)\n ) {\n return this.getReprojTile_(z, x, y, projection, sourceProjection);\n }\n\n const size = this.getTileSize(z);\n const tileCoordKey = getKeyZXY(z, x, y);\n if (this.tileCache.containsKey(tileCoordKey)) {\n return this.tileCache.get(tileCoordKey);\n }\n\n const sourceLoader = this.loader_;\n\n function loader() {\n return toPromise(function () {\n return sourceLoader(z, x, y);\n });\n }\n\n const options = Object.assign(\n {\n tileCoord: [z, x, y],\n loader: loader,\n size: size,\n },\n this.tileOptions,\n );\n\n const tile = new DataTile(options);\n tile.key = this.getKey();\n tile.addEventListener(EventType.CHANGE, this.handleTileChange_);\n\n this.tileCache.set(tileCoordKey, tile);\n return tile;\n }\n\n /**\n * Handle tile change events.\n * @param {import(\"../events/Event.js\").default} event Event.\n */\n handleTileChange_(event) {\n const tile = /** @type {import(\"../Tile.js\").default} */ (event.target);\n const uid = getUid(tile);\n const tileState = tile.getState();\n let type;\n if (tileState == TileState.LOADING) {\n this.tileLoadingKeys_[uid] = true;\n type = TileEventType.TILELOADSTART;\n } else if (uid in this.tileLoadingKeys_) {\n delete this.tileLoadingKeys_[uid];\n type =\n tileState == TileState.ERROR\n ? TileEventType.TILELOADERROR\n : tileState == TileState.LOADED\n ? TileEventType.TILELOADEND\n : undefined;\n }\n if (type) {\n this.dispatchEvent(new TileSourceEvent(type, tile));\n }\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!import(\"../tilegrid/TileGrid.js\").default} Tile grid.\n */\n getTileGridForProjection(projection) {\n const thisProj = this.getProjection();\n if (this.tileGrid && (!thisProj || equivalent(thisProj, projection))) {\n return this.tileGrid;\n }\n\n const projKey = getUid(projection);\n if (!(projKey in this.tileGridForProjection_)) {\n this.tileGridForProjection_[projKey] =\n getTileGridForProjection(projection);\n }\n return this.tileGridForProjection_[projKey];\n }\n\n /**\n * Sets the tile grid to use when reprojecting the tiles to the given\n * projection instead of the default tile grid for the projection.\n *\n * This can be useful when the default tile grid cannot be created\n * (e.g. projection has no extent defined) or\n * for optimization reasons (custom tile size, resolutions, ...).\n *\n * @param {import(\"../proj.js\").ProjectionLike} projection Projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} tilegrid Tile grid to use for the projection.\n * @api\n */\n setTileGridForProjection(projection, tilegrid) {\n const proj = getProjection(projection);\n if (proj) {\n const projKey = getUid(proj);\n if (!(projKey in this.tileGridForProjection_)) {\n this.tileGridForProjection_[projKey] = tilegrid;\n }\n }\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {import(\"../TileCache.js\").default} Tile cache.\n */\n getTileCacheForProjection(projection) {\n const thisProj = this.getProjection();\n if (!thisProj || equivalent(thisProj, projection)) {\n return this.tileCache;\n }\n\n const projKey = getUid(projection);\n if (!(projKey in this.tileCacheForProjection_)) {\n this.tileCacheForProjection_[projKey] = new TileCache(0.1); // don't cache\n }\n return this.tileCacheForProjection_[projKey];\n }\n\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @param {!Object} usedTiles Used tiles.\n */\n expireCache(projection, usedTiles) {\n const usedTileCache = this.getTileCacheForProjection(projection);\n\n this.tileCache.expireCache(\n this.tileCache == usedTileCache ? usedTiles : {},\n );\n for (const id in this.tileCacheForProjection_) {\n const tileCache = this.tileCacheForProjection_[id];\n tileCache.expireCache(tileCache == usedTileCache ? usedTiles : {});\n }\n }\n\n clear() {\n super.clear();\n for (const id in this.tileCacheForProjection_) {\n this.tileCacheForProjection_[id].clear();\n }\n }\n}\n\nexport default DataTileSource;\n","import { getDecoder } from './compression/index.js';\n\nconst defaultPoolSize = typeof navigator !== 'undefined' ? (navigator.hardwareConcurrency || 2) : 2;\n\n/**\n * @module pool\n */\n\n/**\n * Pool for workers to decode chunks of the images.\n */\nclass Pool {\n /**\n * @constructor\n * @param {Number} [size] The size of the pool. Defaults to the number of CPUs\n * available. When this parameter is `null` or 0, then the\n * decoding will be done in the main thread.\n * @param {function(): Worker} [createWorker] A function that creates the decoder worker.\n * Defaults to a worker with all decoders that ship with geotiff.js. The `createWorker()`\n * function is expected to return a `Worker` compatible with Web Workers. For code that\n * runs in Node, [web-worker](https://www.npmjs.com/package/web-worker) is a good choice.\n *\n * A worker that uses a custom lzw decoder would look like this `my-custom-worker.js` file:\n * ```js\n * import { addDecoder, getDecoder } from 'geotiff';\n * addDecoder(5, () => import ('./my-custom-lzw').then((m) => m.default));\n * self.addEventListener('message', async (e) => {\n * const { id, fileDirectory, buffer } = e.data;\n * const decoder = await getDecoder(fileDirectory);\n * const decoded = await decoder.decode(fileDirectory, buffer);\n * self.postMessage({ decoded, id }, [decoded]);\n * });\n * ```\n * The way the above code is built into a worker by the `createWorker()` function\n * depends on the used bundler. For most bundlers, something like this will work:\n * ```js\n * function createWorker() {\n * return new Worker(new URL('./my-custom-worker.js', import.meta.url));\n * }\n * ```\n */\n constructor(size = defaultPoolSize, createWorker) {\n this.workers = null;\n this._awaitingDecoder = null;\n this.size = size;\n this.messageId = 0;\n if (size) {\n this._awaitingDecoder = createWorker ? Promise.resolve(createWorker) : new Promise((resolve) => {\n import('./worker/decoder.js').then((module) => {\n resolve(module.create);\n });\n });\n this._awaitingDecoder.then((create) => {\n this._awaitingDecoder = null;\n this.workers = [];\n for (let i = 0; i < size; i++) {\n this.workers.push({ worker: create(), idle: true });\n }\n });\n }\n }\n\n /**\n * Decode the given block of bytes with the set compression method.\n * @param {ArrayBuffer} buffer the array buffer of bytes to decode.\n * @returns {Promise} the decoded result as a `Promise`\n */\n async decode(fileDirectory, buffer) {\n if (this._awaitingDecoder) {\n await this._awaitingDecoder;\n }\n return this.size === 0\n ? getDecoder(fileDirectory).then((decoder) => decoder.decode(fileDirectory, buffer))\n : new Promise((resolve) => {\n const worker = this.workers.find((candidate) => candidate.idle)\n || this.workers[Math.floor(Math.random() * this.size)];\n worker.idle = false;\n const id = this.messageId++;\n const onMessage = (e) => {\n if (e.data.id === id) {\n worker.idle = true;\n resolve(e.data.decoded);\n worker.worker.removeEventListener('message', onMessage);\n }\n };\n worker.worker.addEventListener('message', onMessage);\n worker.worker.postMessage({ fileDirectory, buffer, id }, [buffer]);\n });\n }\n\n destroy() {\n if (this.workers) {\n this.workers.forEach((worker) => {\n worker.worker.terminate();\n });\n this.workers = null;\n }\n }\n}\n\nexport default Pool;\n","/**\n * @module ol/source/GeoTIFF\n */\nimport DataTile from './DataTile.js';\nimport TileGrid from '../tilegrid/TileGrid.js';\nimport {\n Pool,\n globals as geotiffGlobals,\n fromBlob as tiffFromBlob,\n fromUrl as tiffFromUrl,\n fromUrls as tiffFromUrls,\n} from 'geotiff';\nimport {\n Projection,\n get as getCachedProjection,\n toUserCoordinate,\n toUserExtent,\n} from '../proj.js';\nimport {clamp} from '../math.js';\nimport {getCenter, getIntersection} from '../extent.js';\nimport {error as logError} from '../console.js';\nimport {fromCode as unitsFromCode} from '../proj/Units.js';\n\n/**\n * Determine if an image type is a mask.\n * See https://www.awaresystems.be/imaging/tiff/tifftags/newsubfiletype.html\n * @param {GeoTIFFImage} image The image.\n * @return {boolean} The image is a mask.\n */\nfunction isMask(image) {\n const fileDirectory = image.fileDirectory;\n const type = fileDirectory.NewSubfileType || 0;\n return (type & 4) === 4;\n}\n\n/**\n * @param {true|false|'auto'} preference The convertToRGB option.\n * @param {GeoTIFFImage} image The image.\n * @return {boolean} Use the `image.readRGB()` method.\n */\nfunction readRGB(preference, image) {\n if (!preference) {\n return false;\n }\n if (preference === true) {\n return true;\n }\n if (image.getSamplesPerPixel() !== 3) {\n return false;\n }\n const interpretation = image.fileDirectory.PhotometricInterpretation;\n const interpretations = geotiffGlobals.photometricInterpretations;\n return (\n interpretation === interpretations.CMYK ||\n interpretation === interpretations.YCbCr ||\n interpretation === interpretations.CIELab ||\n interpretation === interpretations.ICCLab\n );\n}\n\n/**\n * @typedef {Object} SourceInfo\n * @property {string} [url] URL for the source GeoTIFF.\n * @property {Array} [overviews] List of any overview URLs, only applies if the url parameter is given.\n * @property {Blob} [blob] Blob containing the source GeoTIFF. `blob` and `url` are mutually exclusive.\n * @property {number} [min=0] The minimum source data value. Rendered values are scaled from 0 to 1 based on\n * the configured min and max. If not provided and raster statistics are available, those will be used instead.\n * If neither are available, the minimum for the data type will be used. To disable this behavior, set\n * the `normalize` option to `false` in the constructor.\n * @property {number} [max] The maximum source data value. Rendered values are scaled from 0 to 1 based on\n * the configured min and max. If not provided and raster statistics are available, those will be used instead.\n * If neither are available, the maximum for the data type will be used. To disable this behavior, set\n * the `normalize` option to `false` in the constructor.\n * @property {number} [nodata] Values to discard (overriding any nodata values in the metadata).\n * When provided, an additional alpha band will be added to the data. Often the GeoTIFF metadata\n * will include information about nodata values, so you should only need to set this property if\n * you find that it is not already extracted from the metadata.\n * @property {Array} [bands] Band numbers to be read from (where the first band is `1`). If not provided, all bands will\n * be read. For example, if a GeoTIFF has blue (1), green (2), red (3), and near-infrared (4) bands, and you only need the\n * near-infrared band, configure `bands: [4]`.\n */\n\n/**\n * @typedef {Object} GeoKeys\n * @property {number} GTModelTypeGeoKey Model type.\n * @property {number} GTRasterTypeGeoKey Raster type.\n * @property {number} GeogAngularUnitsGeoKey Angular units.\n * @property {number} GeogInvFlatteningGeoKey Inverse flattening.\n * @property {number} GeogSemiMajorAxisGeoKey Semi-major axis.\n * @property {number} GeographicTypeGeoKey Geographic coordinate system code.\n * @property {number} ProjLinearUnitsGeoKey Projected linear unit code.\n * @property {number} ProjectedCSTypeGeoKey Projected coordinate system code.\n */\n\n/**\n * @typedef {import(\"geotiff\").GeoTIFF} GeoTIFF\n */\n\n/**\n * @typedef {import(\"geotiff\").MultiGeoTIFF} MultiGeoTIFF\n */\n\n/**\n * @typedef {Object} GDALMetadata\n * @property {string} STATISTICS_MINIMUM The minimum value (as a string).\n * @property {string} STATISTICS_MAXIMUM The maximum value (as a string).\n */\n\nconst STATISTICS_MAXIMUM = 'STATISTICS_MAXIMUM';\nconst STATISTICS_MINIMUM = 'STATISTICS_MINIMUM';\n\nconst defaultTileSize = 256;\n\n/**\n * @typedef {import(\"geotiff\").GeoTIFFImage} GeoTIFFImage\n */\n\nlet workerPool;\nfunction getWorkerPool() {\n if (!workerPool) {\n workerPool = new Pool();\n }\n return workerPool;\n}\n\n/**\n * Get the bounding box of an image. If the image does not have an affine transform,\n * the pixel bounds are returned.\n * @param {GeoTIFFImage} image The image.\n * @return {Array} The image bounding box.\n */\nfunction getBoundingBox(image) {\n try {\n return image.getBoundingBox();\n } catch (_) {\n return [0, 0, image.getWidth(), image.getHeight()];\n }\n}\n\n/**\n * Get the origin of an image. If the image does not have an affine transform,\n * the top-left corner of the pixel bounds is returned.\n * @param {GeoTIFFImage} image The image.\n * @return {Array} The image origin.\n */\nfunction getOrigin(image) {\n try {\n return image.getOrigin().slice(0, 2);\n } catch (_) {\n return [0, image.getHeight()];\n }\n}\n\n/**\n * Get the resolution of an image. If the image does not have an affine transform,\n * the width of the image is compared with the reference image.\n * @param {GeoTIFFImage} image The image.\n * @param {GeoTIFFImage} referenceImage The reference image.\n * @return {Array} The map x and y units per pixel.\n */\nfunction getResolutions(image, referenceImage) {\n try {\n return image.getResolution(referenceImage);\n } catch (_) {\n return [\n referenceImage.getWidth() / image.getWidth(),\n referenceImage.getHeight() / image.getHeight(),\n ];\n }\n}\n\n/**\n * @param {GeoTIFFImage} image A GeoTIFF.\n * @return {import(\"../proj/Projection.js\").default} The image projection.\n */\nfunction getProjection(image) {\n const geoKeys = image.geoKeys;\n if (!geoKeys) {\n return null;\n }\n\n if (\n geoKeys.ProjectedCSTypeGeoKey &&\n geoKeys.ProjectedCSTypeGeoKey !== 32767\n ) {\n const code = 'EPSG:' + geoKeys.ProjectedCSTypeGeoKey;\n let projection = getCachedProjection(code);\n if (!projection) {\n const units = unitsFromCode(geoKeys.ProjLinearUnitsGeoKey);\n if (units) {\n projection = new Projection({\n code: code,\n units: units,\n });\n }\n }\n return projection;\n }\n\n if (geoKeys.GeographicTypeGeoKey && geoKeys.GeographicTypeGeoKey !== 32767) {\n const code = 'EPSG:' + geoKeys.GeographicTypeGeoKey;\n let projection = getCachedProjection(code);\n if (!projection) {\n const units = unitsFromCode(geoKeys.GeogAngularUnitsGeoKey);\n if (units) {\n projection = new Projection({\n code: code,\n units: units,\n });\n }\n }\n return projection;\n }\n\n return null;\n}\n\n/**\n * @param {GeoTIFF|MultiGeoTIFF} tiff A GeoTIFF.\n * @return {Promise>} Resolves to a list of images.\n */\nfunction getImagesForTIFF(tiff) {\n return tiff.getImageCount().then(function (count) {\n const requests = new Array(count);\n for (let i = 0; i < count; ++i) {\n requests[i] = tiff.getImage(i);\n }\n return Promise.all(requests);\n });\n}\n\n/**\n * @param {SourceInfo} source The GeoTIFF source.\n * @param {Object} options Options for the GeoTIFF source.\n * @return {Promise>} Resolves to a list of images.\n */\nfunction getImagesForSource(source, options) {\n let request;\n if (source.blob) {\n request = tiffFromBlob(source.blob);\n } else if (source.overviews) {\n request = tiffFromUrls(source.url, source.overviews, options);\n } else {\n request = tiffFromUrl(source.url, options);\n }\n return request.then(getImagesForTIFF);\n}\n\n/**\n * @param {number|Array|Array>} expected Expected value.\n * @param {number|Array|Array>} got Actual value.\n * @param {number} tolerance Accepted tolerance in fraction of expected between expected and got.\n * @param {string} message The error message.\n * @param {function(Error):void} rejector A function to be called with any error.\n */\nfunction assertEqual(expected, got, tolerance, message, rejector) {\n if (Array.isArray(expected)) {\n const length = expected.length;\n if (!Array.isArray(got) || length != got.length) {\n const error = new Error(message);\n rejector(error);\n throw error;\n }\n for (let i = 0; i < length; ++i) {\n assertEqual(expected[i], got[i], tolerance, message, rejector);\n }\n return;\n }\n\n got = /** @type {number} */ (got);\n if (Math.abs(expected - got) > tolerance * expected) {\n throw new Error(message);\n }\n}\n\n/**\n * @param {Array} array The data array.\n * @return {number} The minimum value.\n */\nfunction getMinForDataType(array) {\n if (array instanceof Int8Array) {\n return -128;\n }\n if (array instanceof Int16Array) {\n return -32768;\n }\n if (array instanceof Int32Array) {\n return -2147483648;\n }\n if (array instanceof Float32Array) {\n return 1.2e-38;\n }\n return 0;\n}\n\n/**\n * @param {Array} array The data array.\n * @return {number} The maximum value.\n */\nfunction getMaxForDataType(array) {\n if (array instanceof Int8Array) {\n return 127;\n }\n if (array instanceof Uint8Array) {\n return 255;\n }\n if (array instanceof Uint8ClampedArray) {\n return 255;\n }\n if (array instanceof Int16Array) {\n return 32767;\n }\n if (array instanceof Uint16Array) {\n return 65535;\n }\n if (array instanceof Int32Array) {\n return 2147483647;\n }\n if (array instanceof Uint32Array) {\n return 4294967295;\n }\n if (array instanceof Float32Array) {\n return 3.4e38;\n }\n return 255;\n}\n\n/**\n * @typedef {Object} GeoTIFFSourceOptions\n * @property {boolean} [forceXHR=false] Whether to force the usage of the browsers XMLHttpRequest API.\n * @property {Object} [headers] additional key-value pairs of headers to be passed with each request. Key is the header name, value the header value.\n * @property {string} [credentials] How credentials shall be handled. See\n * https://developer.mozilla.org/en-US/docs/Web/API/fetch for reference and possible values\n * @property {number} [maxRanges] The maximum amount of ranges to request in a single multi-range request.\n * By default only a single range is used.\n * @property {boolean} [allowFullFile=false] Whether or not a full file is accepted when only a portion is\n * requested. Only use this when you know the source image to be small enough to fit in memory.\n * @property {number} [blockSize=65536] The block size to use.\n * @property {number} [cacheSize=100] The number of blocks that shall be held in a LRU cache.\n */\n\n/**\n * @typedef {Object} Options\n * @property {Array} sources List of information about GeoTIFF sources.\n * Multiple sources can be combined when their resolution sets are equal after applying a scale.\n * The list of sources defines a mapping between input bands as they are read from each GeoTIFF and\n * the output bands that are provided by data tiles. To control which bands to read from each GeoTIFF,\n * use the {@link import(\"./GeoTIFF.js\").SourceInfo bands} property. If, for example, you specify two\n * sources, one with 3 bands and {@link import(\"./GeoTIFF.js\").SourceInfo nodata} configured, and\n * another with 1 band, the resulting data tiles will have 5 bands: 3 from the first source, 1 alpha\n * band from the first source, and 1 band from the second source.\n * @property {GeoTIFFSourceOptions} [sourceOptions] Additional options to be passed to [geotiff.js](https://geotiffjs.github.io/geotiff.js/module-geotiff.html)'s `fromUrl` or `fromUrls` methods.\n * @property {true|false|'auto'} [convertToRGB=false] By default, bands from the sources are read as-is. When\n * reading GeoTIFFs with the purpose of displaying them as RGB images, setting this to `true` will\n * convert other color spaces (YCbCr, CMYK) to RGB. Setting the option to `'auto'` will make it so CMYK, YCbCr,\n * CIELab, and ICCLab images will automatically be converted to RGB.\n * @property {boolean} [normalize=true] By default, the source data is normalized to values between\n * 0 and 1 with scaling factors based on the raster statistics or `min` and `max` properties of each source.\n * If instead you want to work with the raw values in a style expression, set this to `false`. Setting this option\n * to `false` will make it so any `min` and `max` properties on sources are ignored.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Source projection. If not provided, the GeoTIFF metadata\n * will be read for projection information.\n * @property {number} [transition=250] Duration of the opacity transition for rendering.\n * To disable the opacity transition, pass `transition: 0`.\n * @property {boolean} [wrapX=false] Render tiles beyond the tile grid extent.\n * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,\n * the linear interpolation is used to resample the data. If false, nearest neighbor is used.\n */\n\n/**\n * @classdesc\n * A source for working with GeoTIFF data.\n * **Note for users of the full build**: The `GeoTIFF` source requires the\n * [geotiff.js](https://github.com/geotiffjs/geotiff.js) library to be loaded as well.\n *\n * @api\n */\nclass GeoTIFFSource extends DataTile {\n /**\n * @param {Options} options Data tile options.\n */\n constructor(options) {\n super({\n state: 'loading',\n tileGrid: null,\n projection: options.projection || null,\n opaque: options.opaque,\n transition: options.transition,\n interpolate: options.interpolate !== false,\n wrapX: options.wrapX,\n });\n\n /**\n * @type {Array}\n * @private\n */\n this.sourceInfo_ = options.sources;\n\n const numSources = this.sourceInfo_.length;\n\n /**\n * @type {Object}\n * @private\n */\n this.sourceOptions_ = options.sourceOptions;\n\n /**\n * @type {Array>}\n * @private\n */\n this.sourceImagery_ = new Array(numSources);\n\n /**\n * @type {Array>}\n * @private\n */\n this.sourceMasks_ = new Array(numSources);\n\n /**\n * @type {Array}\n * @private\n */\n this.resolutionFactors_ = new Array(numSources);\n\n /**\n * @type {Array}\n * @private\n */\n this.samplesPerPixel_;\n\n /**\n * @type {Array>}\n * @private\n */\n this.nodataValues_;\n\n /**\n * @type {Array>}\n * @private\n */\n this.metadata_;\n\n /**\n * @type {boolean}\n * @private\n */\n this.normalize_ = options.normalize !== false;\n\n /**\n * @type {boolean}\n * @private\n */\n this.addAlpha_ = false;\n\n /**\n * @type {Error}\n * @private\n */\n this.error_ = null;\n\n /**\n * @type {true|false|'auto'}\n */\n this.convertToRGB_ = options.convertToRGB || false;\n\n this.setKey(this.sourceInfo_.map((source) => source.url).join(','));\n\n const self = this;\n const requests = new Array(numSources);\n for (let i = 0; i < numSources; ++i) {\n requests[i] = getImagesForSource(\n this.sourceInfo_[i],\n this.sourceOptions_,\n );\n }\n Promise.all(requests)\n .then(function (sources) {\n self.configure_(sources);\n })\n .catch(function (error) {\n logError(error);\n self.error_ = error;\n self.setState('error');\n });\n }\n\n /**\n * @return {Error} A source loading error. When the source state is `error`, use this function\n * to get more information about the error. To debug a faulty configuration, you may want to use\n * a listener like\n * ```js\n * geotiffSource.on('change', () => {\n * if (geotiffSource.getState() === 'error') {\n * console.error(geotiffSource.getError());\n * }\n * });\n * ```\n */\n getError() {\n return this.error_;\n }\n\n /**\n * Determine the projection of the images in this GeoTIFF.\n * The default implementation looks at the ProjectedCSTypeGeoKey and the GeographicTypeGeoKey\n * of each image in turn.\n * You can override this method in a subclass to support more projections.\n *\n * @param {Array>} sources Each source is a list of images\n * from a single GeoTIFF.\n */\n determineProjection(sources) {\n const firstSource = sources[0];\n for (let i = firstSource.length - 1; i >= 0; --i) {\n const image = firstSource[i];\n const projection = getProjection(image);\n if (projection) {\n this.projection = projection;\n break;\n }\n }\n }\n\n /**\n * Configure the tile grid based on images within the source GeoTIFFs. Each GeoTIFF\n * must have the same internal tiled structure.\n * @param {Array>} sources Each source is a list of images\n * from a single GeoTIFF.\n * @private\n */\n configure_(sources) {\n let extent;\n let origin;\n let commonRenderTileSizes;\n let commonSourceTileSizes;\n let resolutions;\n const samplesPerPixel = new Array(sources.length);\n const nodataValues = new Array(sources.length);\n const metadata = new Array(sources.length);\n let minZoom = 0;\n\n const sourceCount = sources.length;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const images = [];\n const masks = [];\n sources[sourceIndex].forEach((item) => {\n if (isMask(item)) {\n masks.push(item);\n } else {\n images.push(item);\n }\n });\n\n const imageCount = images.length;\n if (masks.length > 0 && masks.length !== imageCount) {\n throw new Error(\n `Expected one mask per image found ${masks.length} masks and ${imageCount} images`,\n );\n }\n\n let sourceExtent;\n let sourceOrigin;\n const sourceTileSizes = new Array(imageCount);\n const renderTileSizes = new Array(imageCount);\n const sourceResolutions = new Array(imageCount);\n\n nodataValues[sourceIndex] = new Array(imageCount);\n metadata[sourceIndex] = new Array(imageCount);\n\n for (let imageIndex = 0; imageIndex < imageCount; ++imageIndex) {\n const image = images[imageIndex];\n const nodataValue = image.getGDALNoData();\n metadata[sourceIndex][imageIndex] = image.getGDALMetadata(0);\n nodataValues[sourceIndex][imageIndex] = nodataValue;\n\n const wantedSamples = this.sourceInfo_[sourceIndex].bands;\n samplesPerPixel[sourceIndex] = wantedSamples\n ? wantedSamples.length\n : image.getSamplesPerPixel();\n const level = imageCount - (imageIndex + 1);\n\n if (!sourceExtent) {\n sourceExtent = getBoundingBox(image);\n }\n\n if (!sourceOrigin) {\n sourceOrigin = getOrigin(image);\n }\n\n const imageResolutions = getResolutions(image, images[0]);\n sourceResolutions[level] = imageResolutions[0];\n\n const sourceTileSize = [image.getTileWidth(), image.getTileHeight()];\n\n // request larger blocks for untiled layouts\n if (\n sourceTileSize[0] !== sourceTileSize[1] &&\n sourceTileSize[1] < defaultTileSize\n ) {\n sourceTileSize[0] = defaultTileSize;\n sourceTileSize[1] = defaultTileSize;\n }\n\n sourceTileSizes[level] = sourceTileSize;\n\n const aspectRatio = imageResolutions[0] / Math.abs(imageResolutions[1]);\n renderTileSizes[level] = [\n sourceTileSize[0],\n sourceTileSize[1] / aspectRatio,\n ];\n }\n\n if (!extent) {\n extent = sourceExtent;\n } else {\n getIntersection(extent, sourceExtent, extent);\n }\n\n if (!origin) {\n origin = sourceOrigin;\n } else {\n const message = `Origin mismatch for source ${sourceIndex}, got [${sourceOrigin}] but expected [${origin}]`;\n assertEqual(origin, sourceOrigin, 0, message, this.viewRejector);\n }\n\n if (!resolutions) {\n resolutions = sourceResolutions;\n this.resolutionFactors_[sourceIndex] = 1;\n } else {\n if (resolutions.length - minZoom > sourceResolutions.length) {\n minZoom = resolutions.length - sourceResolutions.length;\n }\n const resolutionFactor =\n resolutions[resolutions.length - 1] /\n sourceResolutions[sourceResolutions.length - 1];\n this.resolutionFactors_[sourceIndex] = resolutionFactor;\n const scaledSourceResolutions = sourceResolutions.map(\n (resolution) => (resolution *= resolutionFactor),\n );\n const message = `Resolution mismatch for source ${sourceIndex}, got [${scaledSourceResolutions}] but expected [${resolutions}]`;\n assertEqual(\n resolutions.slice(minZoom, resolutions.length),\n scaledSourceResolutions,\n 0.02,\n message,\n this.viewRejector,\n );\n }\n\n if (!commonRenderTileSizes) {\n commonRenderTileSizes = renderTileSizes;\n } else {\n assertEqual(\n commonRenderTileSizes.slice(minZoom, commonRenderTileSizes.length),\n renderTileSizes,\n 0.01,\n `Tile size mismatch for source ${sourceIndex}`,\n this.viewRejector,\n );\n }\n\n if (!commonSourceTileSizes) {\n commonSourceTileSizes = sourceTileSizes;\n } else {\n assertEqual(\n commonSourceTileSizes.slice(minZoom, commonSourceTileSizes.length),\n sourceTileSizes,\n 0,\n `Tile size mismatch for source ${sourceIndex}`,\n this.viewRejector,\n );\n }\n\n this.sourceImagery_[sourceIndex] = images.reverse();\n this.sourceMasks_[sourceIndex] = masks.reverse();\n }\n\n for (let i = 0, ii = this.sourceImagery_.length; i < ii; ++i) {\n const sourceImagery = this.sourceImagery_[i];\n while (sourceImagery.length < resolutions.length) {\n sourceImagery.unshift(undefined);\n }\n }\n\n if (!this.getProjection()) {\n this.determineProjection(sources);\n }\n\n this.samplesPerPixel_ = samplesPerPixel;\n this.nodataValues_ = nodataValues;\n this.metadata_ = metadata;\n\n // decide if we need to add an alpha band to handle nodata\n outer: for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n // option 1: source is configured with a nodata value\n if (this.sourceInfo_[sourceIndex].nodata !== undefined) {\n this.addAlpha_ = true;\n break;\n }\n if (this.sourceMasks_[sourceIndex].length) {\n this.addAlpha_ = true;\n break;\n }\n\n const values = nodataValues[sourceIndex];\n\n // option 2: check image metadata for limited bands\n const bands = this.sourceInfo_[sourceIndex].bands;\n if (bands) {\n for (let i = 0; i < bands.length; ++i) {\n if (values[bands[i] - 1] !== null) {\n this.addAlpha_ = true;\n break outer;\n }\n }\n continue;\n }\n\n // option 3: check image metadata for all bands\n for (let imageIndex = 0; imageIndex < values.length; ++imageIndex) {\n if (values[imageIndex] !== null) {\n this.addAlpha_ = true;\n break outer;\n }\n }\n }\n\n let bandCount = this.addAlpha_ ? 1 : 0;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n bandCount += samplesPerPixel[sourceIndex];\n }\n this.bandCount = bandCount;\n\n const tileGrid = new TileGrid({\n extent: extent,\n minZoom: minZoom,\n origin: origin,\n resolutions: resolutions,\n tileSizes: commonRenderTileSizes,\n });\n\n this.tileGrid = tileGrid;\n this.setTileSizes(commonSourceTileSizes);\n\n this.setLoader(this.loadTile_.bind(this));\n this.setState('ready');\n\n const zoom = 1;\n if (resolutions.length === 2) {\n resolutions = [resolutions[0], resolutions[1], resolutions[1] / 2];\n } else if (resolutions.length === 1) {\n resolutions = [resolutions[0] * 2, resolutions[0], resolutions[0] / 2];\n }\n\n this.viewResolver({\n showFullExtent: true,\n projection: this.projection,\n resolutions: resolutions,\n center: toUserCoordinate(getCenter(extent), this.projection),\n extent: toUserExtent(extent, this.projection),\n zoom: zoom,\n });\n }\n\n /**\n * @param {number} z The z tile index.\n * @param {number} x The x tile index.\n * @param {number} y The y tile index.\n * @return {Promise} The composed tile data.\n * @private\n */\n loadTile_(z, x, y) {\n const sourceTileSize = this.getTileSize(z);\n const sourceCount = this.sourceImagery_.length;\n const requests = new Array(sourceCount * 2);\n const nodataValues = this.nodataValues_;\n const sourceInfo = this.sourceInfo_;\n const pool = getWorkerPool();\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const source = sourceInfo[sourceIndex];\n const resolutionFactor = this.resolutionFactors_[sourceIndex];\n const pixelBounds = [\n Math.round(x * (sourceTileSize[0] * resolutionFactor)),\n Math.round(y * (sourceTileSize[1] * resolutionFactor)),\n Math.round((x + 1) * (sourceTileSize[0] * resolutionFactor)),\n Math.round((y + 1) * (sourceTileSize[1] * resolutionFactor)),\n ];\n const image = this.sourceImagery_[sourceIndex][z];\n let samples;\n if (source.bands) {\n samples = source.bands.map(function (bandNumber) {\n return bandNumber - 1;\n });\n }\n\n /** @type {number|Array} */\n let fillValue;\n if ('nodata' in source && source.nodata !== null) {\n fillValue = source.nodata;\n } else {\n if (!samples) {\n fillValue = nodataValues[sourceIndex];\n } else {\n fillValue = samples.map(function (sampleIndex) {\n return nodataValues[sourceIndex][sampleIndex];\n });\n }\n }\n\n const readOptions = {\n window: pixelBounds,\n width: sourceTileSize[0],\n height: sourceTileSize[1],\n samples: samples,\n fillValue: fillValue,\n pool: pool,\n interleave: false,\n };\n if (readRGB(this.convertToRGB_, image)) {\n requests[sourceIndex] = image.readRGB(readOptions);\n } else {\n requests[sourceIndex] = image.readRasters(readOptions);\n }\n\n // requests after `sourceCount` are for mask data (if any)\n const maskIndex = sourceCount + sourceIndex;\n const mask = this.sourceMasks_[sourceIndex][z];\n if (!mask) {\n requests[maskIndex] = Promise.resolve(null);\n continue;\n }\n\n requests[maskIndex] = mask.readRasters({\n window: pixelBounds,\n width: sourceTileSize[0],\n height: sourceTileSize[1],\n samples: [0],\n pool: pool,\n interleave: false,\n });\n }\n\n return Promise.all(requests)\n .then(this.composeTile_.bind(this, sourceTileSize))\n .catch(function (error) {\n logError(error);\n throw error;\n });\n }\n\n /**\n * @param {import(\"../size.js\").Size} sourceTileSize The source tile size.\n * @param {Array} sourceSamples The source samples.\n * @return {import(\"../DataTile.js\").Data} The composed tile data.\n * @private\n */\n composeTile_(sourceTileSize, sourceSamples) {\n const metadata = this.metadata_;\n const sourceInfo = this.sourceInfo_;\n const sourceCount = this.sourceImagery_.length;\n const bandCount = this.bandCount;\n const samplesPerPixel = this.samplesPerPixel_;\n const nodataValues = this.nodataValues_;\n const normalize = this.normalize_;\n const addAlpha = this.addAlpha_;\n\n const pixelCount = sourceTileSize[0] * sourceTileSize[1];\n const dataLength = pixelCount * bandCount;\n\n /** @type {Uint8Array|Float32Array} */\n let data;\n if (normalize) {\n data = new Uint8Array(dataLength);\n } else {\n data = new Float32Array(dataLength);\n }\n\n let dataIndex = 0;\n for (let pixelIndex = 0; pixelIndex < pixelCount; ++pixelIndex) {\n let transparent = addAlpha;\n for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) {\n const source = sourceInfo[sourceIndex];\n\n let min = source.min;\n let max = source.max;\n let gain, bias;\n if (normalize) {\n const stats = metadata[sourceIndex][0];\n if (min === undefined) {\n if (stats && STATISTICS_MINIMUM in stats) {\n min = parseFloat(stats[STATISTICS_MINIMUM]);\n } else {\n min = getMinForDataType(sourceSamples[sourceIndex][0]);\n }\n }\n if (max === undefined) {\n if (stats && STATISTICS_MAXIMUM in stats) {\n max = parseFloat(stats[STATISTICS_MAXIMUM]);\n } else {\n max = getMaxForDataType(sourceSamples[sourceIndex][0]);\n }\n }\n\n gain = 255 / (max - min);\n bias = -min * gain;\n }\n\n for (\n let sampleIndex = 0;\n sampleIndex < samplesPerPixel[sourceIndex];\n ++sampleIndex\n ) {\n const sourceValue =\n sourceSamples[sourceIndex][sampleIndex][pixelIndex];\n\n let value;\n if (normalize) {\n value = clamp(gain * sourceValue + bias, 0, 255);\n } else {\n value = sourceValue;\n }\n\n if (!addAlpha) {\n data[dataIndex] = value;\n } else {\n let nodata = source.nodata;\n if (nodata === undefined) {\n let bandIndex;\n if (source.bands) {\n bandIndex = source.bands[sampleIndex] - 1;\n } else {\n bandIndex = sampleIndex;\n }\n nodata = nodataValues[sourceIndex][bandIndex];\n }\n\n const nodataIsNaN = isNaN(nodata);\n if (\n (!nodataIsNaN && sourceValue !== nodata) ||\n (nodataIsNaN && !isNaN(sourceValue))\n ) {\n transparent = false;\n data[dataIndex] = value;\n }\n }\n dataIndex++;\n }\n if (!transparent) {\n const maskIndex = sourceCount + sourceIndex;\n const mask = sourceSamples[maskIndex];\n if (mask && !mask[0][pixelIndex]) {\n transparent = true;\n }\n }\n }\n if (addAlpha) {\n if (!transparent) {\n data[dataIndex] = 255;\n }\n dataIndex++;\n }\n }\n\n return data;\n }\n}\n\n/**\n * Get a promise for view properties based on the source. Use the result of this function\n * as the `view` option in a map constructor.\n *\n * const source = new GeoTIFF(options);\n *\n * const map = new Map({\n * target: 'map',\n * layers: [\n * new TileLayer({\n * source: source,\n * }),\n * ],\n * view: source.getView(),\n * });\n *\n * @function\n * @return {Promise} A promise for view-related properties.\n * @api\n *\n */\nGeoTIFFSource.prototype.getView;\n\nexport default GeoTIFFSource;\n","// Use this separately until https://github.com/Viglino/ol-ext/pull/1087 is released\n/*\n Copyright (c) 2015 Jean-Marc VIGLINO,\n released under the CeCILL-B license (French BSD license)\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\n*/\n\nimport ol_control_Control from 'ol/control/Control.js'\n\n/**\n * @classdesc Swipe Control.\n * @fires moving\n * @constructor\n * @extends {ol_control_Control}\n * @param {Object=} Control options.\n * @param {ol.layer|Array} options.layers layers to swipe\n * @param {ol.layer|Array} options.rightLayers layers to swipe on right side\n * @param {string} options.className control class name\n * @param {number} options.position position property of the swipe [0,1], default 0.5\n * @param {string} options.orientation orientation property (vertical|horizontal), default vertical\n */\nvar ol_control_Swipe = class olcontrolSwipe extends ol_control_Control {\n constructor(options) {\n options = options || {};\n\n var element = document.createElement('div');\n super({\n element: element\n });\n \n element.className = (options.className || 'ol-swipe') + ' ol-unselectable ol-control';\n var button = document.createElement('button');\n element.appendChild(button);\n\n element.addEventListener('mousedown', this.move.bind(this));\n element.addEventListener('touchstart', this.move.bind(this));\n\n // An array of listener on layer postcompose\n this.precomposeRight_ = this.precomposeRight.bind(this);\n this.precomposeLeft_ = this.precomposeLeft.bind(this);\n this.postcompose_ = this.postcompose.bind(this);\n\n this.layers = [];\n if (options.layers)\n this.addLayer(options.layers, false);\n if (options.rightLayers)\n this.addLayer(options.rightLayers, true);\n\n this.on('propertychange', function (e) {\n if (this.getMap()) {\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n if (this.get('orientation') === \"horizontal\") {\n this.element.style.top = this.get('position') * 100 + \"%\";\n this.element.style.left = \"\";\n } else {\n if (this.get('orientation') !== \"vertical\")\n this.set('orientation', \"vertical\");\n this.element.style.left = this.get('position') * 100 + \"%\";\n this.element.style.top = \"\";\n }\n if (e.key === 'orientation') {\n this.element.classList.remove(\"horizontal\", \"vertical\");\n this.element.classList.add(this.get('orientation'));\n }\n // Force VectorImage to refresh\n if (!this.isMoving) {\n this.layers.forEach(function (l) {\n if (l.layer.getImageRatio)\n l.layer.changed();\n });\n }\n }.bind(this));\n\n this.set('position', options.position || 0.5);\n this.set('orientation', options.orientation || 'vertical');\n }\n /**\n * Set the map instance the control associated with.\n * @param {_ol_Map_} map The map instance.\n */\n setMap(map) {\n var i;\n var l;\n\n if (this.getMap()) {\n for (i = 0; i < this.layers.length; i++) {\n l = this.layers[i];\n if (l.right)\n l.layer.un(['precompose', 'prerender'], this.precomposeRight_);\n else\n l.layer.un(['precompose', 'prerender'], this.precomposeLeft_);\n l.layer.un(['postcompose', 'postrender'], this.postcompose_);\n }\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n\n super.setMap(map);\n\n if (map) {\n this._listener = [];\n for (i = 0; i < this.layers.length; i++) {\n l = this.layers[i];\n if (l.right)\n l.layer.on(['precompose', 'prerender'], this.precomposeRight_);\n else\n l.layer.on(['precompose', 'prerender'], this.precomposeLeft_);\n l.layer.on(['postcompose', 'postrender'], this.postcompose_);\n }\n try { map.renderSync(); } catch (e) { /* ok */ }\n }\n }\n /** @private\n */\n isLayer_(layer) {\n for (var k = 0; k < this.layers.length; k++) {\n if (this.layers[k].layer === layer)\n return k;\n }\n return -1;\n }\n /** Add a layer to clip\n *\t@param {ol.layer|Array} layer to clip\n *\t@param {bool} add layer in the right part of the map, default left.\n */\n addLayer(layers, right) {\n if (!(layers instanceof Array))\n layers = [layers];\n for (var i = 0; i < layers.length; i++) {\n var l = layers[i];\n if (this.isLayer_(l) < 0) {\n this.layers.push({ layer: l, right: right });\n if (this.getMap()) {\n if (right)\n l.on(['precompose', 'prerender'], this.precomposeRight_);\n else\n l.on(['precompose', 'prerender'], this.precomposeLeft_);\n l.on(['postcompose', 'postrender'], this.postcompose_);\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n }\n }\n }\n /** Remove all layers\n */\n removeLayers() {\n var layers = [];\n this.layers.forEach(function (l) { layers.push(l.layer); });\n this.removeLayer(layers);\n }\n /** Remove a layer to clip\n *\t@param {ol.layer|Array} layer to clip\n */\n removeLayer(layers) {\n if (!(layers instanceof Array))\n layers = [layers];\n for (var i = 0; i < layers.length; i++) {\n var k = this.isLayer_(layers[i]);\n if (k >= 0 && this.getMap()) {\n if (this.layers[k].right)\n layers[i].un(['precompose', 'prerender'], this.precomposeRight_);\n else\n layers[i].un(['precompose', 'prerender'], this.precomposeLeft_);\n layers[i].un(['postcompose', 'postrender'], this.postcompose_);\n this.layers.splice(k, 1);\n }\n }\n if (this.getMap()) {\n try { this.getMap().renderSync(); } catch (e) { /* ok */ }\n }\n }\n /** Get visible rectangle\n * @returns {ol.extent}\n */\n getRectangle() {\n var s;\n if (this.get('orientation') === 'vertical') {\n s = this.getMap().getSize();\n return [0, 0, s[0] * this.get('position'), s[1]];\n } else {\n s = this.getMap().getSize();\n return [0, 0, s[0], s[1] * this.get('position')];\n }\n }\n /** @private\n */\n move(e) {\n var self = this;\n var l;\n if (!this._movefn)\n this._movefn = this.move.bind(this);\n switch (e.type) {\n case 'touchcancel':\n case 'touchend':\n case 'mouseup': {\n self.isMoving = false;\n [\"mouseup\", \"mousemove\", \"touchend\", \"touchcancel\", \"touchmove\"]\n .forEach(function (eventName) {\n document.removeEventListener(eventName, self._movefn);\n });\n // Force VectorImage to refresh\n this.layers.forEach(function (l) {\n if (l.layer.getImageRatio)\n l.layer.changed();\n });\n break;\n }\n case 'mousedown':\n case 'touchstart': {\n self.isMoving = true;\n [\"mouseup\", \"mousemove\", \"touchend\", \"touchcancel\", \"touchmove\"]\n .forEach(function (eventName) {\n document.addEventListener(eventName, self._movefn);\n });\n }\n // fallthrough\n case 'mousemove':\n case 'touchmove': {\n if (self.isMoving) {\n if (self.get('orientation') === 'vertical') {\n var pageX = e.pageX\n || (e.touches && e.touches.length && e.touches[0].pageX)\n || (e.changedTouches && e.changedTouches.length && e.changedTouches[0].pageX);\n if (!pageX)\n break;\n pageX -= self.getMap().getTargetElement().getBoundingClientRect().left +\n window.pageXOffset - document.documentElement.clientLeft;\n\n l = self.getMap().getSize()[0];\n var w = l - Math.min(Math.max(0, l - pageX), l);\n l = w / l;\n self.set('position', l);\n self.dispatchEvent({ type: 'moving', size: [w, self.getMap().getSize()[1]], position: [l, 0] });\n } else {\n var pageY = e.pageY\n || (e.touches && e.touches.length && e.touches[0].pageY)\n || (e.changedTouches && e.changedTouches.length && e.changedTouches[0].pageY);\n if (!pageY)\n break;\n pageY -= self.getMap().getTargetElement().getBoundingClientRect().top +\n window.pageYOffset - document.documentElement.clientTop;\n\n l = self.getMap().getSize()[1];\n var h = l - Math.min(Math.max(0, l - pageY), l);\n l = h / l;\n self.set('position', l);\n self.dispatchEvent({ type: 'moving', size: [self.getMap().getSize()[0], h], position: [0, l] });\n }\n }\n break;\n }\n default: break;\n }\n }\n /** @private\n */\n _transformPt(e, pt) {\n var tr = e.inversePixelTransform;\n var x = pt[0];\n var y = pt[1];\n pt[0] = tr[0] * x + tr[2] * y + tr[4];\n pt[1] = tr[1] * x + tr[3] * y + tr[5];\n return pt;\n }\n /** @private\n */\n _drawRect(e, pts) {\n var tr = e.inversePixelTransform;\n if (tr) {\n var r = [\n [pts[0][0], pts[0][1]],\n [pts[0][0], pts[1][1]],\n [pts[1][0], pts[1][1]],\n [pts[1][0], pts[0][1]],\n [pts[0][0], pts[0][1]]\n ];\n e.context.save();\n // Rotate VectorImages \n if (e.target.getImageRatio) {\n var rot = -Math.atan2(e.frameState.pixelToCoordinateTransform[1], e.frameState.pixelToCoordinateTransform[0]);\n e.context.translate(e.frameState.size[0] / 2, e.frameState.size[1] / 2);\n e.context.rotate(rot);\n e.context.translate(-e.frameState.size[0] / 2, -e.frameState.size[1] / 2);\n }\n r.forEach(function (pt, i) {\n pt = [\n (pt[0] * tr[0] - pt[1] * tr[1] + tr[4]),\n (-pt[0] * tr[2] + pt[1] * tr[3] + tr[5])\n ];\n if (!i) {\n e.context.moveTo(pt[0], pt[1]);\n } else {\n e.context.lineTo(pt[0], pt[1]);\n }\n });\n e.context.restore();\n } else {\n var ratio = e.frameState.pixelRatio;\n e.context.rect(pts[0][0] * ratio, pts[0][1] * ratio, pts[1][0] * ratio, pts[1][1] * ratio);\n }\n }\n /** @private\n */\n precomposeLeft(e) {\n var ctx = e.context;\n if (ctx instanceof WebGLRenderingContext) {\n if (e.type === 'prerender') {\n // Clear\n if (this._lefttime != e.frameState.time) {\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n this._lefttime = e.frameState.time;\n }\n\n // Clip\n ctx.enable(ctx.SCISSOR_TEST);\n\n var mapSize = this.getMap().getSize(); // [width, height] in CSS pixels\n\n\n // get render coordinates and dimensions given CSS coordinates\n var bottomLeft = this._transformPt(e, [0, mapSize[1]]);\n var topRight = this._transformPt(e, [mapSize[0], 0]);\n\n var fullWidth = topRight[0] - bottomLeft[0];\n var fullHeight = topRight[1] - bottomLeft[1];\n var width, height;\n if (this.get('orientation') === \"vertical\") {\n width = Math.round(fullWidth * this.get('position'));\n height = fullHeight;\n } else {\n width = fullWidth;\n height = Math.round((fullHeight * this.get('position')));\n bottomLeft[1] += fullHeight - height;\n }\n ctx.scissor(bottomLeft[0], bottomLeft[1], width, height);\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n }\n } else {\n var size = e.frameState.size;\n ctx.save();\n ctx.beginPath();\n var pts = [[0, 0], [size[0], size[1]]];\n if (this.get('orientation') === \"vertical\") {\n pts[1] = [\n size[0] * .5 + this.getMap().getSize()[0] * (this.get('position') - .5),\n size[1]\n ];\n } else {\n pts[1] = [\n size[0],\n size[1] * .5 + this.getMap().getSize()[1] * (this.get('position') - .5)\n ];\n }\n this._drawRect(e, pts);\n ctx.clip();\n }\n }\n /** @private\n */\n precomposeRight(e) {\n var ctx = e.context;\n if (ctx instanceof WebGLRenderingContext) {\n if (e.type === 'prerender') {\n // Clear\n if (this._righttime != e.frameState.time) {\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n this._righttime = e.frameState.time;\n }\n\n // Clip\n ctx.enable(ctx.SCISSOR_TEST);\n\n var mapSize = this.getMap().getSize(); // [width, height] in CSS pixels\n\n\n // get render coordinates and dimensions given CSS coordinates\n var bottomLeft = this._transformPt(e, [0, mapSize[1]]);\n var topRight = this._transformPt(e, [mapSize[0], 0]);\n\n var fullWidth = topRight[0] - bottomLeft[0];\n var fullHeight = topRight[1] - bottomLeft[1];\n var width, height;\n if (this.get('orientation') === \"vertical\") {\n height = fullHeight;\n width = Math.round(fullWidth * (1 - this.get('position')));\n bottomLeft[0] += fullWidth - width;\n } else {\n width = fullWidth;\n height = Math.round(fullHeight * (1 - this.get('position')));\n }\n ctx.scissor(bottomLeft[0], bottomLeft[1], width, height);\n ctx.clearColor(0, 0, 0, 0);\n ctx.clear(ctx.COLOR_BUFFER_BIT);\n }\n } else {\n var size = e.frameState.size;\n ctx.save();\n ctx.beginPath();\n var pts = [[0, 0], [size[0], size[1]]];\n if (this.get('orientation') === \"vertical\") {\n pts[0] = [\n size[0] * .5 + this.getMap().getSize()[0] * (this.get('position') - .5),\n 0\n ];\n } else {\n pts[0] = [\n 0,\n size[1] * .5 + this.getMap().getSize()[1] * (this.get('position') - .5)\n ];\n }\n this._drawRect(e, pts);\n ctx.clip();\n }\n }\n /** @private\n */\n postcompose(e) {\n if (e.context instanceof WebGLRenderingContext) {\n if (e.type === 'postrender') {\n var gl = e.context;\n gl.disable(gl.SCISSOR_TEST);\n }\n } else {\n // restore context when decluttering is done (ol>=6)\n // https://github.com/openlayers/openlayers/issues/10096\n if (e.target.getClassName && e.target.getClassName() !== 'ol-layer' && e.target.get('declutter')) {\n setTimeout(function () {\n e.context.restore();\n }, 0);\n } else {\n e.context.restore();\n }\n }\n }\n}\n\nexport default ol_control_Swipe\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!./MapViewer.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!./MapViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MapViewer.vue?vue&type=template&id=76347783\"\nimport script from \"./MapViewer.vue?vue&type=script&lang=js\"\nexport * from \"./MapViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\nimport style1 from \"./MapViewer.vue?vue&type=style&index=1&id=76347783&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","'use strict';\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw new $RangeError('NaN is not allowed');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining = toPositiveInteger(notANaN(+limit));\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.drop');\n"],"names":["e","t","module","exports","this","s","r","n","o","a","i","l","default","c","d","u","p","h","m","g","y","f","b","w","v","$","namespace","spin","hidden","address","country","city","road","olControl","glass","container","control","button","input","expanded","reset","result","inputText","icon","k","containerId","buttonControlId","inputQueryId","inputResetId","cssClasses","x","Object","freeze","__proto__","q","C","S","L","j","E","T","N","R","A","P","provider","placeholder","featureStyle","targetType","lang","limit","keepOpen","preventDefault","autoComplete","autoCompleteMinLength","autoCompleteTimeout","debug","I","Error","_","window","performance","Date","now","timing","navigationStart","toString","M","test","O","Array","isArray","forEach","split","length","V","U","F","G","classList","contains","B","className","D","replace","String","replaceAll","Q","document","createElement","id","classname","attr","setAttribute","name","value","innerHTML","createDocumentFragment","childNodes","append","RegExp","add","trim","setTimeout","remove","z","H","constructor","options","els","createControl","querySelector","K","settings","url","params","langs","getParameters","toLowerCase","query","includes","handleResponse","features","map","lon","geometry","coordinates","lat","properties","postcode","state","original","formatted","details","J","format","addressdetails","countrycodes","bbox","boundingbox","display_name","houseNumber","house_number","town","W","key","neighbourhood","X","callbackName","includeNeighborhood","maxResults","resources","resourceSets","point","formattedAddress","Y","countrycode","pretty","no_annotations","results","lng","components","Z","Promise","ee","data","method","mode","credentials","jsonp","head","Math","round","random","indexOf","removeChild","fetch","then","json","catch","keys","reduce","push","encodeURIComponent","join","te","se","Base","layerName","layer","source","newProvider","lastQuery","registeredListeners","mapClick","setListeners","stopPropagation","collapse","expand","addEventListener","target","which","keyCode","clearTimeout","focus","clearResults","firstChild","console","info","createList","listenMapClick","addressTemplate","chosen","getMap","Number","parseFloat","getView","getProjection","transform","transformExtent","dispatchEvent","type","coordinate","place","fit","duration","animate","resolution","center","createFeature","feature","addLayer","setStyle","setId","getSource","addFeature","building","village","blur","getTargetElement","handleEvent","removeEventListener","getLayers","re","image","scale","src","super","element","prototype","hasOwnProperty","call","getLayer","setProvider","setProviderKey","OSMGeocoder","geojson","opt","polygon_geojson","polygon_threshold","filter","class","methods","addGeocoder","callback","$config","geocoder","Geocoder","on","event","bboxOpenEO","west","east","north","south","addControl","render","staticRenderFns","component","_vm","_c","_self","texts","staticClass","pointer","toggle","_v","_s","current","_e","mixins","ControlMixin","computed","text","props","attrs","ref","addData","isGeoTiff","textControlText","_l","geotiffs","colorMap","bands","defaultChannels","get","update","updateGeoTiffStyle","loading","chart","closeChart","_b","staticStyle","$event","openModal","apply","arguments","EventBusMixin","events","save","broadcast","file","$emit","directives","rawName","channels","expression","title","cols","isGray","multiBand","channel","labels","modifiers","$$selectedVal","selected","val","_value","_n","$set","multiple","band","domProps","min","composing","$forceUpdate","max","_i","$$a","$$el","$$c","checked","$$v","$$i","concat","slice","mounted","watch","immediate","handler","updateChannels","emit","deep","isValid","assign","createElementNS","namespaceURI","qualifiedName","node","normalizeWhitespace","getAllTextContent_","accumulator","nodeType","Node","CDATA_SECTION_NODE","TEXT_NODE","nodeValue","nextSibling","isDocument","object","parse","xml","DOMParser","parseFromString","makeArrayPusher","valueReader","thisArg","objectStack","undefined","array","makeObjectPropertyPusher","property","localName","makeObjectPropertySetter","makeSimpleNodeFactory","fixedNodeName","fixedNamespaceURI","newNodeName","context","nodeName","makeStructureNS","namespaceURIs","structure","structureNS","ii","parseNode","parsersNS","firstElementChild","nextElementSibling","parsers","parser","pushParseAndPop","pop","document_","implementation","createDocument","XML","read","doc","readFromDocument","readFromNode","ELEMENT_NODE","NAMESPACE_URI","readHref","getAttributeNS","readDecimal","readDecimalString","string","exec","readPositiveInteger","readNonNegativeIntegerString","parseInt","readString","NAMESPACE_URIS","PARSERS","readServiceIdentification","readServiceProvider","readOperationsMetadata","OWS","owsObject","ADDRESS_PARSERS","ALLOWED_VALUES_PARSERS","readValue","CONSTRAINT_PARSERS","readAllowedValues","CONTACT_INFO_PARSERS","readPhone","readAddress","DCP_PARSERS","readHttp","HTTP_PARSERS","readGet","OPERATION_PARSERS","readDcp","OPERATIONS_METADATA_PARSERS","readOperation","PHONE_PARSERS","REQUEST_METHOD_PARSERS","readConstraint","SERVICE_CONTACT_PARSERS","readContactInfo","SERVICE_IDENTIFICATION_PARSERS","SERVICE_PROVIDER_PARSERS","readServiceContact","getAttribute","href","OWS_NAMESPACE_URIS","readContents","WMTSCapabilities","owsParser_","version","WMTSCapabilityObject","CONTENTS_PARSERS","readLayer","readTileMatrixSet","LAYER_PARSERS","readStyle","readTileMatrixSetLink","readDimensions","readResourceUrl","readBoundingBox","readBoundingBoxWithCrs","STYLE_PARSERS","readLegendUrl","TMS_LINKS_PARSERS","readTileMatrixLimitsList","TMS_LIMITS_LIST_PARSERS","readTileMatrixLimits","TMS_LIMITS_PARSERS","DIMENSION_PARSERS","WGS84_BBOX_READERS","readCoordinates","TMS_PARSERS","readTileMatrix","TM_PARSERS","style","isDefault","template","resourceType","resource","crs","extent","legend","isNaN","appendParams","uri","keyParams","qs","WMTSTileGrid","TileGrid","origin","origins","resolutions","tileSize","tileSizes","sizes","matrixIds_","matrixIds","getMatrixId","getMatrixIds","createFromCapabilitiesMatrixSet","matrixSet","matrixLimits","supportedCRSPropName","matrixIdsPropName","identifierPropName","scaleDenominatorPropName","topLeftCornerPropName","tileWidthPropName","tileHeightPropName","code","projection","metersPerUnit","getMetersPerUnit","switchOriginXY","getAxisOrientation","substr","sort","elt","matrixAvailable","find","elt_ml","tileWidth","tileHeight","TileImage","requestEncoding","tileGrid","urls","attributions","attributionsCollapsible","cacheSize","crossOrigin","interpolate","reprojectionErrorThreshold","tileClass","tileLoadFunction","tilePixelRatio","wrapX","transition","zDirection","version_","format_","dimensions_","dimensions","layer_","matrixSet_","style_","requestEncoding_","setKey","getKeyForDimensions_","tileUrlFunction","createFromWMTSTemplate","bind","setUrls","setTileUrlFunction","getDimensions","getFormat","getMatrixSet","getRequestEncoding","getStyle","getVersion","res","updateDimensions","tileCoord","pixelRatio","localContext","optionsFromCapabilities","wmtsCap","config","layers","tileMatrixSets","idx","findIndex","tileMatrixSet","el","supportedCRS","proj1","proj2","equivalent","index","matrixSets","matrixSetObj","projConfig","switchXY","matrix","TileMatrix","selectedMatrixLimit","MinTileCol","MinTileRow","MaxTileCol","MatrixWidth","MaxTileRow","MatrixHeight","tileMatrixValue","Identifier","ScaleDenominator","TopLeftCorner","tileSpanX","TileWidth","tileSpanY","TileHeight","matrixSetExtent","wgs84BoundingBox","wgs84ProjectionExtent","getExtent","wgs84MatrixSetExtent","gets","constraint","encodings","ol_control_Timeline","create","zoomButton","_scrollDiv","parent","_buttons","addButton","handleClick","zoom","refresh","_intervalDiv","_select","scrollListener","_setScrollLeft","date","getDate","dateStart","dateEnd","scrollTimeout","scrollDiv","onmove","_moving","_tline","_scrollLeft","set","maxWidth","minDate","Infinity","maxDate","graduation","minZoom","maxZoom","setInterval","interval","getHTML","_getHTML","getFeatureDate","_getFeatureDate","endFeatureDate","_endFeatureDate","setFeatures","setMap","html","click","isCollapsed","collapsed","_features","_source","getFeatures","first","d2","tline","end","div","_minDate","_maxDate","isFinite","delta","_scale","width","_drawTime","line","lineHeight","fdiv","left","img","querySelectorAll","ondragstart","minWidth","pos","top","_nbline","setDate","anim","position","_getOffsetFromDate","_getDateFromOffset","offset","scrollLeft","_getScrollLeft","dt","month","dmonth","tdiv","dx","heigth","year","getFullYear","setFullYear","dyear","setMonth","toLocaleDateString","dday","day","offdate","getMonth","outerWidth","roundDate","stick","_roundTo","getStartDate","getEndDate","ExtentMixin","timeline","addWebService","service","updateXYZLayer","updateWMTSLayer","Utils","error","getWMTSTimes","capabilities","layerId","Contents","Layer","Dimension","timeDimension","Value","initWMTSLayer","URL","searchParams","response","axios","responseType","exception","prefix","attributes","layerNames","defaultDate","getResourceTitle","layerCollection","Collection","TIME","times","isObject","WMTS","mapLayer","TileLayer","trackTileProgress","noSwitcherDelete","run","Timeline","toISOString","btns","getElementsByClassName","innerText","disabled","log","group","LayerGroup","display","getVisible","addLayerToMap","removeControl","replaceParam","getTime","XYZ","process","process_graph","crs84","e4326","values","process_id","spatial_extent","isBBox","isGeoJSON","addExtent","GeoTiffState","geotiff","getColorMap","noData","getNoData","getBands","getBandVar","getFormula","getNoDataFormula","variables","alphaband","color","formula","GeoTIFFImage","getSampleByteSize","fileDirectory","BitsPerSample","ceil","getReaderForSample","sampleIndex","getSampleFormat","bitsPerSample","getBitsPerSample","DataView","getUint8","getUint16","getUint32","getInt8","getInt16","getInt32","littleEndian","getFloat16","getFloat32","getFloat64","SampleFormat","expressionToGlsl","compilationContext","expectedType","parsingContext","parseStyle","bandCount","vertexShader","TEXTURE_COORD","TILE_TRANSFORM","TEXTURE_PIXEL_WIDTH","TEXTURE_PIXEL_HEIGHT","TEXTURE_RESOLUTION","TEXTURE_ORIGIN_X","TEXTURE_ORIGIN_Y","DEPTH","inFragmentShader","pipeline","contrast","exposure","saturation","gamma","brightness","uniforms","numVariables","variable","uniformName","uniformDeclarations","textureCount","TILE_TEXTURE_ARRAY","paletteTextures","functionDefintions","functions","fragmentShader","RENDER_EXTENT","TRANSITION_ALPHA","RESOLUTION","ZOOM","WebGLTileLayer","BaseTile","sources_","sources","renderedSource_","renderedResolution_","NaN","cacheSize_","styleVariables_","addChangeListener","SOURCE","handleSourceUpdate_","getSources","getRenderSource","getSourceState","getState","hasRenderer","getRenderer","clearCache","getSourceBandCount_","MAX_SAFE_INTEGER","createRenderer","parsedStyle","renderSources","frameState","layerRenderer","canvas","prepareFrame","renderFrame","rendered","viewState","ready","sourceState","onChange","changed","renderComplete","altSources","renderer","updateStyleVariables","dispose","DataTileSource","maxResolution","opaque","gutter_","gutter","tileSize_","tileSizes_","tileLoadingKeys_","loader_","loader","handleTileChange_","tileGridForProjection_","tileCacheForProjection_","setTileSizes","getTileSize","getTileGrid","getGutterForProjection","thisProj","setLoader","getReprojTile_","targetProj","sourceProj","cache","getTileCacheForProjection","tileCoordKey","containsKey","tile","getKey","reprojTilePixelRatio","getResolutions","textureSize","sourceTileGrid","getTileGridForProjection","targetTileGrid","wrappedTileCoord","getTileCoordForTileUrlFunction","getTileFunction","getTile","tileOptions","newTile","sourceProjection","size","tileCache","sourceLoader","DataTile","EventType","CHANGE","uid","tileState","TileState","LOADING","TileEventType","TILELOADSTART","ERROR","TILELOADERROR","LOADED","TILELOADEND","projKey","setTileGridForProjection","tilegrid","proj","TileCache","expireCache","usedTiles","usedTileCache","clear","defaultPoolSize","navigator","hardwareConcurrency","Pool","createWorker","workers","_awaitingDecoder","messageId","resolve","worker","idle","decode","buffer","decoder","candidate","floor","onMessage","decoded","postMessage","destroy","terminate","isMask","NewSubfileType","readRGB","preference","getSamplesPerPixel","interpretation","PhotometricInterpretation","interpretations","CMYK","YCbCr","CIELab","ICCLab","STATISTICS_MAXIMUM","STATISTICS_MINIMUM","defaultTileSize","workerPool","getWorkerPool","getBoundingBox","getWidth","getHeight","getOrigin","referenceImage","getResolution","geoKeys","ProjectedCSTypeGeoKey","units","ProjLinearUnitsGeoKey","Projection","GeographicTypeGeoKey","GeogAngularUnitsGeoKey","getImagesForTIFF","tiff","getImageCount","count","requests","getImage","all","getImagesForSource","request","blob","overviews","assertEqual","expected","got","tolerance","message","rejector","abs","getMinForDataType","Int8Array","Int16Array","Int32Array","Float32Array","getMaxForDataType","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","GeoTIFFSource","sourceInfo_","numSources","sourceOptions_","sourceOptions","sourceImagery_","sourceMasks_","resolutionFactors_","samplesPerPixel_","nodataValues_","metadata_","normalize_","normalize","addAlpha_","error_","convertToRGB_","convertToRGB","self","configure_","setState","getError","determineProjection","firstSource","commonRenderTileSizes","commonSourceTileSizes","samplesPerPixel","nodataValues","metadata","sourceCount","sourceIndex","images","masks","item","imageCount","sourceExtent","sourceOrigin","sourceTileSizes","renderTileSizes","sourceResolutions","imageIndex","nodataValue","getGDALNoData","getGDALMetadata","wantedSamples","level","imageResolutions","sourceTileSize","getTileWidth","getTileHeight","aspectRatio","viewRejector","resolutionFactor","scaledSourceResolutions","reverse","sourceImagery","unshift","outer","nodata","loadTile_","viewResolver","showFullExtent","toUserCoordinate","toUserExtent","sourceInfo","pool","pixelBounds","samples","fillValue","bandNumber","readOptions","height","interleave","readRasters","maskIndex","mask","composeTile_","sourceSamples","addAlpha","pixelCount","dataLength","dataIndex","pixelIndex","transparent","gain","bias","stats","sourceValue","bandIndex","nodataIsNaN","ol_control_Swipe","ol_control_Control","appendChild","move","precomposeRight_","precomposeRight","precomposeLeft_","precomposeLeft","postcompose_","postcompose","rightLayers","renderSync","isMoving","getImageRatio","orientation","right","un","_listener","isLayer_","removeLayers","removeLayer","splice","getRectangle","getSize","_movefn","eventName","pageX","touches","changedTouches","getBoundingClientRect","pageXOffset","documentElement","clientLeft","pageY","pageYOffset","clientTop","_transformPt","pt","tr","inversePixelTransform","_drawRect","pts","rot","atan2","pixelToCoordinateTransform","translate","rotate","lineTo","moveTo","restore","ratio","rect","ctx","WebGLRenderingContext","_lefttime","time","clearColor","COLOR_BUFFER_BIT","enable","SCISSOR_TEST","mapSize","bottomLeft","topRight","fullWidth","fullHeight","scissor","beginPath","clip","_righttime","gl","disable","getClassName","GeocoderMixin","MapMixin","WebServiceMixin","AddDataControl","ChannelControl","Pane","ScatterChart","Splitpanes","TextControl","swipe","mapState","isWebService","Service","GeoTiffFile","isGeoJson","JSON_","renderMap","view","loadData","connection","isMapServiceSupported","createMap","evt","updateSwiper","addLayerSwitcher","toExtent","getFitOptions","addBasemaps","addGeoJson","basemap","getCode","addGeoTiff","stac","getContext","$listeners","drop","getViewport","onPointerMove","onClick","addCollection","showWebService","fromLonLat","extentLayer","VectorLayer","VectorSource","Feature","PolygonFromExtent","removeLayerFill","getPixelValues","pixel","getData","from","alpha","formatCoords","coords","toFixed","formatValue","plural","validValues","flat","Set","datasets","label","tiffState","sourceOpts","getBlob","getUrl","OlGeoTiff","once","files","confirmOpenAll","promises","getArray","every","opts","Swipe","setOptions","$RangeError","RangeError","it","toIntegerOrInfinity","anObject","getIteratorDirect","notANaN","toPositiveInteger","createIteratorProxy","IS_PURE","IteratorProxy","done","iterator","next","remaining","proto","real","forced"],"sourceRoot":""} \ No newline at end of file diff --git a/js/2668.4da4ee01.js b/js/2668.5aac89cc.js similarity index 99% rename from js/2668.4da4ee01.js rename to js/2668.5aac89cc.js index fa82f235..d7a090c1 100644 --- a/js/2668.4da4ee01.js +++ b/js/2668.5aac89cc.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[2668,2722,3298,4279,6660,9409],{35254:(e,t,s)=>{s.d(t,{A:()=>a});const a={components:{FederationNotice:()=>s.e(2604).then(s.bind(s,52604)),FederationMissingNotice:()=>s.e(2869).then(s.bind(s,62869))},props:{federation:{type:Object,default:()=>({})}}}},44712:(e,t,s)=>{s.d(t,{A:()=>p});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component collections"},[t("SearchableList",{attrs:{data:e.collections,identifierKey:"id",summaryKey:"title",keywordsKey:"keywords",showKeywords:e.showKeywords,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"content-start",fn:function(s){return[e._t("content-start",null,null,s),e.missing?t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}}):e._e()]}},{key:"after-search-box",fn:function(t){return[e._t("after-search-box",null,null,t)]}},{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Collection",{attrs:{data:s.item,mapOptions:e.mapOptions,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("collection-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("collection-end",null,null,t)]}},{key:"spatial-extents",fn:function(t){return[e._t("collection-spatial-extents",null,null,t)]}},{key:"temporal-extents",fn:function(t){return[e._t("collection-temporal-extents",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"Collections",components:{Collection:()=>i.A.loadAsyncComponent(Promise.all([s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(3249)]).then(s.bind(s,3249))),SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{collections:{type:Array,default:()=>[]},mapOptions:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Collections"},collapsed:{type:Boolean,default:null},loadAdditionalData:{type:Function,default:null},showKeywords:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const p=d.exports},90334:(e,t,s)=>{s.d(t,{A:()=>p});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component file-formats"},[t("SearchableList",{attrs:{data:e.fileFormats,summaryKey:"title",keywordsKey:"gis_data_types",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.item.name))]),t("ul",{staticClass:"badges small inline"},[e.showAll&&"input"===s.item.type?t("li",{staticClass:"badge option1"},[e._v("Import")]):e._e(),e.showAll&&"output"===s.item.type?t("li",{staticClass:"badge option2"},[e._v("Export")]):e._e(),Array.isArray(s.item.gis_data_types)?e._l(s.item.gis_data_types,(function(s){return t("li",{key:s,staticClass:"badge gis"},[e._v(e._s(s))])})):e._e()],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("FileFormat",{attrs:{id:s.summary.identifier,format:s.item,type:s.item.type,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("file-format-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("file-format-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"FileFormats",components:{SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),FileFormat:()=>i.A.loadAsyncComponent(s.e(3504).then(s.bind(s,13504)))},mixins:[o.A],props:{formats:{type:Object,default:()=>({})},showInput:{type:Boolean,default:!0},showOutput:{type:Boolean,default:!0},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"File Formats"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},computed:{showAll(){return this.showInput&&this.showOutput},typesToShow(){let e=[];return this.showInput&&e.push("input"),this.showOutput&&e.push("output"),e},fileFormats(){let e=[];for(let s of this.typesToShow)for(var t in this.formats[s]){let a=Object.assign({id:`${t}-${s}`,name:t,type:s},this.formats[s][t]);e.push(a)}return e}},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const p=d.exports},34279:(e,t,s)=>{s.r(t),s.d(t,{default:()=>y});var a=function(){var e=this,t=e._self._c;return t("article",{staticClass:"vue-component process"},[e.process.id?e._t("title",(function(){return[t("a",{staticClass:"anchor",attrs:{name:e.process.id}}),t("h2",[e._v(" "+e._s(e.process.id)+" "),e.displayableNamespace?t("span",{staticClass:"namespace"},[e._v(" — "+e._s(e.displayableNamespace))]):e._e()])]}),{vBind:e.$props,displayableNamespace:e.displayableNamespace}):e._e(),e.process.summary||e.process.deprecated||e.process.experimental?[t("summary",[e._v(" "+e._s(e.process.summary)+" "),e.process.deprecated||e.process.experimental?[e.process.summary?[e._v(" — ")]:e._e(),e.process.deprecated?t("strong",{staticClass:"deprecated"},[e._v("deprecated")]):e._e(),e.process.experimental?t("strong",{staticClass:"experimental"},[e._v("experimental")]):e._e()]:e._e()],2)]:e._e(),e.provideDownload||e.hasElements(e.process.categories)?[t("div",{staticClass:"process-bar"},[e.hasElements(e.process.categories)?t("ul",{staticClass:"badges categories"},e._l(e.process.categories,(function(s){return t("li",{key:s,staticClass:"badge category",domProps:{textContent:e._s(e.formatCategory(s))}})})),0):e._e(),e.provideDownload?t("ul",{staticClass:"badges actions"},[t("li",{staticClass:"badge action download"},[t("a",{staticClass:"badge-fill",on:{click:e.download}},[e._v("Download JSON")])])]):e._e()])]:e._e(),e._t("before-description",null,{vBind:e.$props}),e.process.description?t("section",{staticClass:"description"},[t("h3",[e._v("Description")]),t("code",{staticClass:"signature",domProps:{innerHTML:e._s(e.signature)}}),t("Description",{attrs:{description:e.process.description,processUrl:e.processUrl}}),e.process.deprecated?t("DeprecationNotice",{attrs:{entity:"process"}}):e._e(),e.process.experimental?t("ExperimentalNotice",{attrs:{entity:"process"}}):e._e(),e.process["federation:backends"]?t("FederationNotice",{attrs:{backends:e.process["federation:backends"],federation:e.federation,entity:"process"}}):e._e()],1):e._e(),t("section",{staticClass:"parameters"},[t("h3",[e._v("Parameters")]),e._l(e.parameters,(function(s){return t("ProcessParameter",{key:s.name,attrs:{parameter:s,processUrl:e.processUrl,federation:e.federation}})})),0===e.parameters.length?t("p",[e._v("This process has no parameters.")]):e._e()],2),t("section",{staticClass:"returns"},[t("h3",[e._v("Return Value")]),e.returns.description||e.returns.schema?[e.returns.description?t("Description",{attrs:{description:e.returns.description,processUrl:e.processUrl}}):e._e(),e.returns.schema?t("div",{staticClass:"json-schema-container"},[t("JsonSchema",{attrs:{schema:e.returns.schema}})],1):e._e()]:t("p",[e._v("The return value has not been defined.")])],2),e.hasElements(e.process.exceptions)?t("section",{staticClass:"exceptions"},[t("h3",[e._v("Errors/Exceptions")]),t("ul",e._l(e.process.exceptions,(function(s,a){return t("li",{key:a,staticClass:"exception"},[t("code",[e._v(e._s(a))]),s.http?t("span",{staticClass:"http-code"},[e._v(" — HTTP "+e._s(s.http))]):e._e(),s.code?t("span",{staticClass:"error-code"},[e._v(" — "+e._s(s.code))]):e._e(),s.description?t("Description",{attrs:{description:s.description,processUrl:e.processUrl,compact:!0}}):e._e(),s.message?t("div",{staticClass:"message"},[e._v("Message: "),t("em",[e._v(e._s(s.message))])]):e._e()],1)})),0)]):e._e(),e.hasElements(e.process.examples)?t("section",{staticClass:"examples"},[t("h3",[e._v("Examples")]),e._l(e.process.examples,(function(s,a){return t("ProcessExample",{key:a,attrs:{id:a,example:s,processId:e.id,processParameters:e.parameters,processUrl:e.processUrl}})})),t("LinkList",{attrs:{links:e.exampleLinks,heading:"Processes",headingTag:"h4"}})],2):e._e(),t("section",{staticClass:"links"},[t("LinkList",{attrs:{links:e.process.links,heading:"See Also",headingTag:"h3",ignoreRel:["self","example"]}})],1),e.showGraph&&e.process.process_graph?t("section",{staticClass:"process-graph"},[t("h3",[e._v("Processing Instructions")]),t("div",{staticClass:"graph"},[e._t("process-graph",(function(){return[t("ModelBuilder",{attrs:{id:e.id,value:e.process,explicitZoom:!0}})]}),{vBind:e.$props})],2)]):e._e(),e._t("end",null,{vBind:e.$props})],2)},r=[],i=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component process-example"},[t("h4",[e._v(e._s(e.title))]),t("div",{staticClass:"content"},[e.example.description?t("Description",{attrs:{description:e.example.description,processUrl:e.processUrl,compact:!0}}):e._e(),e.example.arguments?t("div",{staticClass:"arguments"},[t("code",{domProps:{innerHTML:e._s(e.renderedArguments)}})]):e._e()],1)])},o=[],n=s(86975);const l={name:"ProcessExample",props:{id:Number,example:Object,processId:String,processParameters:Array,processUrl:String},components:{Description:()=>Promise.all([s.e(7261),s.e(1194)]).then(s.bind(s,27261))},computed:{identifier(){return"#"+(this.id+1)},title(){return this.example.title?this.example.title+" ("+this.identifier+")":"Example "+this.identifier},renderedArguments(){var e=[];for(var t in this.processParameters){var s=this.processParameters[t];if("undefined"!==typeof this.example.arguments[s.name]){var a=this.example.arguments[s.name];let t;t=n.A.isObject(a)&&a.from_parameter?'$'+n.A.htmlentities(a.from_parameter)+"":n.A.isObject(a)&&a.from_node?'$'+n.A.htmlentities(a.from_node)+"":JSON.stringify(a),e.push(''+s.name+' = '+t+"")}}var r="";return"undefined"!==typeof this.example.returns&&(r=' => '+JSON.stringify(this.example.returns)+""),''+this.processId+"("+e.join(", ")+")"+r}}},c=l;var d=s(81656),p=(0,d.A)(c,i,o,!1,null,null,null);const u=p.exports;var h=s(35254);const m={name:"Process",components:{JsonSchema:()=>s.e(5771).then(s.bind(s,25771)),DeprecationNotice:()=>s.e(6238).then(s.bind(s,36238)),Description:()=>Promise.all([s.e(7261),s.e(1194)]).then(s.bind(s,27261)),ExperimentalNotice:()=>s.e(4387).then(s.bind(s,84387)),ModelBuilder:()=>Promise.all([s.e(4638),s.e(2722)]).then(s.bind(s,4638)),ProcessExample:u,ProcessParameter:()=>s.e(8354).then(s.bind(s,88354)),LinkList:()=>s.e(2810).then(s.bind(s,52810))},mixins:[h.A],props:{process:{type:Object,default:()=>({})},namespace:{type:String,default:null},provideDownload:{type:Boolean,default:!0},processUrl:String,showGraph:{type:Boolean,default:!1},...h.A.props},computed:{displayableNamespace(){let e=this.process.namespace||this.namespace;return"backend"===e?"":"user"===e?"user-defined":e},id(){return this.process.id||"unnamed"},parameters(){return Array.isArray(this.process.parameters)?this.process.parameters:[]},returns(){return n.A.isObject(this.process.returns)?this.process.returns:{}},signature(e=!0){return n.A.formatProcessSignature(this,e)},exampleLinks(){return Array.isArray(this.process.links)?this.process.links.filter((e=>"example"===e.rel)):[]}},beforeCreate(){n.A.enableHtmlProps(this)},methods:{hasElements(e){return"object"===typeof e&&null!==e&&Object.keys(e).length>0},formatCategory(e){return e.replace("_"," ")},download(){let e="data:application/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(this.process,null,2)),t=document.createElement("a");t.setAttribute("href",e),t.setAttribute("download",this.id+".json"),document.body.appendChild(t),t.click(),t.remove()}}},f=m;var g=(0,d.A)(f,a,r,!1,null,null,null);const y=g.exports},48312:(e,t,s)=>{s.d(t,{A:()=>p});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component processes"},[t("SearchableList",{attrs:{data:e.processes,keywordsKey:"categories",showKeywords:e.showCategories,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Process",{attrs:{process:s.item,provideDownload:e.provideDownload,processUrl:e.processUrl,showGraph:e.showGraph,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("process-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("process-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"Processes",components:{Process:()=>i.A.loadAsyncComponent(s.e(6660).then(s.bind(s,34279))),SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{processes:{type:Array,default:()=>[]},provideDownload:{type:Boolean,default:!0},processUrl:String,searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Processes"},collapsed:{type:Boolean,default:null},showCategories:{type:Boolean,default:!1},showGraph:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},loadAdditionalData:{type:Function,default:null},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const p=d.exports},9409:(e,t,s)=>{s.r(t),s.d(t,{default:()=>c});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component search-box",class:{compact:e.compact}},[t("span",{staticClass:"icon"},[e._v("🔎")]),t("input",{directives:[{name:"model",rawName:"v-model",value:e.searchTerm,expression:"searchTerm"}],attrs:{type:"search",placeholder:e.placeholder,minlength:e.minLength,title:e.searchHint},domProps:{value:e.searchTerm},on:{input:function(t){t.target.composing||(e.searchTerm=t.target.value)}}})])},r=[];const i={name:"SearchBox",props:{value:{type:String,default:""},placeholder:{type:String,default:"Search"},minLength:{type:Number,default:1},compact:{type:Boolean,default:!1}},data(){return{searchTerm:this.value}},watch:{searchTerm(e,t){e.length1?`Searching requires at least ${this.minLength} characters.`:null}}},o=i;var n=s(81656),l=(0,n.A)(o,a,r,!1,null,null,null);const c=l.exports},91065:(e,t,s)=>{s.d(t,{A:()=>p});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component udf-runtimes"},[t("SearchableList",{attrs:{data:e.runtimes,summaryKey:"title",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.summary.identifier))]),t("ul",{staticClass:"badges small inline"},["docker"===s.item.type||s.item.docker&&s.item.tags?[t("li",{staticClass:"badge docker"},[e._v("Docker")]),e._l(s.item.tags,(function(a){return t("li",{key:a,staticClass:"badge version",class:{default:a===s.item.default}},[e._v(e._s(a))])}))]:e._l(s.item.versions,(function(a,r){return t("li",{key:r,staticClass:"badge version",class:{default:r===s.item.default}},[e._v(e._s(r))])}))],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("UdfRuntime",{attrs:{id:s.summary.identifier,runtime:s.item,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(t){return[e._t("udf-runtime-badges",null,null,t)]}},{key:"before-description",fn:function(t){return[e._t("udf-runtime-before-description",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"UdfRuntimes",components:{SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),UdfRuntime:()=>i.A.loadAsyncComponent(s.e(3271).then(s.bind(s,33271)))},mixins:[o.A],props:{runtimes:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"UDF Runtimes"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const p=d.exports},36107:(e,t,s)=>{s.d(t,{A:()=>g});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"discovery-toolbar"},[t("SearchBox",{model:{value:e.searchTerm,callback:function(t){e.searchTerm=t},expression:"searchTerm"}}),t("div",{staticClass:"filters"},[t("span",{staticClass:"label"},[e._v(" Show ")]),t("label",{staticClass:"show-deprecated",attrs:{title:"Show deprecated elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showDeprecated,expression:"showDeprecated"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showDeprecated)?e._i(e.showDeprecated,null)>-1:e.showDeprecated},on:{change:function(t){var s=e.showDeprecated,a=t.target,r=!!a.checked;if(Array.isArray(s)){var i=null,o=e._i(s,i);a.checked?o<0&&(e.showDeprecated=s.concat([i])):o>-1&&(e.showDeprecated=s.slice(0,o).concat(s.slice(o+1)))}else e.showDeprecated=r}}}),e._v(" deprecated ")]),t("label",{staticClass:"show-experimental",attrs:{title:"Show experimental elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showExperimental,expression:"showExperimental"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showExperimental)?e._i(e.showExperimental,null)>-1:e.showExperimental},on:{change:function(t){var s=e.showExperimental,a=t.target,r=!!a.checked;if(Array.isArray(s)){var i=null,o=e._i(s,i);a.checked?o<0&&(e.showExperimental=s.concat([i])):o>-1&&(e.showExperimental=s.slice(0,o).concat(s.slice(o+1)))}else e.showExperimental=r}}}),e._v(" experimental ")])]),t("div",{staticClass:"search-results"},[t("Collections",{staticClass:"category",attrs:{collections:e.collections,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsLoadCollection},on:{dragstart:function(t){return e.onDrag(t,"collection",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showCollectionInfo(s.id)}}},[t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()]),e.hasCollectionPreview(s)?t("button",{staticClass:"discovery-button",attrs:{type:"button",title:"View on map"},on:{click:function(t){return e.showCollectionPreview(s)}}},[t("i",{staticClass:"fas fa-map"})]):e._e()])]}}])}),t("Processes",{staticClass:"category",attrs:{processes:e.allProcesses,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:"true"},on:{dragstart:function(t){return e.onDrag(t,"process",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showProcess(s)}}},["user"===s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-sitemap",attrs:{title:"Custom Process"}}):"backend"!==s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-tag",attrs:{title:`Process from namespace '${s.namespace}'`}}):e._e(),t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}])}),e.hasUdfRuntimes?t("UdfRuntimes",{staticClass:"category",attrs:{runtimes:e.udfRuntimes,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({summary:s,item:a}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsRunUdf},on:{dragstart:function(t){return e.onDrag(t,"udf",{runtime:s.identifier,version:a.default})}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showUdfInfo(s.identifier,a)}}},[t("strong",{attrs:{title:s.identifier}},[e._v(e._s(s.identifier)+" ("+e._s(a.default)+")")]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}],null,!1,92063951)}):e._e(),t("FileFormats",{staticClass:"category",attrs:{formats:e.fileFormats,showInput:!1,heading:"Export File Formats",searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsSaveResult},on:{dragstart:function(t){return e.onDrag(t,"fileformat",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showFileFormatInfo(s)}}},[t("strong",{attrs:{title:s.name}},[e._v(e._s(s.name))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()])])]}}])})],1)],1)},r=[],i=s(61663),o=s(2566),n=s(44712),l=s(90334),c=s(48312),d=s(9409),p=s(91065);const u={name:"DiscoveryToolbar",mixins:[i.A],components:{Collections:n.A,FileFormats:l.A,Processes:c.A,SearchBox:d["default"],UdfRuntimes:p.A},props:{onAddProcess:{type:Function,required:!0},collectionPreview:{type:Boolean,default:!1},persist:{type:Boolean,default:!1}},data(){return{internalSearchTerm:"",collapsed:!0,showDeprecated:this.$config.showDeprecatedByDefault||!1,showExperimental:this.$config.showExperimentalByDefault||!1}},computed:{...o.A.mapState(["collections","udfRuntimes"]),...o.A.mapState("editor",["discoverySearchTerm"]),...o.A.mapGetters(["supports","fileFormats","processes"]),supportsLoadCollection(){return this.processes.has("load_collection")},supportsRunUdf(){return this.processes.has("run_udf")},supportsSaveResult(){return this.processes.has("save_result")},hasUdfRuntimes(){return o.A.size(this.udfRuntimes)},allProcesses(){return this.processes.all()},searchTerm:{get(){return this.persist?this.discoverySearchTerm:this.internalSearchTerm},set(e){this.persist?this.setDiscoverySearchTerm(e):this.internalSearchTerm=e}}},watch:{searchTerm:{immediate:!0,handler(e,t){!e&&t?this.collapsed=!0:e&&!t&&(this.collapsed=!1)}}},methods:{...o.A.mapMutations("editor",["setDiscoverySearchTerm","setModelDnD"]),...o.A.mapActions(["loadProcess"]),onDrag(e,t,s){let a=e=>this.setModelDnD({type:t,data:s,loading:e});"process"===t?(a(!0),this.loadProcess(s).then((()=>a(!1)))):a(!1)},showCollectionInfo(e){this.broadcast("showCollection",e)},hasCollectionPreview(e){return Boolean(this.collectionPreview&&o.A.getPreviewLinkFromSTAC(e))},showCollectionPreview(e){this.broadcast("showCollectionPreview",e)},showProcess(e){this.broadcast("showProcess",e)},showUdfInfo(e,t){this.broadcast("showModal","UdfRuntimeModal",{id:e,data:t,version:t.default})},showFileFormatInfo(e){let t={id:e.name,format:this.fileFormats.output[e.name],type:"output"};this.broadcast("showModal","FileFormatModal",t)}}},h=u;var m=s(81656),f=(0,m.A)(h,a,r,!1,null,"aacdf426",null);const g=f.exports},92385:(e,t,s)=>{s.r(t),s.d(t,{default:()=>P});var a=function(){var e=this,t=e._self._c;return t("Tabs",{ref:"tabs",staticClass:"editor",attrs:{id:"customProcessContent",position:"bottom"}},[t("Tab",{attrs:{id:"visual",name:"Visual Model",icon:"fa-project-diagram",selected:!0,allowShow:e.canSwitchView},on:{show:e.showModel}},[t("VisualEditor",{ref:"graphBuilder",staticClass:"visualEditorTab",attrs:{editable:e.editable,parent:e.parent,parentSchema:e.parentSchema,value:e.modelValue,title:e.title,id:e.id+"_visual",showDiscoveryToolbar:e.showDiscoveryToolbar,showIntro:e.showIntro,defaultValue:e.defaultValue},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1),t("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code",allowShow:e.canSwitchView},on:{show:e.showCode}},[t("TextEditor",{ref:"sourceEditor",staticClass:"textEditorTab",attrs:{editable:e.editable,value:e.codeValue,title:e.title,id:e.id+"_text",language:"processgraph"},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1)],1)},r=[],i=s(2566),o=s(4615),n=s(58379),l=function(){var e=this,t=e._self._c;return t("div",{ref:"visualEditor",staticClass:"visualEditor"},[t("div",{staticClass:"sourceHeader"},[e.title?t("strong",[e._v(e._s(e.title))]):e._e(),t("div",{staticClass:"sourceToolbar"},[e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{title:"Start from scratch - Clears the current script"},on:{click:e.confirmClear}},[t("i",{staticClass:"fas fa-file"})]),e._t("file-toolbar")],2):e._e(),e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{disabled:!e.canUndo,title:"Revert the last change"},on:{click:function(t){return e.$refs.blocks.undo()}}},[t("i",{staticClass:"fas fa-undo-alt"})]),t("BButton",{attrs:{disabled:!e.canRedo,title:"Redo the last reverted change"},on:{click:function(t){return e.$refs.blocks.redo()}}},[t("i",{staticClass:"fas fa-redo-alt"})]),t("BButton",{attrs:{disabled:!e.hasSelection,title:"Delete the selected elements from the process"},on:{click:function(t){return e.$refs.blocks.deleteSelected()}}},[t("i",{staticClass:"fas fa-trash"})])],1):e._e(),e.editable?t("span",{staticClass:"sepr"},[e.parent?e._e():t("BButton",{attrs:{title:"Edit the process metadata"},on:{click:()=>e.editProcess(e.value)}},[t("i",{staticClass:"fas fa-edit"})]),t("BButton",{attrs:{title:"Add a parameter to the process"},on:{click:e.addParameter}},[t("i",{staticClass:"fas fa-parking"})]),e.supportsMath?t("BButton",{class:{highlightFormula:e.isMath},attrs:{title:"Insert or edit a formula as part of the process"},on:{click:e.showExpressionModal}},[t("i",{staticClass:"fas fa-square-root-alt"})]):e._e()],1):e._e(),t("BButton",{class:{compactMode:e.compactMode},attrs:{title:e.compactMode?"Show the process more compact and less detailed":"Shows the process less compact and more detailed"},on:{click:function(t){return e.$refs.blocks.toggleCompact()}}},[t("i",{staticClass:"fas fa-compress-arrows-alt"})]),t("BButton",{attrs:{title:"Scale the view to match the available space"},on:{click:function(t){return e.$refs.blocks.perfectScale()}}},[t("i",{staticClass:"fas fa-arrows-alt"})]),t("FullscreenButton",{attrs:{element:()=>this.$refs.visualEditor},on:{changed:t=>{this.$refs.blocks.perfectScale(),e.isFullScreen=t}}}),e._t("toolbar")],2)]),t("div",{staticClass:"editorSplitter"},[(e.showDiscoveryToolbar||e.isFullScreen)&&e.editable?t("DiscoveryToolbar",{staticClass:"discoveryToolbar",attrs:{onAddProcess:e.insertProcess}}):e._e(),t("div",{staticClass:"graphBuilder",on:{drop:e.onDrop,dragover:e.allowDrop}},[e.showHelpOverlay?t("div",{staticClass:"model-overlay"},[t("h2",[e._v("Welcome!")]),t("p",[e._v(" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. ")]),t("p",[e._v(" Alternatively, you can also import existing processes into the model builder: "),t("ul",[e.canPaste?t("li",[e._v("Paste the JSON from your clipboard by clicking "),t("BButton",{attrs:{title:"Paste a process from your clipboard"},on:{click:e.paste}},[t("i",{staticClass:"fas fa-paste"})]),e._v(" or use "),t("kbd",[e._v("CTRL")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (Windows, Linux) or "),t("kbd",[e._v("⌘")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (MacOS) when the model builder is in focus.")],1):e._e(),t("li",[e._v("Drag and drop a JSON file from your computer")]),t("li",[e._v("Import a JSON file from your computer or another source such as the internet by clicking "),t("BButton",{attrs:{title:"Import a process from an external source"},on:{click:e.importProcess}},[t("i",{staticClass:"fas fa-cloud-download-alt"})])],1)])]),e._m(0),t("p",[e._v("Once you start interacting with this area, this message will disappear.")])]):e._e(),t("ModelBuilder",{ref:"blocks",attrs:{editable:e.editable,id:e.id,processes:e.processes,collections:e.collections,parent:e.parent,parentSchema:e.parentSchema,value:e.value},on:{input:e.commit,error:e.errorHandler,showProcess:(t,s)=>e.broadcast("showProcess",{id:t,namespace:s}),showCollection:t=>e.broadcast("showCollection",t),showParameter:(t,s)=>e.broadcast("showProcessParameter",t,s),editParameter:e.editParameter,editArguments:e.openArgumentEditor,compactMode:e=>this.compactMode=e,selectionChanged:e.selectionChanged,historyChanged:e.historyChanged}})],1)],1)])},c=[function(){var e=this,t=e._self._c;return t("p",[e._v(" You can also import the processes from the Python and R client. You need to export your process to JSON first: "),t("ul",[t("li",[e._v("In Python use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export",target:"_blank"}},[t("code",[e._v("print(result.to_json())")])])]),t("li",[e._v("In R use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-r-client/reference/index.html",target:"_blank"}},[t("code",[e._v('toJSON(as(result, "Process"))')])])])]),e._v(" In both cases, "),t("code",[e._v("result")]),e._v(" is your last return value from a data cube process such as "),t("code",[e._v("save_result")]),e._v(". For more details, please read the corresponding chapter in the "),t("a",{attrs:{href:"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json",target:"_blank"}},[e._v("openEO cookbook")]),e._v(". ")])}],d=(s(98992),s(54520),s(81454),s(4638)),p=s(36107),u=s(61663),h=s(92622),m=s(91144),f=s(31572),g=s(47067);const y={name:"VisualEditor",mixins:[u.A],components:{BButton:m.A,ModelBuilder:d["default"],DiscoveryToolbar:p.A,FullscreenButton:h.A},props:{id:String,editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},title:{type:String},defaultValue:{}},computed:{...i.A.mapState(["connection","collections"]),...i.A.mapGetters(["processes","supportsMath"]),...i.A.mapState("editor",["initialNode"]),...i.A.mapGetters("editor",["getModelNodeFromDnD"]),isMath(){return this.supportsMath&&this.processes.isMath(this.value)}},data(){return{showHelpOverlay:this.showIntro,canUndo:!1,canRedo:!1,canPaste:!1,compactMode:!1,hasSelection:!1,formula:null,isFullScreen:!1}},watch:{value:{immediate:!0,handler(e){if(e&&(this.showHelpOverlay=!1),this.initialNode&&i.A.isObject(e)&&i.A.isObject(e.process_graph))try{let t=this.initialNode;"1"==t&&i.A.size(e.process_graph)&&(t=Object.keys(e.process_graph)[0]),this.openArgumentEditorForNode(t)}catch(t){i.A.exception(this,t)}finally{this.setInitialNode(null)}}}},mounted(){this.canPaste=navigator&&navigator.clipboard&&"function"===typeof navigator.clipboard.readText},methods:{...i.A.mapMutations("editor",["setInitialNode","setModelDnD"]),commit(e){"undefined"!==typeof this.defaultValue&&i.A.isObject(e)&&0===i.A.size(e.process_graph)&&(e=this.defaultValue),this.$emit("input",e)},async paste(){this.canPaste||i.A.error(this,"error","Pasting is not supported by your browser.");try{const e=await navigator.clipboard.readText();let t=JSON.parse(e);await this.$refs.blocks.import(t)}catch(e){i.A.exception(this,e,"Paste Error")}},importProcess(){this.broadcast("importProcess")},errorHandler(e,t=null){i.A.exception(this,e,t)},selectionChanged(e,t){this.hasSelection=Boolean(e.filter((e=>e.$el.allowsDelete)).length||t.length)},historyChanged(e,t){this.canUndo=!!e[t-1],this.canRedo=!!e[t+1]},allowDrop(e){this.showHelpOverlay=!1,e.preventDefault()},async onDrop(e){const t=await this.getModelNodeFromDnD();if(t)return this.insertProcess(t,e.pageX,e.pageY),this.setModelDnD(),e.preventDefault();let s=e.dataTransfer.files;if(1===s.length){let t=e.dataTransfer.files[0];if("application/json"===t.type){var a=new FileReader;return a.onload=async e=>{try{let t=JSON.parse(e.target.result);await this.$refs.blocks.import(t)}catch(t){i.A.exception(this,t,"Parsing JSON file failed")}},a.onerror=e=>i.A.exception(this,e,"Reading JSON file failed"),a.readAsText(t,"UTF-8"),e.preventDefault()}}},getNameField(e=void 0,t="name"){return{value:e,name:t,description:"A unique identifier. Must contain only letters (`a`-`z`), digits (`0`-`9`) and underscores (`_`). `snake_case` is recommended.",label:"Name",schema:{type:"string",pattern:"^\\w+$"},default:null}},getDescriptionField(e=void 0,t=!1,s="description",a="Description"){return{value:e,name:s,description:"Provides a detailed description. CommonMark (Markdown) syntax can be used for rich text formatting.",label:a,optional:t,schema:{type:"string",subtype:"commonmark"}}},getOptionalField(e=void 0){return{value:e,name:"optional",label:"Optional",description:"Parameters by default are required. CHeck this option to make the parameter optional. For optional parameters a default value should be specified.",optional:!0,schema:{type:"boolean"},default:!1}},getDefaultField(e=void 0){return{value:e,name:"default",label:"Default Value",description:"This value is used whenever the user of this process did not specify a value for this parameter.",toggledBy:"optional",optional:!0,schema:{}}},getExperimentalField(e=void 0){return{value:e,name:"experimental",label:"Experimental",description:"Declares that this is experimental, which means that it is unstable and likely to change.",optional:!0,schema:{type:"boolean"},default:!1}},getDeprecatedField(e=void 0){return{value:e,name:"deprecated",label:"Deprecated",description:"Declares that this is deprecated with the potential to be removed in any of the next versions. It should be transitioned out of usage.",optional:!0,schema:{type:"boolean"},default:!1}},getSchemaField(e=void 0,t="schema",s="Data Types"){let a=e?"json-schema":"openeo-datatype";return{value:e,name:t,label:s,description:"Allowed data type(s) as JSON Schema.",schema:[{title:"Single data type",type:"object",subtype:a},{title:"Multiple data types",type:"array",minItems:2,items:{type:"object",subtype:a}}]}},editProcess(e){e=i.A.isObject(e)?e:{};let t=i.A.isObject(e.returns)?e.returns:{};var s=[this.getNameField(e.id,"id"),{value:e.summary,name:"summary",description:"A very short description of the process with usually less than 60 characters.",label:"Summary",optional:!0,schema:{type:"string"}},this.getDescriptionField(e.description,!0),{value:e.categories,name:"categories",label:"Categories",optional:!0,schema:{type:"array",items:{type:"string"}}},this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),{label:"Parameters",description:'The parameters can be edited directly in the "Visual Model" interface.',info:!0},this.getDescriptionField(t.description,!0,"returns_description","Return Value > Description"),this.getSchemaField(t.schema,"returns_schema","Return Value > Data Type"),{value:e.exceptions,name:"exceptions",description:"Declares exceptions (errors) that might occur during execution of this process. This list is just for informative purposes.\n\nThe keys of the object are the error codes, which should only consist of alphanumerical characters. `PascalCase` is recommended.",label:"Errors",optional:!0,schema:{type:"object",additionalProperties:{type:"object",required:["message"],properties:{message:{title:"Error Message",type:"string"},description:{title:"Description",type:"string",subtype:"commonmark"},http:{title:"HTTP Status Code",type:"integer",enum:[400,500,501]}}}}},{value:e.examples,name:"examples",label:"Examples",description:"Example calls for this process with specific values for the parameters (arguments) and the result (return value).",optional:!0,schema:{type:"array",items:{type:"object",required:["arguments"],properties:{title:{title:"Title",type:"string"},title:{title:"Description",type:"string",subtype:"commonmark"},arguments:{title:"Arguments",type:"object",default:{}},returns:{title:"Return Value"}}}}},{value:e.links,name:"links",label:"Links",description:"Links related to this process, e.g. additional documentation.",optional:!0,schema:{type:"array",items:{type:"object",required:["href","rel"],properties:{href:{title:"URL",type:"string"},rel:{title:"Relation",description:"For examples see [IANA relation types](https://www.iana.org/assignments/link-relations/link-relations.xhtml)",type:"string",default:"about"},title:{title:"Title",type:"string"},type:{title:"Media Type",description:"For examples see [IANA media types](https://www.iana.org/assignments/media-types/media-types.xhtml)",type:"string"}}}}}];this.broadcast("showDataForm","Edit Process",s,(async e=>{let t=i.A.pickFromObject(e,["id","summary","description","categories","experimental","deprecated","exception","examples","links"]);("string"===typeof t.description||i.A.isObject(t.schema))&&(t.returns={description:e.returns_description,schema:e.returns_schema});let s=this.$refs.blocks.export(!0),a=Object.assign({},s,t);const r={id:"",summary:"",description:"",categories:[],experimental:!1,deprecated:!1,examples:[],links:[],process_graph:{}};for(let o in r)i.A.equals(r[o],a[o])&&delete a[o];this.commit(a)}))},addParameter(){var e=[this.getNameField(),this.getDescriptionField(),this.getOptionalField(),this.getDefaultField(),this.getExperimentalField(),this.getDeprecatedField(),this.getSchemaField()];this.broadcast("showDataForm","Add Parameter",e,(async e=>{"string"===typeof e.name&&e.name.length>0&&await this.$refs.blocks.addPgParameter(e)}))},editParameter(e,t="Edit Parameter",s=null){var a=[this.getNameField(e.name),this.getDescriptionField(e.description),this.getOptionalField(e.optional),this.getDefaultField(e.default),this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),this.getSchemaField(e.schema)];this.broadcast("showDataForm",t,a,s)},showExpressionModal(){let e=new g.A(this.value,this.processes,this.connection,!0);e.setCallbackParameters(this.$refs.blocks.getPgParameters().map((e=>e.spec)));try{e.parse();let t={process:e},s={save:this.insertNodes};this.broadcast("showModal","ExpressionModal",t,s)}catch(t){i.A.exception(this,t)}},openArgumentEditorForNode(e){let t=i.A.deepClone(this.value),s=t.process_graph[e],a=this.processes.get(s.process_id,s.namespace);Array.isArray(a.parameters)&&a.parameters.length>0&&this.openArgumentEditor(a.parameters.map((e=>new f.ProcessParameter(e))).filter((e=>e.isEditable())),s.arguments,a.id,!0,null,(e=>{Object.assign(s,{arguments:e}),this.commit(t)}))},openArgumentEditor(e,t,s="Edit",a=!0,r=null,i=null,o=null){let n={title:s,parameters:e,data:t,editable:a,selectParameterName:r,parent:o},l={};"function"===typeof i&&(l.save=i),this.broadcast("showModal","ParameterModal",n,l)},confirmClear(){var e=confirm("Do you really want to clear the existing model?");e&&this.clear()},clear(){this.$refs.blocks&&this.$refs.blocks.clear(),this.commit(null)},insertProcess(e,t=null,s=null){try{var a=this.$refs.blocks.getPositionForPageXY(t,s);let r=e.namespace;"backend"!==r&&"user"!==r||(r=null),this.$refs.blocks.addProcess(e.process_id,e.arguments,a,r)}catch(r){i.A.exception(this,r)}},async insertNodes(e,t=!1){return await this.$refs.blocks.import({process_graph:e},{clear:t})}}},v=y;var b=s(81656),_=(0,b.A)(v,l,c,!1,null,null,null);const w=_.exports;var x=s(20600);const A={name:"Editor",components:{VisualEditor:w,TextEditor:x.A,Tabs:o["default"],Tab:n["default"]},props:{id:{type:String,default:()=>`editor_${Date.now()}`},editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},title:{type:String},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},defaultValue:{}},watch:{value(){this.updateTab()}},data(){return{modelValue:null,codeValue:null,error:null}},mounted(){this.updateTab()},methods:{...i.A.mapActions(["loadProcess"]),showModel(){this.error=null,this.modelValue=this.value},showCode(){this.error=null,this.codeValue=this.value,this.$refs.sourceEditor.updateState()},updateTab(){"source"===this.$refs.tabs.getActiveTabId()?this.showCode():this.showModel()},commit(e){this.error=null,this.$emit("input",e)},onError(e){this.error=e},activeEditor(){return"source"===this.$refs.tabs.getActiveTabId()?this.$refs.sourceEditor:this.$refs.graphBuilder},async insertProcess(e){try{await this.loadProcess({id:e.process_id,namespace:e.namespace}),this.activeEditor().insertProcess(e)}catch(t){i.A.exception(this,t)}},canSwitchView(){return!this.editable||null===this.error||(i.A.exception(this,this.error,"Process Invalid Error"),!1)}}},C=A;var k=(0,b.A)(C,a,r,!1,null,null,null);const P=k.exports},23827:(e,t,s)=>{s.d(t,{A:()=>p});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"modal",style:{"z-index":e.zIndex},on:{mousedown:e.backgroundClose}},[t(e.containerTag,{ref:"container",tag:"component",staticClass:"modal-container",class:{smooth:e.smooth},style:e.style,on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.submitFunction.apply(null,arguments)}}},[t("header",{staticClass:"modal-header",on:{mousedown:e.startMove}},[e._t("header",(function(){return[t("h2",[e._v(e._s(e.title))]),t("span",{staticClass:"close",on:{click:e.close}},[t("i",{staticClass:"fa fa-times",attrs:{"aria-hidden":"true"}})])]}))],2),t("main",{staticClass:"modal-content"},[e._t("default")],2),t("footer",{staticClass:"modal-footer"},[e._t("footer",(function(){return[e.submitFunction?t("button",{attrs:{type:"submit"}},[e._v(e._s(e.submitButtonText))]):e._e()]}))],2)])],1)},r=[],i=s(61663),o=s(2566);const n={name:"Modal",mixins:[i.A],props:{title:{type:String,default:null},minWidth:{type:String,default:null},width:{type:String,default:"auto"},height:{type:String,default:"auto"},show:{type:Boolean,default:!0},submitFunction:{type:Function,default:null},submitButtonText:{type:String,default:"Submit"}},data(){return{zIndex:1e3,position:null,dragPosition:null,smooth:!1}},computed:{...o.A.mapState("editor",["hightestModalZIndex"]),style(){let e={width:this.width};return this.minWidth&&(e["min-width"]=this.minWidth),this.height&&(e["height"]=this.height),Array.isArray(this.position)&&(e.position="absolute",e.left=this.position[0]+"px",e.top=this.position[1]+"px"),e},containerTag(){return this.submitFunction?"form":"div"}},watch:{show:{immediate:!0,handler(e){e?this.open():this.close()}},width(){this.smoothResize()},minWidth(){this.smoothResize()}},methods:{...o.A.mapMutations("editor",["openModal","closeModal"]),smoothResize(){this.smooth=!0,setTimeout((()=>this.smooth=!1),600)},submit(e){this.submitFunction(e)},open(){this.openModal(),this.zIndex=this.hightestModalZIndex,window.addEventListener("keydown",this.escCloseListener),this.$emit("shown")},close(){window.removeEventListener("keydown",this.escCloseListener),this.closeModal(),this.$emit("closed")},startMove(e){"H2"!==e.target.tagName&&(this.dragPosition=[e.clientX,e.clientY],document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.stopMove),e.preventDefault(),e.stopPropagation())},stopMove(){document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.stopMove)},move(e){e.preventDefault(),this.position=[this.$refs.container.offsetLeft-(this.dragPosition[0]-e.clientX),this.$refs.container.offsetTop-(this.dragPosition[1]-e.clientY)],this.dragPosition=[e.clientX,e.clientY]},escCloseListener(e){if("Escape"==e.key)return this.close(),e.preventDefault(),e.stopPropagation(),!1},backgroundClose(e){e.target===this.$el&&this.close()}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const p=d.exports},12307:(e,t,s)=>{s.r(t),s.d(t,{default:()=>h});var a=function(){var e=this,t=e._self._c;return t("Modal",{attrs:{width:e.minWidth,title:e.process.id},on:{closed:function(t){return e.$emit("closed")}}},[t("div",{staticClass:"docgen"},[t("Process",{attrs:{process:e.process,provideDownload:!1,showGraph:!0},scopedSlots:e._u([{key:"process-graph",fn:function(){return[t("Editor",{staticClass:"infoViewer",attrs:{value:e.process,editable:!1,id:"pgInfoViewer"}})]},proxy:!0}])})],1)])},r=[],i=s(92385),o=s(23827),n=s(34279),l=s(2566);const c={name:"ProcessModal",components:{Editor:i["default"],Modal:o.A,Process:n["default"]},props:{process:{type:Object}},computed:{minWidth(){return l.A.isObject(this.process)&&this.process.process_graph?"80%":"50%"}}},d=c;var p=s(81656),u=(0,p.A)(d,a,r,!1,null,null,null);const h=u.exports},16125:(e,t,s)=>{s.d(t,{A:()=>o});s(81454);var a=s(14894),r=s(2566);class i extends a.BaseProcess{constructor(e,t){super(e),this.exporter=t}async execute(e){await this.exporter.generateFunction(e)}}class o extends a.ProcessGraph{constructor(e,t,s){super(r.A.isObject(e)?e:{},t),this.connection=s,this.code=[],this.fnCounter=1,this.allowEmpty(),this.fillUndefinedParameters()}createProcessGraphInstance(e){let t=new o(e,this.processRegistry,this.getJsonSchemaValidator());return this.copyProcessGraphInstanceProperties(t)}copyProcessGraphInstanceProperties(e){return e=super.copyProcessGraphInstanceProperties(e),e.connection=this.connection,e}createProcessInstance(e){return new i(e,this)}isKeyword(e){return this.getKeywords().includes(e.toLowerCase())}getKeywords(){return[]}comment(){}generateImports(){}generateConnection(){}generateAuthentication(){}generateBuilder(){}generateMetadata(){}generateMissingParameter(){}async generateFunction(){}generateFunctionParams(e){return e.map((e=>"undefined"!==typeof e.default?`${e.name} = ${this.e(e.default)}`:e.name))}async generateCallback(){}generateResult(){}makeNull(){return"null"}makeBoolean(e){return e?"true":"false"}makeArray(e){return`[${e.join(", ")}]`}makeObject(e){let t=r.A.mapObject(e,((e,t)=>`${this.makeString(t)}: ${e}`));return`{${t.join(", ")}}`}makeString(e){return JSON.stringify(e)}makeNumber(e){return e}e(e){return null===e?this.makeNull():"boolean"===typeof e?this.makeBoolean(e):"number"===typeof e?this.makeNumber(e):"string"===typeof e?this.makeString(e):Array.isArray(e)?this.makeArray(e.map((e=>this.e(e)))):r.A.isObject(e)?this.makeObject(r.A.mapObjectValues(e,(e=>this.e(e)))):"function"===typeof e?e():this.makeNull()}generateMetadata(){let e=!1;for(let t in this.process){if("process_graph"===t)continue;let s=this.process[t];Array.isArray(s)&&0===s.length||("string"===typeof s&&0===s.length||("boolean"!==typeof s||s)&&(e||(this.newLine(),this.comment("Set the metadata for the process"),e=!0),this.generateMetadataEntry(t,s)))}}async resolveArguments(e,t,s){let a=Array.isArray(e)?[]:{};for(let i in e){let n=e[i];if(!s||!s(i,n))if(r.A.isObject(n)){if(n.from_node){a[i]=()=>this.var(n.from_node,this.varPrefix());continue}if(n.from_parameter){a[i]=()=>this.var(n.from_parameter);continue}if(n instanceof o){let e=await t(i);a[i]=()=>e;continue}a[i]=await this.resolveArguments(n,t,s)}else Array.isArray(n)?a[i]=await this.resolveArguments(n,t,s):a[i]=n}return a}async resolveCallback(e,t){let s;if("load_collection"===e.process_id){let a=e.getArgument("properties");s=a[t]}else s=e.getArgument(t);let a=s.getCallbackParameters();await s.execute(a);let r=this.var(`${t}${this.fnCounter++}`,"fn_"),i=await this.generateCallback(s,a,r);return i||r}async generateArguments(e,t=!1,s=null){let a=await this.resolveArguments(e.arguments,(async t=>await this.resolveCallback(e,t)),s);return t&&(a=this.orderArguments(e,a)),a}orderArguments(e,t){let s=e.getProcessGraph().getProcess(e);if(s&&Array.isArray(s.parameters)){let e=s.parameters.map((e=>"undefined"!==typeof t[e.name]?t[e.name]:e.optional?void 0:null)),a=!1;for(let t=e.length-1;t>=0;t--)"undefined"===typeof e[t]?a?e[t]=null:e.pop():a=!0;return e}}varPrefix(){return this.getParent()?"data":"datacube"}var(e,t="var"){return e=String(e),this.isKeyword(e)?`${e}_`:e.match(/^[a-z_]\w*$/)?e:t+e.replace(/[^\w]+/g,"_")}getTab(){return"\t"}addCode(e,t="",s=0){if("string"!==typeof e)return;let a=this.getTab().repeat(s),r=e.trim().split(/\r\n|\r|\n/g);for(let i of r)this.code.push(`${a}${t}${i}\n`)}newLine(e=1){for(let t=0;t0){this.comment("ToDo: Here you need to set values for the parameters");for(let e of t)this.generateMissingParameter(e);this.newLine()}return await this.execute(),e||(this.newLine(),this.comment("The process can be executed synchronously (see below), as batch job or as web service now")),this.generateResult(this.getResultNode(),e),this.code.join("").trim()}async execute(){return await this.validate(),this.reset(),await this.executeNodes(this.getStartNodes()),this.getResultNode()}isMath(){return"undefined"===typeof this._isMath&&(this._isMath=this.processRegistry.isMath(this)),this._isMath}}},47067:(e,t,s)=>{s.d(t,{A:()=>n});s(98992),s(54520),s(81454);var a=s(2566),r=s(16125),i=s(73902);const o=["abstract","arguments","await","boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","eval","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","let","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with","yield","builder","connection","formula","openeo","result"];class n extends r.A{constructor(e,t,s,a=!1){super(e,t,s),this.generateFormula=a}createProcessGraphInstance(e){let t=new n(e,this.processRegistry,this.getJsonSchemaValidator(),this.generateFormula);return this.copyProcessGraphInstanceProperties(t)}parse(){this.parsed||super.parse()}getKeywords(){return o}comment(e){this.addCode(e,"// ")}generateImports(){this.addCode("import { OpenEO, Formula } from '@openeo/js-client';")}generateConnection(){this.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`)}generateAuthentication(){this.comment("ToDo: Here you need to add your authentication steps")}generateBuilder(){this.addCode("let builder = await connection.buildProcess();")}generateMetadataEntry(e,t){this.addCode(`builder.${e} = ${this.e(t)};`)}async generateFunction(e){let t=e.getParent()?"this":"builder",s=this.var(e.id,this.varPrefix()),r=await this.generateArguments(e,!e.namespace);if(this.comment(e.description),a.A.isObject(r)){let a=e.namespace?`${e.process_id}@${e.namespace}`:e.process_id;this.addCode(`let ${s} = ${t}.process("${a}", ${this.e(r)});`)}else this.addCode(`let ${s} = ${t}.${e.process_id}(${r.map((e=>this.e(e))).join(", ")});`)}generateMissingParameter(e){this.comment(e.description);let t=this.var(e.name,"param"),s="undefined"!==typeof e.default?e.default:null;this.addCode(`let ${t} = ${this.e(s)};`)}async generateCallback(e,t,s){if(this.generateFormula&&e&&e.isMath()){let t=e.toFormulaString(),s=JSON.stringify(t);return`new Formula(${s})`}{let a=this.generateFunctionParams(t);this.newLine(),this.addCode(`let ${s} = function(${a.join(", ")}) {`),this.addCode(await e.toCode(!0),"",1),this.addCode("}")}}generateResult(e,t){if(!e)return;let s=this.var(e.id,this.varPrefix());t?this.addCode(`return ${s};`):this.addCode(`let result = await connection.computeResult(${s});`)}toFormulaString(){return this.isMath()?this.nodeToFormula(this.getResultNode()):""}getArrayElementPlaceholder(e){if("array_element"===e.process_id&&"parameter"===e.getArgumentType("data")){let t=e.getRawArgument("data").from_parameter,s=this.getCallbackParameters().findIndex((e=>e.name===t));if(s>=0)return"$".repeat(s+1)+(e.getArgument("label")||e.getArgument("index"))}return null}nodeToFormula(e,t=null){if("array_element"===e.process_id){let t=this.getArrayElementPlaceholder(e);if(t)return t}let s=i.Formula.reverseOperatorMapping[e.process_id],r=this.processRegistry.get(e.process_id),o="undefined"!==typeof i.Formula.arrayOperatorMapping[e.process_id],n=t=>{if(a.A.isObject(t))if(t.from_node){let a=e.getProcessGraph().getNode(t.from_node);t=a?this.nodeToFormula(a,s):"#"+t.from_node}else{if(!t.from_parameter)throw new Error("Objects not allowed");t=t.from_parameter}return t},l=[],c=Array.isArray(r.parameters)?r.parameters:[];for(let a of c){let t=n(e.getRawArgument(a.name));if(o&&Array.isArray(t)&&"data"===a.name){l=t.map((e=>n(e)));break}if("undefined"!==typeof t)l.push(t);else{if("undefined"===typeof a.default)throw new Error('Argument for parameter "'+a.name+'" missing');l.push(a.default)}}if(o&&(l=l.filter((e=>null!==e))),s){let e=["/","*"],a=["-","+"],r=l.map((e=>e<0?"("+e+")":e)).join(s);return!t||a.includes(t)&&a.includes(s)||"^"===s||a.includes(t)&&e.includes(s)?r:"("+r+")"}return e.process_id+"("+l.join(", ")+")"}}}}]); -//# sourceMappingURL=2668.4da4ee01.js.map \ No newline at end of file +//# sourceMappingURL=2668.5aac89cc.js.map \ No newline at end of file diff --git a/js/2668.4da4ee01.js.map b/js/2668.5aac89cc.js.map similarity index 99% rename from js/2668.4da4ee01.js.map rename to js/2668.5aac89cc.js.map index 128356ac..3a083251 100644 --- a/js/2668.4da4ee01.js.map +++ b/js/2668.5aac89cc.js.map @@ -1 +1 @@ -{"version":3,"file":"js/2668.4da4ee01.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Process.vue?69cf","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/ProcessExample.vue?860f","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/ProcessExample.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/ProcessExample.vue?97de","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/ProcessExample.vue","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Process.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Process.vue?2266","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Process.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039","webpack://@openeo/web-editor/./src/components/modals/ProcessModal.vue","webpack://@openeo/web-editor/src/components/modals/ProcessModal.vue","webpack://@openeo/web-editor/./src/components/modals/ProcessModal.vue?b09b","webpack://@openeo/web-editor/./src/components/modals/ProcessModal.vue?9bab","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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('article',{staticClass:\"vue-component process\"},[(_vm.process.id)?_vm._t(\"title\",function(){return [_c('a',{staticClass:\"anchor\",attrs:{\"name\":_vm.process.id}}),_c('h2',[_vm._v(\" \"+_vm._s(_vm.process.id)+\" \"),(_vm.displayableNamespace)?_c('span',{staticClass:\"namespace\"},[_vm._v(\" — \"+_vm._s(_vm.displayableNamespace))]):_vm._e()])]},{\"vBind\":_vm.$props,\"displayableNamespace\":_vm.displayableNamespace}):_vm._e(),(_vm.process.summary || _vm.process.deprecated || _vm.process.experimental)?[_c('summary',[_vm._v(\" \"+_vm._s(_vm.process.summary)+\" \"),(_vm.process.deprecated || _vm.process.experimental)?[(_vm.process.summary)?[_vm._v(\" — \")]:_vm._e(),(_vm.process.deprecated)?_c('strong',{staticClass:\"deprecated\"},[_vm._v(\"deprecated\")]):_vm._e(),(_vm.process.experimental)?_c('strong',{staticClass:\"experimental\"},[_vm._v(\"experimental\")]):_vm._e()]:_vm._e()],2)]:_vm._e(),(_vm.provideDownload || _vm.hasElements(_vm.process.categories))?[_c('div',{staticClass:\"process-bar\"},[(_vm.hasElements(_vm.process.categories))?_c('ul',{staticClass:\"badges categories\"},_vm._l((_vm.process.categories),function(value){return _c('li',{key:value,staticClass:\"badge category\",domProps:{\"textContent\":_vm._s(_vm.formatCategory(value))}})}),0):_vm._e(),(_vm.provideDownload)?_c('ul',{staticClass:\"badges actions\"},[_c('li',{staticClass:\"badge action download\"},[_c('a',{staticClass:\"badge-fill\",on:{\"click\":_vm.download}},[_vm._v(\"Download JSON\")])])]):_vm._e()])]:_vm._e(),_vm._t(\"before-description\",null,{\"vBind\":_vm.$props}),(_vm.process.description)?_c('section',{staticClass:\"description\"},[_c('h3',[_vm._v(\"Description\")]),_c('code',{staticClass:\"signature\",domProps:{\"innerHTML\":_vm._s(_vm.signature)}}),_c('Description',{attrs:{\"description\":_vm.process.description,\"processUrl\":_vm.processUrl}}),(_vm.process.deprecated)?_c('DeprecationNotice',{attrs:{\"entity\":\"process\"}}):_vm._e(),(_vm.process.experimental)?_c('ExperimentalNotice',{attrs:{\"entity\":\"process\"}}):_vm._e(),(_vm.process['federation:backends'])?_c('FederationNotice',{attrs:{\"backends\":_vm.process['federation:backends'],\"federation\":_vm.federation,\"entity\":\"process\"}}):_vm._e()],1):_vm._e(),_c('section',{staticClass:\"parameters\"},[_c('h3',[_vm._v(\"Parameters\")]),_vm._l((_vm.parameters),function(param){return _c('ProcessParameter',{key:param.name,attrs:{\"parameter\":param,\"processUrl\":_vm.processUrl,\"federation\":_vm.federation}})}),(_vm.parameters.length === 0)?_c('p',[_vm._v(\"This process has no parameters.\")]):_vm._e()],2),_c('section',{staticClass:\"returns\"},[_c('h3',[_vm._v(\"Return Value\")]),(_vm.returns.description || _vm.returns.schema)?[(_vm.returns.description)?_c('Description',{attrs:{\"description\":_vm.returns.description,\"processUrl\":_vm.processUrl}}):_vm._e(),(_vm.returns.schema)?_c('div',{staticClass:\"json-schema-container\"},[_c('JsonSchema',{attrs:{\"schema\":_vm.returns.schema}})],1):_vm._e()]:_c('p',[_vm._v(\"The return value has not been defined.\")])],2),(_vm.hasElements(_vm.process.exceptions))?_c('section',{staticClass:\"exceptions\"},[_c('h3',[_vm._v(\"Errors/Exceptions\")]),_c('ul',_vm._l((_vm.process.exceptions),function(exception,name){return _c('li',{key:name,staticClass:\"exception\"},[_c('code',[_vm._v(_vm._s(name))]),(exception.http)?_c('span',{staticClass:\"http-code\"},[_vm._v(\" — HTTP \"+_vm._s(exception.http))]):_vm._e(),(exception.code)?_c('span',{staticClass:\"error-code\"},[_vm._v(\" — \"+_vm._s(exception.code))]):_vm._e(),(exception.description)?_c('Description',{attrs:{\"description\":exception.description,\"processUrl\":_vm.processUrl,\"compact\":true}}):_vm._e(),(exception.message)?_c('div',{staticClass:\"message\"},[_vm._v(\"Message: \"),_c('em',[_vm._v(_vm._s(exception.message))])]):_vm._e()],1)}),0)]):_vm._e(),(_vm.hasElements(_vm.process.examples))?_c('section',{staticClass:\"examples\"},[_c('h3',[_vm._v(\"Examples\")]),_vm._l((_vm.process.examples),function(example,key){return _c('ProcessExample',{key:key,attrs:{\"id\":key,\"example\":example,\"processId\":_vm.id,\"processParameters\":_vm.parameters,\"processUrl\":_vm.processUrl}})}),_c('LinkList',{attrs:{\"links\":_vm.exampleLinks,\"heading\":\"Processes\",\"headingTag\":\"h4\"}})],2):_vm._e(),_c('section',{staticClass:\"links\"},[_c('LinkList',{attrs:{\"links\":_vm.process.links,\"heading\":\"See Also\",\"headingTag\":\"h3\",\"ignoreRel\":['self', 'example']}})],1),(_vm.showGraph && _vm.process.process_graph)?_c('section',{staticClass:\"process-graph\"},[_c('h3',[_vm._v(\"Processing Instructions\")]),_c('div',{staticClass:\"graph\"},[_vm._t(\"process-graph\",function(){return [_c('ModelBuilder',{attrs:{\"id\":_vm.id,\"value\":_vm.process,\"explicitZoom\":true}})]},{\"vBind\":_vm.$props})],2)]):_vm._e(),_vm._t(\"end\",null,{\"vBind\":_vm.$props})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component process-example\"},[_c('h4',[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"content\"},[(_vm.example.description)?_c('Description',{attrs:{\"description\":_vm.example.description,\"processUrl\":_vm.processUrl,\"compact\":true}}):_vm._e(),(_vm.example.arguments)?_c('div',{staticClass:\"arguments\"},[_c('code',{domProps:{\"innerHTML\":_vm._s(_vm.renderedArguments)}})]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProcessExample.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProcessExample.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProcessExample.vue?vue&type=template&id=5ad13098\"\nimport script from \"./ProcessExample.vue?vue&type=script&lang=js\"\nexport * from \"./ProcessExample.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProcessExample.vue?vue&type=style&index=0&id=5ad13098&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@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\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Process.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Process.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Process.vue?vue&type=template&id=5cbf22d8\"\nimport script from \"./Process.vue?vue&type=script&lang=js\"\nexport * from \"./Process.vue?vue&type=script&lang=js\"\nimport style0 from \"./Process.vue?vue&type=style&index=0&id=5cbf22d8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],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!./Modal.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!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=57347c15\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=57347c15&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('Modal',{attrs:{\"width\":_vm.minWidth,\"title\":_vm.process.id},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('div',{staticClass:\"docgen\"},[_c('Process',{attrs:{\"process\":_vm.process,\"provideDownload\":false,\"showGraph\":true},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(){return [_c('Editor',{staticClass:\"infoViewer\",attrs:{\"value\":_vm.process,\"editable\":false,\"id\":\"pgInfoViewer\"}})]},proxy:true}])})],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!./ProcessModal.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!./ProcessModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProcessModal.vue?vue&type=template&id=66030cfd\"\nimport script from \"./ProcessModal.vue?vue&type=script&lang=js\"\nexport * from \"./ProcessModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProcessModal.vue?vue&type=style&index=0&id=66030cfd&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","render","_vm","this","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","key","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","computed","typesToShow","types","push","data","format","assign","id","process","displayableNamespace","$props","deprecated","experimental","provideDownload","hasElements","categories","value","domProps","formatCategory","download","signature","description","processUrl","param","parameters","length","returns","schema","exceptions","exception","http","code","message","examples","example","exampleLinks","links","showGraph","process_graph","title","renderedArguments","Number","processId","processParameters","Description","params","i","arguments","arg","displayValue","isObject","from_parameter","htmlentities","from_node","JSON","stringify","join","JsonSchema","DeprecationNotice","ExperimentalNotice","ModelBuilder","ProcessExample","ProcessParameter","LinkList","namespace","html","formatProcessSignature","filter","l","rel","keys","replace","dataStr","encodeURIComponent","downloadAnchorNode","document","createElement","setAttribute","body","appendChild","click","remove","processes","showCategories","Process","class","compact","directives","rawName","expression","placeholder","minLength","searchHint","$event","target","composing","watch","newValue","oldValue","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","size","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","DiscoveryToolbar","FullscreenButton","formula","initialNode","node","openArgumentEditorForNode","error","setInitialNode","mounted","navigator","clipboard","readText","text","parse","import","edges","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","label","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","fields","info","additionalProperties","properties","enum","href","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","p","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","style","zIndex","backgroundClose","containerTag","smooth","stopPropagation","submitFunction","apply","startMove","close","submitButtonText","minWidth","width","height","show","position","dragPosition","left","top","open","smoothResize","setTimeout","submit","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","tagName","clientX","clientY","move","stopMove","container","offsetLeft","offsetTop","Editor","Modal","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","makeObject","obj","mapObject","makeString","str","makeNumber","num","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","var","varPrefix","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/2668.5aac89cc.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Process.vue?69cf","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/ProcessExample.vue?860f","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/ProcessExample.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/ProcessExample.vue?97de","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/ProcessExample.vue","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Process.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Process.vue?2266","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Process.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039","webpack://@openeo/web-editor/./src/components/modals/ProcessModal.vue","webpack://@openeo/web-editor/src/components/modals/ProcessModal.vue","webpack://@openeo/web-editor/./src/components/modals/ProcessModal.vue?b09b","webpack://@openeo/web-editor/./src/components/modals/ProcessModal.vue?9bab","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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('article',{staticClass:\"vue-component process\"},[(_vm.process.id)?_vm._t(\"title\",function(){return [_c('a',{staticClass:\"anchor\",attrs:{\"name\":_vm.process.id}}),_c('h2',[_vm._v(\" \"+_vm._s(_vm.process.id)+\" \"),(_vm.displayableNamespace)?_c('span',{staticClass:\"namespace\"},[_vm._v(\" — \"+_vm._s(_vm.displayableNamespace))]):_vm._e()])]},{\"vBind\":_vm.$props,\"displayableNamespace\":_vm.displayableNamespace}):_vm._e(),(_vm.process.summary || _vm.process.deprecated || _vm.process.experimental)?[_c('summary',[_vm._v(\" \"+_vm._s(_vm.process.summary)+\" \"),(_vm.process.deprecated || _vm.process.experimental)?[(_vm.process.summary)?[_vm._v(\" — \")]:_vm._e(),(_vm.process.deprecated)?_c('strong',{staticClass:\"deprecated\"},[_vm._v(\"deprecated\")]):_vm._e(),(_vm.process.experimental)?_c('strong',{staticClass:\"experimental\"},[_vm._v(\"experimental\")]):_vm._e()]:_vm._e()],2)]:_vm._e(),(_vm.provideDownload || _vm.hasElements(_vm.process.categories))?[_c('div',{staticClass:\"process-bar\"},[(_vm.hasElements(_vm.process.categories))?_c('ul',{staticClass:\"badges categories\"},_vm._l((_vm.process.categories),function(value){return _c('li',{key:value,staticClass:\"badge category\",domProps:{\"textContent\":_vm._s(_vm.formatCategory(value))}})}),0):_vm._e(),(_vm.provideDownload)?_c('ul',{staticClass:\"badges actions\"},[_c('li',{staticClass:\"badge action download\"},[_c('a',{staticClass:\"badge-fill\",on:{\"click\":_vm.download}},[_vm._v(\"Download JSON\")])])]):_vm._e()])]:_vm._e(),_vm._t(\"before-description\",null,{\"vBind\":_vm.$props}),(_vm.process.description)?_c('section',{staticClass:\"description\"},[_c('h3',[_vm._v(\"Description\")]),_c('code',{staticClass:\"signature\",domProps:{\"innerHTML\":_vm._s(_vm.signature)}}),_c('Description',{attrs:{\"description\":_vm.process.description,\"processUrl\":_vm.processUrl}}),(_vm.process.deprecated)?_c('DeprecationNotice',{attrs:{\"entity\":\"process\"}}):_vm._e(),(_vm.process.experimental)?_c('ExperimentalNotice',{attrs:{\"entity\":\"process\"}}):_vm._e(),(_vm.process['federation:backends'])?_c('FederationNotice',{attrs:{\"backends\":_vm.process['federation:backends'],\"federation\":_vm.federation,\"entity\":\"process\"}}):_vm._e()],1):_vm._e(),_c('section',{staticClass:\"parameters\"},[_c('h3',[_vm._v(\"Parameters\")]),_vm._l((_vm.parameters),function(param){return _c('ProcessParameter',{key:param.name,attrs:{\"parameter\":param,\"processUrl\":_vm.processUrl,\"federation\":_vm.federation}})}),(_vm.parameters.length === 0)?_c('p',[_vm._v(\"This process has no parameters.\")]):_vm._e()],2),_c('section',{staticClass:\"returns\"},[_c('h3',[_vm._v(\"Return Value\")]),(_vm.returns.description || _vm.returns.schema)?[(_vm.returns.description)?_c('Description',{attrs:{\"description\":_vm.returns.description,\"processUrl\":_vm.processUrl}}):_vm._e(),(_vm.returns.schema)?_c('div',{staticClass:\"json-schema-container\"},[_c('JsonSchema',{attrs:{\"schema\":_vm.returns.schema}})],1):_vm._e()]:_c('p',[_vm._v(\"The return value has not been defined.\")])],2),(_vm.hasElements(_vm.process.exceptions))?_c('section',{staticClass:\"exceptions\"},[_c('h3',[_vm._v(\"Errors/Exceptions\")]),_c('ul',_vm._l((_vm.process.exceptions),function(exception,name){return _c('li',{key:name,staticClass:\"exception\"},[_c('code',[_vm._v(_vm._s(name))]),(exception.http)?_c('span',{staticClass:\"http-code\"},[_vm._v(\" — HTTP \"+_vm._s(exception.http))]):_vm._e(),(exception.code)?_c('span',{staticClass:\"error-code\"},[_vm._v(\" — \"+_vm._s(exception.code))]):_vm._e(),(exception.description)?_c('Description',{attrs:{\"description\":exception.description,\"processUrl\":_vm.processUrl,\"compact\":true}}):_vm._e(),(exception.message)?_c('div',{staticClass:\"message\"},[_vm._v(\"Message: \"),_c('em',[_vm._v(_vm._s(exception.message))])]):_vm._e()],1)}),0)]):_vm._e(),(_vm.hasElements(_vm.process.examples))?_c('section',{staticClass:\"examples\"},[_c('h3',[_vm._v(\"Examples\")]),_vm._l((_vm.process.examples),function(example,key){return _c('ProcessExample',{key:key,attrs:{\"id\":key,\"example\":example,\"processId\":_vm.id,\"processParameters\":_vm.parameters,\"processUrl\":_vm.processUrl}})}),_c('LinkList',{attrs:{\"links\":_vm.exampleLinks,\"heading\":\"Processes\",\"headingTag\":\"h4\"}})],2):_vm._e(),_c('section',{staticClass:\"links\"},[_c('LinkList',{attrs:{\"links\":_vm.process.links,\"heading\":\"See Also\",\"headingTag\":\"h3\",\"ignoreRel\":['self', 'example']}})],1),(_vm.showGraph && _vm.process.process_graph)?_c('section',{staticClass:\"process-graph\"},[_c('h3',[_vm._v(\"Processing Instructions\")]),_c('div',{staticClass:\"graph\"},[_vm._t(\"process-graph\",function(){return [_c('ModelBuilder',{attrs:{\"id\":_vm.id,\"value\":_vm.process,\"explicitZoom\":true}})]},{\"vBind\":_vm.$props})],2)]):_vm._e(),_vm._t(\"end\",null,{\"vBind\":_vm.$props})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component process-example\"},[_c('h4',[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"content\"},[(_vm.example.description)?_c('Description',{attrs:{\"description\":_vm.example.description,\"processUrl\":_vm.processUrl,\"compact\":true}}):_vm._e(),(_vm.example.arguments)?_c('div',{staticClass:\"arguments\"},[_c('code',{domProps:{\"innerHTML\":_vm._s(_vm.renderedArguments)}})]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProcessExample.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProcessExample.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProcessExample.vue?vue&type=template&id=5ad13098\"\nimport script from \"./ProcessExample.vue?vue&type=script&lang=js\"\nexport * from \"./ProcessExample.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProcessExample.vue?vue&type=style&index=0&id=5ad13098&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@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\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Process.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Process.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Process.vue?vue&type=template&id=5cbf22d8\"\nimport script from \"./Process.vue?vue&type=script&lang=js\"\nexport * from \"./Process.vue?vue&type=script&lang=js\"\nimport style0 from \"./Process.vue?vue&type=style&index=0&id=5cbf22d8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],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!./Modal.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!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=57347c15\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=57347c15&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('Modal',{attrs:{\"width\":_vm.minWidth,\"title\":_vm.process.id},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('div',{staticClass:\"docgen\"},[_c('Process',{attrs:{\"process\":_vm.process,\"provideDownload\":false,\"showGraph\":true},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(){return [_c('Editor',{staticClass:\"infoViewer\",attrs:{\"value\":_vm.process,\"editable\":false,\"id\":\"pgInfoViewer\"}})]},proxy:true}])})],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!./ProcessModal.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!./ProcessModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProcessModal.vue?vue&type=template&id=66030cfd\"\nimport script from \"./ProcessModal.vue?vue&type=script&lang=js\"\nexport * from \"./ProcessModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProcessModal.vue?vue&type=style&index=0&id=66030cfd&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","render","_vm","this","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","key","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","computed","typesToShow","types","push","data","format","assign","id","process","displayableNamespace","$props","deprecated","experimental","provideDownload","hasElements","categories","value","domProps","formatCategory","download","signature","description","processUrl","param","parameters","length","returns","schema","exceptions","exception","http","code","message","examples","example","exampleLinks","links","showGraph","process_graph","title","renderedArguments","Number","processId","processParameters","Description","params","i","arguments","arg","displayValue","isObject","from_parameter","htmlentities","from_node","JSON","stringify","join","JsonSchema","DeprecationNotice","ExperimentalNotice","ModelBuilder","ProcessExample","ProcessParameter","LinkList","namespace","html","formatProcessSignature","filter","l","rel","keys","replace","dataStr","encodeURIComponent","downloadAnchorNode","document","createElement","setAttribute","body","appendChild","click","remove","processes","showCategories","Process","class","compact","directives","rawName","expression","placeholder","minLength","searchHint","$event","target","composing","watch","newValue","oldValue","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","size","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","DiscoveryToolbar","FullscreenButton","formula","initialNode","node","openArgumentEditorForNode","error","setInitialNode","mounted","navigator","clipboard","readText","text","parse","import","edges","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","label","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","fields","info","additionalProperties","properties","enum","href","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","p","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","style","zIndex","backgroundClose","containerTag","smooth","stopPropagation","submitFunction","apply","startMove","close","submitButtonText","minWidth","width","height","show","position","dragPosition","left","top","open","smoothResize","setTimeout","submit","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","tagName","clientX","clientY","move","stopMove","container","offsetLeft","offsetTop","Editor","Modal","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","makeObject","obj","mapObject","makeString","str","makeNumber","num","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","var","varPrefix","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file diff --git a/js/3298.88b3bce8.js b/js/3298.57f5c4ef.js similarity index 99% rename from js/3298.88b3bce8.js rename to js/3298.57f5c4ef.js index 31feb7d5..4436412a 100644 --- a/js/3298.88b3bce8.js +++ b/js/3298.57f5c4ef.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[2722,3298,9409],{35254:(e,t,a)=>{a.d(t,{A:()=>s});const s={components:{FederationNotice:()=>a.e(2604).then(a.bind(a,52604)),FederationMissingNotice:()=>a.e(2869).then(a.bind(a,62869))},props:{federation:{type:Object,default:()=>({})}}}},44712:(e,t,a)=>{a.d(t,{A:()=>u});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component collections"},[t("SearchableList",{attrs:{data:e.collections,identifierKey:"id",summaryKey:"title",keywordsKey:"keywords",showKeywords:e.showKeywords,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"content-start",fn:function(a){return[e._t("content-start",null,null,a),e.missing?t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}}):e._e()]}},{key:"after-search-box",fn:function(t){return[e._t("after-search-box",null,null,t)]}},{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(a){return[t("Collection",{attrs:{data:a.item,mapOptions:e.mapOptions,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("collection-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("collection-end",null,null,t)]}},{key:"spatial-extents",fn:function(t){return[e._t("collection-spatial-extents",null,null,t)]}},{key:"temporal-extents",fn:function(t){return[e._t("collection-temporal-extents",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=a(86975),o=a(35254);const n={name:"Collections",components:{Collection:()=>i.A.loadAsyncComponent(Promise.all([a.e(2195),a.e(2919),a.e(4432),a.e(2263),a.e(1358),a.e(3249)]).then(a.bind(a,3249))),SearchableList:()=>i.A.loadAsyncComponent(a.e(4152).then(a.bind(a,34152)))},mixins:[o.A],props:{collections:{type:Array,default:()=>[]},mapOptions:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Collections"},collapsed:{type:Boolean,default:null},loadAdditionalData:{type:Function,default:null},showKeywords:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=a(81656),d=(0,c.A)(l,s,r,!1,null,null,null);const u=d.exports},90334:(e,t,a)=>{a.d(t,{A:()=>u});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component file-formats"},[t("SearchableList",{attrs:{data:e.fileFormats,summaryKey:"title",keywordsKey:"gis_data_types",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(a){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(a.item.name))]),t("ul",{staticClass:"badges small inline"},[e.showAll&&"input"===a.item.type?t("li",{staticClass:"badge option1"},[e._v("Import")]):e._e(),e.showAll&&"output"===a.item.type?t("li",{staticClass:"badge option2"},[e._v("Export")]):e._e(),Array.isArray(a.item.gis_data_types)?e._l(a.item.gis_data_types,(function(a){return t("li",{key:a,staticClass:"badge gis"},[e._v(e._s(a))])})):e._e()],2),t("br"),t("small",[e._v(e._s(a.summary.summary))])]}),null,a)]}},{key:"details",fn:function(a){return[t("FileFormat",{attrs:{id:a.summary.identifier,format:a.item,type:a.item.type,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("file-format-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("file-format-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=a(86975),o=a(35254);const n={name:"FileFormats",components:{SearchableList:()=>i.A.loadAsyncComponent(a.e(4152).then(a.bind(a,34152))),FileFormat:()=>i.A.loadAsyncComponent(a.e(3504).then(a.bind(a,13504)))},mixins:[o.A],props:{formats:{type:Object,default:()=>({})},showInput:{type:Boolean,default:!0},showOutput:{type:Boolean,default:!0},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"File Formats"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},computed:{showAll(){return this.showInput&&this.showOutput},typesToShow(){let e=[];return this.showInput&&e.push("input"),this.showOutput&&e.push("output"),e},fileFormats(){let e=[];for(let a of this.typesToShow)for(var t in this.formats[a]){let s=Object.assign({id:`${t}-${a}`,name:t,type:a},this.formats[a][t]);e.push(s)}return e}},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=a(81656),d=(0,c.A)(l,s,r,!1,null,null,null);const u=d.exports},48312:(e,t,a)=>{a.d(t,{A:()=>u});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component processes"},[t("SearchableList",{attrs:{data:e.processes,keywordsKey:"categories",showKeywords:e.showCategories,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(a){return[t("Process",{attrs:{process:a.item,provideDownload:e.provideDownload,processUrl:e.processUrl,showGraph:e.showGraph,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("process-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("process-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=a(86975),o=a(35254);const n={name:"Processes",components:{Process:()=>i.A.loadAsyncComponent(a.e(6660).then(a.bind(a,34279))),SearchableList:()=>i.A.loadAsyncComponent(a.e(4152).then(a.bind(a,34152)))},mixins:[o.A],props:{processes:{type:Array,default:()=>[]},provideDownload:{type:Boolean,default:!0},processUrl:String,searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Processes"},collapsed:{type:Boolean,default:null},showCategories:{type:Boolean,default:!1},showGraph:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},loadAdditionalData:{type:Function,default:null},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=a(81656),d=(0,c.A)(l,s,r,!1,null,null,null);const u=d.exports},9409:(e,t,a)=>{a.r(t),a.d(t,{default:()=>c});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component search-box",class:{compact:e.compact}},[t("span",{staticClass:"icon"},[e._v("🔎")]),t("input",{directives:[{name:"model",rawName:"v-model",value:e.searchTerm,expression:"searchTerm"}],attrs:{type:"search",placeholder:e.placeholder,minlength:e.minLength,title:e.searchHint},domProps:{value:e.searchTerm},on:{input:function(t){t.target.composing||(e.searchTerm=t.target.value)}}})])},r=[];const i={name:"SearchBox",props:{value:{type:String,default:""},placeholder:{type:String,default:"Search"},minLength:{type:Number,default:1},compact:{type:Boolean,default:!1}},data(){return{searchTerm:this.value}},watch:{searchTerm(e,t){e.length1?`Searching requires at least ${this.minLength} characters.`:null}}},o=i;var n=a(81656),l=(0,n.A)(o,s,r,!1,null,null,null);const c=l.exports},91065:(e,t,a)=>{a.d(t,{A:()=>u});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component udf-runtimes"},[t("SearchableList",{attrs:{data:e.runtimes,summaryKey:"title",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"summary",fn:function(a){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(a.summary.identifier))]),t("ul",{staticClass:"badges small inline"},["docker"===a.item.type||a.item.docker&&a.item.tags?[t("li",{staticClass:"badge docker"},[e._v("Docker")]),e._l(a.item.tags,(function(s){return t("li",{key:s,staticClass:"badge version",class:{default:s===a.item.default}},[e._v(e._s(s))])}))]:e._l(a.item.versions,(function(s,r){return t("li",{key:r,staticClass:"badge version",class:{default:r===a.item.default}},[e._v(e._s(r))])}))],2),t("br"),t("small",[e._v(e._s(a.summary.summary))])]}),null,a)]}},{key:"details",fn:function(a){return[t("UdfRuntime",{attrs:{id:a.summary.identifier,runtime:a.item,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(t){return[e._t("udf-runtime-badges",null,null,t)]}},{key:"before-description",fn:function(t){return[e._t("udf-runtime-before-description",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=a(86975),o=a(35254);const n={name:"UdfRuntimes",components:{SearchableList:()=>i.A.loadAsyncComponent(a.e(4152).then(a.bind(a,34152))),UdfRuntime:()=>i.A.loadAsyncComponent(a.e(3271).then(a.bind(a,33271)))},mixins:[o.A],props:{runtimes:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"UDF Runtimes"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=a(81656),d=(0,c.A)(l,s,r,!1,null,null,null);const u=d.exports},36107:(e,t,a)=>{a.d(t,{A:()=>y});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"discovery-toolbar"},[t("SearchBox",{model:{value:e.searchTerm,callback:function(t){e.searchTerm=t},expression:"searchTerm"}}),t("div",{staticClass:"filters"},[t("span",{staticClass:"label"},[e._v(" Show ")]),t("label",{staticClass:"show-deprecated",attrs:{title:"Show deprecated elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showDeprecated,expression:"showDeprecated"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showDeprecated)?e._i(e.showDeprecated,null)>-1:e.showDeprecated},on:{change:function(t){var a=e.showDeprecated,s=t.target,r=!!s.checked;if(Array.isArray(a)){var i=null,o=e._i(a,i);s.checked?o<0&&(e.showDeprecated=a.concat([i])):o>-1&&(e.showDeprecated=a.slice(0,o).concat(a.slice(o+1)))}else e.showDeprecated=r}}}),e._v(" deprecated ")]),t("label",{staticClass:"show-experimental",attrs:{title:"Show experimental elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showExperimental,expression:"showExperimental"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showExperimental)?e._i(e.showExperimental,null)>-1:e.showExperimental},on:{change:function(t){var a=e.showExperimental,s=t.target,r=!!s.checked;if(Array.isArray(a)){var i=null,o=e._i(a,i);s.checked?o<0&&(e.showExperimental=a.concat([i])):o>-1&&(e.showExperimental=a.slice(0,o).concat(a.slice(o+1)))}else e.showExperimental=r}}}),e._v(" experimental ")])]),t("div",{staticClass:"search-results"},[t("Collections",{staticClass:"category",attrs:{collections:e.collections,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:a}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsLoadCollection},on:{dragstart:function(t){return e.onDrag(t,"collection",a)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showCollectionInfo(a.id)}}},[t("strong",{attrs:{title:a.id}},[e._v(e._s(a.id))]),a.title?t("small",{attrs:{title:a.title}},[e._v(e._s(a.title))]):e._e()]),e.hasCollectionPreview(a)?t("button",{staticClass:"discovery-button",attrs:{type:"button",title:"View on map"},on:{click:function(t){return e.showCollectionPreview(a)}}},[t("i",{staticClass:"fas fa-map"})]):e._e()])]}}])}),t("Processes",{staticClass:"category",attrs:{processes:e.allProcesses,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:a}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:"true"},on:{dragstart:function(t){return e.onDrag(t,"process",a)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showProcess(a)}}},["user"===a.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-sitemap",attrs:{title:"Custom Process"}}):"backend"!==a.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-tag",attrs:{title:`Process from namespace '${a.namespace}'`}}):e._e(),t("strong",{attrs:{title:a.id}},[e._v(e._s(a.id))]),a.summary?t("small",{attrs:{title:a.summary}},[e._v(e._s(a.summary))]):e._e()])])]}}])}),e.hasUdfRuntimes?t("UdfRuntimes",{staticClass:"category",attrs:{runtimes:e.udfRuntimes,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({summary:a,item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsRunUdf},on:{dragstart:function(t){return e.onDrag(t,"udf",{runtime:a.identifier,version:s.default})}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showUdfInfo(a.identifier,s)}}},[t("strong",{attrs:{title:a.identifier}},[e._v(e._s(a.identifier)+" ("+e._s(s.default)+")")]),a.summary?t("small",{attrs:{title:a.summary}},[e._v(e._s(a.summary))]):e._e()])])]}}],null,!1,92063951)}):e._e(),t("FileFormats",{staticClass:"category",attrs:{formats:e.fileFormats,showInput:!1,heading:"Export File Formats",searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:a}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsSaveResult},on:{dragstart:function(t){return e.onDrag(t,"fileformat",a)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showFileFormatInfo(a)}}},[t("strong",{attrs:{title:a.name}},[e._v(e._s(a.name))]),a.title?t("small",{attrs:{title:a.title}},[e._v(e._s(a.title))]):e._e()])])]}}])})],1)],1)},r=[],i=a(61663),o=a(2566),n=a(44712),l=a(90334),c=a(48312),d=a(9409),u=a(91065);const p={name:"DiscoveryToolbar",mixins:[i.A],components:{Collections:n.A,FileFormats:l.A,Processes:c.A,SearchBox:d["default"],UdfRuntimes:u.A},props:{onAddProcess:{type:Function,required:!0},collectionPreview:{type:Boolean,default:!1},persist:{type:Boolean,default:!1}},data(){return{internalSearchTerm:"",collapsed:!0,showDeprecated:this.$config.showDeprecatedByDefault||!1,showExperimental:this.$config.showExperimentalByDefault||!1}},computed:{...o.A.mapState(["collections","udfRuntimes"]),...o.A.mapState("editor",["discoverySearchTerm"]),...o.A.mapGetters(["supports","fileFormats","processes"]),supportsLoadCollection(){return this.processes.has("load_collection")},supportsRunUdf(){return this.processes.has("run_udf")},supportsSaveResult(){return this.processes.has("save_result")},hasUdfRuntimes(){return o.A.size(this.udfRuntimes)},allProcesses(){return this.processes.all()},searchTerm:{get(){return this.persist?this.discoverySearchTerm:this.internalSearchTerm},set(e){this.persist?this.setDiscoverySearchTerm(e):this.internalSearchTerm=e}}},watch:{searchTerm:{immediate:!0,handler(e,t){!e&&t?this.collapsed=!0:e&&!t&&(this.collapsed=!1)}}},methods:{...o.A.mapMutations("editor",["setDiscoverySearchTerm","setModelDnD"]),...o.A.mapActions(["loadProcess"]),onDrag(e,t,a){let s=e=>this.setModelDnD({type:t,data:a,loading:e});"process"===t?(s(!0),this.loadProcess(a).then((()=>s(!1)))):s(!1)},showCollectionInfo(e){this.broadcast("showCollection",e)},hasCollectionPreview(e){return Boolean(this.collectionPreview&&o.A.getPreviewLinkFromSTAC(e))},showCollectionPreview(e){this.broadcast("showCollectionPreview",e)},showProcess(e){this.broadcast("showProcess",e)},showUdfInfo(e,t){this.broadcast("showModal","UdfRuntimeModal",{id:e,data:t,version:t.default})},showFileFormatInfo(e){let t={id:e.name,format:this.fileFormats.output[e.name],type:"output"};this.broadcast("showModal","FileFormatModal",t)}}},h=p;var m=a(81656),f=(0,m.A)(h,s,r,!1,null,"aacdf426",null);const y=f.exports},92385:(e,t,a)=>{a.r(t),a.d(t,{default:()=>S});var s=function(){var e=this,t=e._self._c;return t("Tabs",{ref:"tabs",staticClass:"editor",attrs:{id:"customProcessContent",position:"bottom"}},[t("Tab",{attrs:{id:"visual",name:"Visual Model",icon:"fa-project-diagram",selected:!0,allowShow:e.canSwitchView},on:{show:e.showModel}},[t("VisualEditor",{ref:"graphBuilder",staticClass:"visualEditorTab",attrs:{editable:e.editable,parent:e.parent,parentSchema:e.parentSchema,value:e.modelValue,title:e.title,id:e.id+"_visual",showDiscoveryToolbar:e.showDiscoveryToolbar,showIntro:e.showIntro,defaultValue:e.defaultValue},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1),t("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code",allowShow:e.canSwitchView},on:{show:e.showCode}},[t("TextEditor",{ref:"sourceEditor",staticClass:"textEditorTab",attrs:{editable:e.editable,value:e.codeValue,title:e.title,id:e.id+"_text",language:"processgraph"},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1)],1)},r=[],i=a(2566),o=a(4615),n=a(58379),l=function(){var e=this,t=e._self._c;return t("div",{ref:"visualEditor",staticClass:"visualEditor"},[t("div",{staticClass:"sourceHeader"},[e.title?t("strong",[e._v(e._s(e.title))]):e._e(),t("div",{staticClass:"sourceToolbar"},[e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{title:"Start from scratch - Clears the current script"},on:{click:e.confirmClear}},[t("i",{staticClass:"fas fa-file"})]),e._t("file-toolbar")],2):e._e(),e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{disabled:!e.canUndo,title:"Revert the last change"},on:{click:function(t){return e.$refs.blocks.undo()}}},[t("i",{staticClass:"fas fa-undo-alt"})]),t("BButton",{attrs:{disabled:!e.canRedo,title:"Redo the last reverted change"},on:{click:function(t){return e.$refs.blocks.redo()}}},[t("i",{staticClass:"fas fa-redo-alt"})]),t("BButton",{attrs:{disabled:!e.hasSelection,title:"Delete the selected elements from the process"},on:{click:function(t){return e.$refs.blocks.deleteSelected()}}},[t("i",{staticClass:"fas fa-trash"})])],1):e._e(),e.editable?t("span",{staticClass:"sepr"},[e.parent?e._e():t("BButton",{attrs:{title:"Edit the process metadata"},on:{click:()=>e.editProcess(e.value)}},[t("i",{staticClass:"fas fa-edit"})]),t("BButton",{attrs:{title:"Add a parameter to the process"},on:{click:e.addParameter}},[t("i",{staticClass:"fas fa-parking"})]),e.supportsMath?t("BButton",{class:{highlightFormula:e.isMath},attrs:{title:"Insert or edit a formula as part of the process"},on:{click:e.showExpressionModal}},[t("i",{staticClass:"fas fa-square-root-alt"})]):e._e()],1):e._e(),t("BButton",{class:{compactMode:e.compactMode},attrs:{title:e.compactMode?"Show the process more compact and less detailed":"Shows the process less compact and more detailed"},on:{click:function(t){return e.$refs.blocks.toggleCompact()}}},[t("i",{staticClass:"fas fa-compress-arrows-alt"})]),t("BButton",{attrs:{title:"Scale the view to match the available space"},on:{click:function(t){return e.$refs.blocks.perfectScale()}}},[t("i",{staticClass:"fas fa-arrows-alt"})]),t("FullscreenButton",{attrs:{element:()=>this.$refs.visualEditor},on:{changed:t=>{this.$refs.blocks.perfectScale(),e.isFullScreen=t}}}),e._t("toolbar")],2)]),t("div",{staticClass:"editorSplitter"},[(e.showDiscoveryToolbar||e.isFullScreen)&&e.editable?t("DiscoveryToolbar",{staticClass:"discoveryToolbar",attrs:{onAddProcess:e.insertProcess}}):e._e(),t("div",{staticClass:"graphBuilder",on:{drop:e.onDrop,dragover:e.allowDrop}},[e.showHelpOverlay?t("div",{staticClass:"model-overlay"},[t("h2",[e._v("Welcome!")]),t("p",[e._v(" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. ")]),t("p",[e._v(" Alternatively, you can also import existing processes into the model builder: "),t("ul",[e.canPaste?t("li",[e._v("Paste the JSON from your clipboard by clicking "),t("BButton",{attrs:{title:"Paste a process from your clipboard"},on:{click:e.paste}},[t("i",{staticClass:"fas fa-paste"})]),e._v(" or use "),t("kbd",[e._v("CTRL")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (Windows, Linux) or "),t("kbd",[e._v("⌘")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (MacOS) when the model builder is in focus.")],1):e._e(),t("li",[e._v("Drag and drop a JSON file from your computer")]),t("li",[e._v("Import a JSON file from your computer or another source such as the internet by clicking "),t("BButton",{attrs:{title:"Import a process from an external source"},on:{click:e.importProcess}},[t("i",{staticClass:"fas fa-cloud-download-alt"})])],1)])]),e._m(0),t("p",[e._v("Once you start interacting with this area, this message will disappear.")])]):e._e(),t("ModelBuilder",{ref:"blocks",attrs:{editable:e.editable,id:e.id,processes:e.processes,collections:e.collections,parent:e.parent,parentSchema:e.parentSchema,value:e.value},on:{input:e.commit,error:e.errorHandler,showProcess:(t,a)=>e.broadcast("showProcess",{id:t,namespace:a}),showCollection:t=>e.broadcast("showCollection",t),showParameter:(t,a)=>e.broadcast("showProcessParameter",t,a),editParameter:e.editParameter,editArguments:e.openArgumentEditor,compactMode:e=>this.compactMode=e,selectionChanged:e.selectionChanged,historyChanged:e.historyChanged}})],1)],1)])},c=[function(){var e=this,t=e._self._c;return t("p",[e._v(" You can also import the processes from the Python and R client. You need to export your process to JSON first: "),t("ul",[t("li",[e._v("In Python use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export",target:"_blank"}},[t("code",[e._v("print(result.to_json())")])])]),t("li",[e._v("In R use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-r-client/reference/index.html",target:"_blank"}},[t("code",[e._v('toJSON(as(result, "Process"))')])])])]),e._v(" In both cases, "),t("code",[e._v("result")]),e._v(" is your last return value from a data cube process such as "),t("code",[e._v("save_result")]),e._v(". For more details, please read the corresponding chapter in the "),t("a",{attrs:{href:"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json",target:"_blank"}},[e._v("openEO cookbook")]),e._v(". ")])}],d=(a(98992),a(54520),a(81454),a(4638)),u=a(36107),p=a(61663),h=a(92622),m=a(91144),f=a(31572),y=a(47067);const g={name:"VisualEditor",mixins:[p.A],components:{BButton:m.A,ModelBuilder:d["default"],DiscoveryToolbar:u.A,FullscreenButton:h.A},props:{id:String,editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},title:{type:String},defaultValue:{}},computed:{...i.A.mapState(["connection","collections"]),...i.A.mapGetters(["processes","supportsMath"]),...i.A.mapState("editor",["initialNode"]),...i.A.mapGetters("editor",["getModelNodeFromDnD"]),isMath(){return this.supportsMath&&this.processes.isMath(this.value)}},data(){return{showHelpOverlay:this.showIntro,canUndo:!1,canRedo:!1,canPaste:!1,compactMode:!1,hasSelection:!1,formula:null,isFullScreen:!1}},watch:{value:{immediate:!0,handler(e){if(e&&(this.showHelpOverlay=!1),this.initialNode&&i.A.isObject(e)&&i.A.isObject(e.process_graph))try{let t=this.initialNode;"1"==t&&i.A.size(e.process_graph)&&(t=Object.keys(e.process_graph)[0]),this.openArgumentEditorForNode(t)}catch(t){i.A.exception(this,t)}finally{this.setInitialNode(null)}}}},mounted(){this.canPaste=navigator&&navigator.clipboard&&"function"===typeof navigator.clipboard.readText},methods:{...i.A.mapMutations("editor",["setInitialNode","setModelDnD"]),commit(e){"undefined"!==typeof this.defaultValue&&i.A.isObject(e)&&0===i.A.size(e.process_graph)&&(e=this.defaultValue),this.$emit("input",e)},async paste(){this.canPaste||i.A.error(this,"error","Pasting is not supported by your browser.");try{const e=await navigator.clipboard.readText();let t=JSON.parse(e);await this.$refs.blocks.import(t)}catch(e){i.A.exception(this,e,"Paste Error")}},importProcess(){this.broadcast("importProcess")},errorHandler(e,t=null){i.A.exception(this,e,t)},selectionChanged(e,t){this.hasSelection=Boolean(e.filter((e=>e.$el.allowsDelete)).length||t.length)},historyChanged(e,t){this.canUndo=!!e[t-1],this.canRedo=!!e[t+1]},allowDrop(e){this.showHelpOverlay=!1,e.preventDefault()},async onDrop(e){const t=await this.getModelNodeFromDnD();if(t)return this.insertProcess(t,e.pageX,e.pageY),this.setModelDnD(),e.preventDefault();let a=e.dataTransfer.files;if(1===a.length){let t=e.dataTransfer.files[0];if("application/json"===t.type){var s=new FileReader;return s.onload=async e=>{try{let t=JSON.parse(e.target.result);await this.$refs.blocks.import(t)}catch(t){i.A.exception(this,t,"Parsing JSON file failed")}},s.onerror=e=>i.A.exception(this,e,"Reading JSON file failed"),s.readAsText(t,"UTF-8"),e.preventDefault()}}},getNameField(e=void 0,t="name"){return{value:e,name:t,description:"A unique identifier. Must contain only letters (`a`-`z`), digits (`0`-`9`) and underscores (`_`). `snake_case` is recommended.",label:"Name",schema:{type:"string",pattern:"^\\w+$"},default:null}},getDescriptionField(e=void 0,t=!1,a="description",s="Description"){return{value:e,name:a,description:"Provides a detailed description. CommonMark (Markdown) syntax can be used for rich text formatting.",label:s,optional:t,schema:{type:"string",subtype:"commonmark"}}},getOptionalField(e=void 0){return{value:e,name:"optional",label:"Optional",description:"Parameters by default are required. CHeck this option to make the parameter optional. For optional parameters a default value should be specified.",optional:!0,schema:{type:"boolean"},default:!1}},getDefaultField(e=void 0){return{value:e,name:"default",label:"Default Value",description:"This value is used whenever the user of this process did not specify a value for this parameter.",toggledBy:"optional",optional:!0,schema:{}}},getExperimentalField(e=void 0){return{value:e,name:"experimental",label:"Experimental",description:"Declares that this is experimental, which means that it is unstable and likely to change.",optional:!0,schema:{type:"boolean"},default:!1}},getDeprecatedField(e=void 0){return{value:e,name:"deprecated",label:"Deprecated",description:"Declares that this is deprecated with the potential to be removed in any of the next versions. It should be transitioned out of usage.",optional:!0,schema:{type:"boolean"},default:!1}},getSchemaField(e=void 0,t="schema",a="Data Types"){let s=e?"json-schema":"openeo-datatype";return{value:e,name:t,label:a,description:"Allowed data type(s) as JSON Schema.",schema:[{title:"Single data type",type:"object",subtype:s},{title:"Multiple data types",type:"array",minItems:2,items:{type:"object",subtype:s}}]}},editProcess(e){e=i.A.isObject(e)?e:{};let t=i.A.isObject(e.returns)?e.returns:{};var a=[this.getNameField(e.id,"id"),{value:e.summary,name:"summary",description:"A very short description of the process with usually less than 60 characters.",label:"Summary",optional:!0,schema:{type:"string"}},this.getDescriptionField(e.description,!0),{value:e.categories,name:"categories",label:"Categories",optional:!0,schema:{type:"array",items:{type:"string"}}},this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),{label:"Parameters",description:'The parameters can be edited directly in the "Visual Model" interface.',info:!0},this.getDescriptionField(t.description,!0,"returns_description","Return Value > Description"),this.getSchemaField(t.schema,"returns_schema","Return Value > Data Type"),{value:e.exceptions,name:"exceptions",description:"Declares exceptions (errors) that might occur during execution of this process. This list is just for informative purposes.\n\nThe keys of the object are the error codes, which should only consist of alphanumerical characters. `PascalCase` is recommended.",label:"Errors",optional:!0,schema:{type:"object",additionalProperties:{type:"object",required:["message"],properties:{message:{title:"Error Message",type:"string"},description:{title:"Description",type:"string",subtype:"commonmark"},http:{title:"HTTP Status Code",type:"integer",enum:[400,500,501]}}}}},{value:e.examples,name:"examples",label:"Examples",description:"Example calls for this process with specific values for the parameters (arguments) and the result (return value).",optional:!0,schema:{type:"array",items:{type:"object",required:["arguments"],properties:{title:{title:"Title",type:"string"},title:{title:"Description",type:"string",subtype:"commonmark"},arguments:{title:"Arguments",type:"object",default:{}},returns:{title:"Return Value"}}}}},{value:e.links,name:"links",label:"Links",description:"Links related to this process, e.g. additional documentation.",optional:!0,schema:{type:"array",items:{type:"object",required:["href","rel"],properties:{href:{title:"URL",type:"string"},rel:{title:"Relation",description:"For examples see [IANA relation types](https://www.iana.org/assignments/link-relations/link-relations.xhtml)",type:"string",default:"about"},title:{title:"Title",type:"string"},type:{title:"Media Type",description:"For examples see [IANA media types](https://www.iana.org/assignments/media-types/media-types.xhtml)",type:"string"}}}}}];this.broadcast("showDataForm","Edit Process",a,(async e=>{let t=i.A.pickFromObject(e,["id","summary","description","categories","experimental","deprecated","exception","examples","links"]);("string"===typeof t.description||i.A.isObject(t.schema))&&(t.returns={description:e.returns_description,schema:e.returns_schema});let a=this.$refs.blocks.export(!0),s=Object.assign({},a,t);const r={id:"",summary:"",description:"",categories:[],experimental:!1,deprecated:!1,examples:[],links:[],process_graph:{}};for(let o in r)i.A.equals(r[o],s[o])&&delete s[o];this.commit(s)}))},addParameter(){var e=[this.getNameField(),this.getDescriptionField(),this.getOptionalField(),this.getDefaultField(),this.getExperimentalField(),this.getDeprecatedField(),this.getSchemaField()];this.broadcast("showDataForm","Add Parameter",e,(async e=>{"string"===typeof e.name&&e.name.length>0&&await this.$refs.blocks.addPgParameter(e)}))},editParameter(e,t="Edit Parameter",a=null){var s=[this.getNameField(e.name),this.getDescriptionField(e.description),this.getOptionalField(e.optional),this.getDefaultField(e.default),this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),this.getSchemaField(e.schema)];this.broadcast("showDataForm",t,s,a)},showExpressionModal(){let e=new y.A(this.value,this.processes,this.connection,!0);e.setCallbackParameters(this.$refs.blocks.getPgParameters().map((e=>e.spec)));try{e.parse();let t={process:e},a={save:this.insertNodes};this.broadcast("showModal","ExpressionModal",t,a)}catch(t){i.A.exception(this,t)}},openArgumentEditorForNode(e){let t=i.A.deepClone(this.value),a=t.process_graph[e],s=this.processes.get(a.process_id,a.namespace);Array.isArray(s.parameters)&&s.parameters.length>0&&this.openArgumentEditor(s.parameters.map((e=>new f.ProcessParameter(e))).filter((e=>e.isEditable())),a.arguments,s.id,!0,null,(e=>{Object.assign(a,{arguments:e}),this.commit(t)}))},openArgumentEditor(e,t,a="Edit",s=!0,r=null,i=null,o=null){let n={title:a,parameters:e,data:t,editable:s,selectParameterName:r,parent:o},l={};"function"===typeof i&&(l.save=i),this.broadcast("showModal","ParameterModal",n,l)},confirmClear(){var e=confirm("Do you really want to clear the existing model?");e&&this.clear()},clear(){this.$refs.blocks&&this.$refs.blocks.clear(),this.commit(null)},insertProcess(e,t=null,a=null){try{var s=this.$refs.blocks.getPositionForPageXY(t,a);let r=e.namespace;"backend"!==r&&"user"!==r||(r=null),this.$refs.blocks.addProcess(e.process_id,e.arguments,s,r)}catch(r){i.A.exception(this,r)}},async insertNodes(e,t=!1){return await this.$refs.blocks.import({process_graph:e},{clear:t})}}},b=g;var v=a(81656),w=(0,v.A)(b,l,c,!1,null,null,null);const _=w.exports;var A=a(20600);const x={name:"Editor",components:{VisualEditor:_,TextEditor:A.A,Tabs:o["default"],Tab:n["default"]},props:{id:{type:String,default:()=>`editor_${Date.now()}`},editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},title:{type:String},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},defaultValue:{}},watch:{value(){this.updateTab()}},data(){return{modelValue:null,codeValue:null,error:null}},mounted(){this.updateTab()},methods:{...i.A.mapActions(["loadProcess"]),showModel(){this.error=null,this.modelValue=this.value},showCode(){this.error=null,this.codeValue=this.value,this.$refs.sourceEditor.updateState()},updateTab(){"source"===this.$refs.tabs.getActiveTabId()?this.showCode():this.showModel()},commit(e){this.error=null,this.$emit("input",e)},onError(e){this.error=e},activeEditor(){return"source"===this.$refs.tabs.getActiveTabId()?this.$refs.sourceEditor:this.$refs.graphBuilder},async insertProcess(e){try{await this.loadProcess({id:e.process_id,namespace:e.namespace}),this.activeEditor().insertProcess(e)}catch(t){i.A.exception(this,t)}},canSwitchView(){return!this.editable||null===this.error||(i.A.exception(this,this.error,"Process Invalid Error"),!1)}}},k=x;var C=(0,v.A)(k,s,r,!1,null,null,null);const S=C.exports},16125:(e,t,a)=>{a.d(t,{A:()=>o});a(81454);var s=a(14894),r=a(2566);class i extends s.BaseProcess{constructor(e,t){super(e),this.exporter=t}async execute(e){await this.exporter.generateFunction(e)}}class o extends s.ProcessGraph{constructor(e,t,a){super(r.A.isObject(e)?e:{},t),this.connection=a,this.code=[],this.fnCounter=1,this.allowEmpty(),this.fillUndefinedParameters()}createProcessGraphInstance(e){let t=new o(e,this.processRegistry,this.getJsonSchemaValidator());return this.copyProcessGraphInstanceProperties(t)}copyProcessGraphInstanceProperties(e){return e=super.copyProcessGraphInstanceProperties(e),e.connection=this.connection,e}createProcessInstance(e){return new i(e,this)}isKeyword(e){return this.getKeywords().includes(e.toLowerCase())}getKeywords(){return[]}comment(){}generateImports(){}generateConnection(){}generateAuthentication(){}generateBuilder(){}generateMetadata(){}generateMissingParameter(){}async generateFunction(){}generateFunctionParams(e){return e.map((e=>"undefined"!==typeof e.default?`${e.name} = ${this.e(e.default)}`:e.name))}async generateCallback(){}generateResult(){}makeNull(){return"null"}makeBoolean(e){return e?"true":"false"}makeArray(e){return`[${e.join(", ")}]`}makeObject(e){let t=r.A.mapObject(e,((e,t)=>`${this.makeString(t)}: ${e}`));return`{${t.join(", ")}}`}makeString(e){return JSON.stringify(e)}makeNumber(e){return e}e(e){return null===e?this.makeNull():"boolean"===typeof e?this.makeBoolean(e):"number"===typeof e?this.makeNumber(e):"string"===typeof e?this.makeString(e):Array.isArray(e)?this.makeArray(e.map((e=>this.e(e)))):r.A.isObject(e)?this.makeObject(r.A.mapObjectValues(e,(e=>this.e(e)))):"function"===typeof e?e():this.makeNull()}generateMetadata(){let e=!1;for(let t in this.process){if("process_graph"===t)continue;let a=this.process[t];Array.isArray(a)&&0===a.length||("string"===typeof a&&0===a.length||("boolean"!==typeof a||a)&&(e||(this.newLine(),this.comment("Set the metadata for the process"),e=!0),this.generateMetadataEntry(t,a)))}}async resolveArguments(e,t,a){let s=Array.isArray(e)?[]:{};for(let i in e){let n=e[i];if(!a||!a(i,n))if(r.A.isObject(n)){if(n.from_node){s[i]=()=>this.var(n.from_node,this.varPrefix());continue}if(n.from_parameter){s[i]=()=>this.var(n.from_parameter);continue}if(n instanceof o){let e=await t(i);s[i]=()=>e;continue}s[i]=await this.resolveArguments(n,t,a)}else Array.isArray(n)?s[i]=await this.resolveArguments(n,t,a):s[i]=n}return s}async resolveCallback(e,t){let a;if("load_collection"===e.process_id){let s=e.getArgument("properties");a=s[t]}else a=e.getArgument(t);let s=a.getCallbackParameters();await a.execute(s);let r=this.var(`${t}${this.fnCounter++}`,"fn_"),i=await this.generateCallback(a,s,r);return i||r}async generateArguments(e,t=!1,a=null){let s=await this.resolveArguments(e.arguments,(async t=>await this.resolveCallback(e,t)),a);return t&&(s=this.orderArguments(e,s)),s}orderArguments(e,t){let a=e.getProcessGraph().getProcess(e);if(a&&Array.isArray(a.parameters)){let e=a.parameters.map((e=>"undefined"!==typeof t[e.name]?t[e.name]:e.optional?void 0:null)),s=!1;for(let t=e.length-1;t>=0;t--)"undefined"===typeof e[t]?s?e[t]=null:e.pop():s=!0;return e}}varPrefix(){return this.getParent()?"data":"datacube"}var(e,t="var"){return e=String(e),this.isKeyword(e)?`${e}_`:e.match(/^[a-z_]\w*$/)?e:t+e.replace(/[^\w]+/g,"_")}getTab(){return"\t"}addCode(e,t="",a=0){if("string"!==typeof e)return;let s=this.getTab().repeat(a),r=e.trim().split(/\r\n|\r|\n/g);for(let i of r)this.code.push(`${s}${t}${i}\n`)}newLine(e=1){for(let t=0;t0){this.comment("ToDo: Here you need to set values for the parameters");for(let e of t)this.generateMissingParameter(e);this.newLine()}return await this.execute(),e||(this.newLine(),this.comment("The process can be executed synchronously (see below), as batch job or as web service now")),this.generateResult(this.getResultNode(),e),this.code.join("").trim()}async execute(){return await this.validate(),this.reset(),await this.executeNodes(this.getStartNodes()),this.getResultNode()}isMath(){return"undefined"===typeof this._isMath&&(this._isMath=this.processRegistry.isMath(this)),this._isMath}}},47067:(e,t,a)=>{a.d(t,{A:()=>n});a(98992),a(54520),a(81454);var s=a(2566),r=a(16125),i=a(73902);const o=["abstract","arguments","await","boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","eval","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","let","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with","yield","builder","connection","formula","openeo","result"];class n extends r.A{constructor(e,t,a,s=!1){super(e,t,a),this.generateFormula=s}createProcessGraphInstance(e){let t=new n(e,this.processRegistry,this.getJsonSchemaValidator(),this.generateFormula);return this.copyProcessGraphInstanceProperties(t)}parse(){this.parsed||super.parse()}getKeywords(){return o}comment(e){this.addCode(e,"// ")}generateImports(){this.addCode("import { OpenEO, Formula } from '@openeo/js-client';")}generateConnection(){this.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`)}generateAuthentication(){this.comment("ToDo: Here you need to add your authentication steps")}generateBuilder(){this.addCode("let builder = await connection.buildProcess();")}generateMetadataEntry(e,t){this.addCode(`builder.${e} = ${this.e(t)};`)}async generateFunction(e){let t=e.getParent()?"this":"builder",a=this.var(e.id,this.varPrefix()),r=await this.generateArguments(e,!e.namespace);if(this.comment(e.description),s.A.isObject(r)){let s=e.namespace?`${e.process_id}@${e.namespace}`:e.process_id;this.addCode(`let ${a} = ${t}.process("${s}", ${this.e(r)});`)}else this.addCode(`let ${a} = ${t}.${e.process_id}(${r.map((e=>this.e(e))).join(", ")});`)}generateMissingParameter(e){this.comment(e.description);let t=this.var(e.name,"param"),a="undefined"!==typeof e.default?e.default:null;this.addCode(`let ${t} = ${this.e(a)};`)}async generateCallback(e,t,a){if(this.generateFormula&&e&&e.isMath()){let t=e.toFormulaString(),a=JSON.stringify(t);return`new Formula(${a})`}{let s=this.generateFunctionParams(t);this.newLine(),this.addCode(`let ${a} = function(${s.join(", ")}) {`),this.addCode(await e.toCode(!0),"",1),this.addCode("}")}}generateResult(e,t){if(!e)return;let a=this.var(e.id,this.varPrefix());t?this.addCode(`return ${a};`):this.addCode(`let result = await connection.computeResult(${a});`)}toFormulaString(){return this.isMath()?this.nodeToFormula(this.getResultNode()):""}getArrayElementPlaceholder(e){if("array_element"===e.process_id&&"parameter"===e.getArgumentType("data")){let t=e.getRawArgument("data").from_parameter,a=this.getCallbackParameters().findIndex((e=>e.name===t));if(a>=0)return"$".repeat(a+1)+(e.getArgument("label")||e.getArgument("index"))}return null}nodeToFormula(e,t=null){if("array_element"===e.process_id){let t=this.getArrayElementPlaceholder(e);if(t)return t}let a=i.Formula.reverseOperatorMapping[e.process_id],r=this.processRegistry.get(e.process_id),o="undefined"!==typeof i.Formula.arrayOperatorMapping[e.process_id],n=t=>{if(s.A.isObject(t))if(t.from_node){let s=e.getProcessGraph().getNode(t.from_node);t=s?this.nodeToFormula(s,a):"#"+t.from_node}else{if(!t.from_parameter)throw new Error("Objects not allowed");t=t.from_parameter}return t},l=[],c=Array.isArray(r.parameters)?r.parameters:[];for(let s of c){let t=n(e.getRawArgument(s.name));if(o&&Array.isArray(t)&&"data"===s.name){l=t.map((e=>n(e)));break}if("undefined"!==typeof t)l.push(t);else{if("undefined"===typeof s.default)throw new Error('Argument for parameter "'+s.name+'" missing');l.push(s.default)}}if(o&&(l=l.filter((e=>null!==e))),a){let e=["/","*"],s=["-","+"],r=l.map((e=>e<0?"("+e+")":e)).join(a);return!t||s.includes(t)&&s.includes(a)||"^"===a||s.includes(t)&&e.includes(a)?r:"("+r+")"}return e.process_id+"("+l.join(", ")+")"}}}}]); -//# sourceMappingURL=3298.88b3bce8.js.map \ No newline at end of file +//# sourceMappingURL=3298.57f5c4ef.js.map \ No newline at end of file diff --git a/js/3298.88b3bce8.js.map b/js/3298.57f5c4ef.js.map similarity index 99% rename from js/3298.88b3bce8.js.map rename to js/3298.57f5c4ef.js.map index 18a37c2e..3fa28db0 100644 --- a/js/3298.88b3bce8.js.map +++ b/js/3298.57f5c4ef.js.map @@ -1 +1 @@ -{"version":3,"file":"js/3298.88b3bce8.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","render","_vm","this","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","key","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","computed","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","title","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","size","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","code","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","obj","mapObject","makeString","str","stringify","makeNumber","num","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","i","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/3298.57f5c4ef.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","render","_vm","this","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","key","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","computed","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","title","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","size","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","code","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","obj","mapObject","makeString","str","stringify","makeNumber","num","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","i","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file diff --git a/js/3592.ef09860c.js b/js/3592.6df6431f.js similarity index 98% rename from js/3592.ef09860c.js rename to js/3592.6df6431f.js index 3923718f..4699b9a8 100644 --- a/js/3592.ef09860c.js +++ b/js/3592.6df6431f.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[3592],{51001:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});var o=function(){var e=this,t=e._self._c;return e.content?t("Splitpanes",{staticClass:"default-theme",attrs:{horizontal:""}},[t("Pane",{attrs:{id:"table"}},[e.content?t("div",{staticClass:"tableViewer"},[t("table",[t("thead",[t("tr",e._l(e.header,(function(s,o){return t("th",{key:o},[0!==o?t("input",{directives:[{name:"model",rawName:"v-model",value:e.showCols,expression:"showCols"}],attrs:{type:"checkbox",title:"Add column to diagram"},domProps:{value:o,checked:Array.isArray(e.showCols)?e._i(e.showCols,o)>-1:e.showCols},on:{change:function(t){var s=e.showCols,a=t.target,r=!!a.checked;if(Array.isArray(s)){var n=o,h=e._i(s,n);a.checked?h<0&&(e.showCols=s.concat([n])):h>-1&&(e.showCols=s.slice(0,h).concat(s.slice(h+1)))}else e.showCols=r}}}):e._e(),t("br"),e._v(" "+e._s(s)+" ")])})),0)]),t("tbody",e._l(e.content,(function(s,o){return t("tr",{key:o},e._l(s,(function(s,a){return t(0===a?"th":"td",{key:a,tag:"component",class:typeof s},[0===a?t("input",{directives:[{name:"model",rawName:"v-model",value:e.showRows,expression:"showRows"}],attrs:{type:"checkbox",title:"Add row to diagram"},domProps:{value:o,checked:Array.isArray(e.showRows)?e._i(e.showRows,o)>-1:e.showRows},on:{change:function(t){var s=e.showRows,a=t.target,r=!!a.checked;if(Array.isArray(s)){var n=o,h=e._i(s,n);a.checked?h<0&&(e.showRows=s.concat([n])):h>-1&&(e.showRows=s.slice(0,h).concat(s.slice(h+1)))}else e.showRows=r}}}):e._e(),e._v(" "+e._s(e._f("locale")(s))+" ")])})),1)})),0)])]):t("em",[e._v("No data retrieved.")])]),e.chart?t("Pane",{attrs:{id:"chart",size:50}},[t("ScatterChart",e._b({},"ScatterChart",e.chart,!1))],1):e._e()],1):e._e()},a=[],r=(s(98992),s(23215),s(3949),s(81454),s(44304)),n=s(38363),h=s(40772),i=s(75024);const l={name:"TableViewer",components:{Pane:r.Z,ScatterChart:n.A,Splitpanes:r.S},props:{data:{type:Object,required:!0}},data(){return{header:null,content:null,showRows:[],showCols:[]}},filters:{locale(e){return"number"===typeof e?e.toLocaleString():e}},computed:{chart(){if(0===this.showCols.length&&0===this.showRows.length)return null;if(this.showCols.length>0&&this.showRows.length>0)return{error:"You can only add either rows or columns to the diagram. Please unselect either all rows or all columns."};let e,t;return this.showCols.length>0?(e=this.content.map((e=>e[0])),t=this.showCols.map((e=>({label:this.header[e],data:this.content.map((t=>t[e]))})))):(e=this.header.slice(1),t=this.showRows.map((e=>({label:this.content[e][0],data:this.content[e].slice(1)})))),{labels:e,datasets:t}}},async created(){if(this.data instanceof h.A){let e=this.data.getData();Array.isArray(e)&&e.length>0&&(this.header=e.shift(),this.content=e,this.content.every((e=>!e||"number"===typeof e))||(this.header.unshift("Row"),this.content.forEach(((e,t)=>e.unshift(String(t+1))))))}else if(this.data instanceof i.A){let e=this.data.getData(),t=Object.keys(e),s=Object.values(e),o=new Set;s.forEach((e=>Object.keys(e).forEach((e=>o.add(e))))),this.header=Array.from(o),this.content=s.map((e=>this.header.map((t=>Array.isArray(e[t])&&1===e[t].length?e[t][0]:e[t])))),this.header.unshift(""),this.content.forEach(((e,s)=>e.unshift(t[s])))}else Utils.error(this,"The format is not supported to be shown in a table.")},mounted(){this.$emit("mounted",this)}},c=l;var d=s(81656),w=(0,d.A)(c,o,a,!1,null,null,null);const u=w.exports}}]); -//# sourceMappingURL=3592.ef09860c.js.map \ No newline at end of file +//# sourceMappingURL=3592.6df6431f.js.map \ No newline at end of file diff --git a/js/3592.ef09860c.js.map b/js/3592.6df6431f.js.map similarity index 99% rename from js/3592.ef09860c.js.map rename to js/3592.6df6431f.js.map index e5588eaf..17521d24 100644 --- a/js/3592.ef09860c.js.map +++ b/js/3592.6df6431f.js.map @@ -1 +1 @@ -{"version":3,"file":"js/3592.ef09860c.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/viewer/TableViewer.vue","webpack://@openeo/web-editor/src/components/viewer/TableViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/TableViewer.vue?9583","webpack://@openeo/web-editor/./src/components/viewer/TableViewer.vue?e58d"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.content)?_c('Splitpanes',{staticClass:\"default-theme\",attrs:{\"horizontal\":\"\"}},[_c('Pane',{attrs:{\"id\":\"table\"}},[(_vm.content)?_c('div',{staticClass:\"tableViewer\"},[_c('table',[_c('thead',[_c('tr',_vm._l((_vm.header),function(label,col){return _c('th',{key:col},[(col !== 0)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showCols),expression:\"showCols\"}],attrs:{\"type\":\"checkbox\",\"title\":\"Add column to diagram\"},domProps:{\"value\":col,\"checked\":Array.isArray(_vm.showCols)?_vm._i(_vm.showCols,col)>-1:(_vm.showCols)},on:{\"change\":function($event){var $$a=_vm.showCols,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=col,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showCols=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showCols=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showCols=$$c}}}}):_vm._e(),_c('br'),_vm._v(\" \"+_vm._s(label)+\" \")])}),0)]),_c('tbody',_vm._l((_vm.content),function(cols,row){return _c('tr',{key:row},_vm._l((cols),function(value,col){return _c(col === 0 ? 'th': 'td',{key:col,tag:\"component\",class:(typeof value)},[(col === 0)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showRows),expression:\"showRows\"}],attrs:{\"type\":\"checkbox\",\"title\":\"Add row to diagram\"},domProps:{\"value\":row,\"checked\":Array.isArray(_vm.showRows)?_vm._i(_vm.showRows,row)>-1:(_vm.showRows)},on:{\"change\":function($event){var $$a=_vm.showRows,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=row,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showRows=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showRows=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showRows=$$c}}}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm._f(\"locale\")(value))+\" \")])}),1)}),0)])]):_c('em',[_vm._v(\"No data retrieved.\")])]),(_vm.chart)?_c('Pane',{attrs:{\"id\":\"chart\",\"size\":50}},[_c('ScatterChart',_vm._b({},'ScatterChart',_vm.chart,false))],1):_vm._e()],1):_vm._e()\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!./TableViewer.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!./TableViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TableViewer.vue?vue&type=template&id=4494a226\"\nimport script from \"./TableViewer.vue?vue&type=script&lang=js\"\nexport * from \"./TableViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./TableViewer.vue?vue&type=style&index=0&id=4494a226&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"],"names":["render","_vm","this","_c","_self","content","staticClass","attrs","_l","header","label","col","key","directives","name","rawName","value","showCols","expression","domProps","Array","isArray","_i","on","$event","$$a","$$el","target","$$c","checked","$$v","$$i","concat","slice","_e","_v","_s","cols","row","tag","class","showRows","_f","chart","_b","staticRenderFns","components","Pane","ScatterChart","Splitpanes","props","data","type","Object","required","filters","locale","toLocaleString","computed","length","error","labels","datasets","map","rows","created","CSV","array","getData","shift","every","x","unshift","forEach","arr","i","String","JSON_","keys","values","headers","Set","add","from","Utils","mounted","$emit","component"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/3592.6df6431f.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/viewer/TableViewer.vue","webpack://@openeo/web-editor/src/components/viewer/TableViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/TableViewer.vue?9583","webpack://@openeo/web-editor/./src/components/viewer/TableViewer.vue?e58d"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.content)?_c('Splitpanes',{staticClass:\"default-theme\",attrs:{\"horizontal\":\"\"}},[_c('Pane',{attrs:{\"id\":\"table\"}},[(_vm.content)?_c('div',{staticClass:\"tableViewer\"},[_c('table',[_c('thead',[_c('tr',_vm._l((_vm.header),function(label,col){return _c('th',{key:col},[(col !== 0)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showCols),expression:\"showCols\"}],attrs:{\"type\":\"checkbox\",\"title\":\"Add column to diagram\"},domProps:{\"value\":col,\"checked\":Array.isArray(_vm.showCols)?_vm._i(_vm.showCols,col)>-1:(_vm.showCols)},on:{\"change\":function($event){var $$a=_vm.showCols,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=col,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showCols=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showCols=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showCols=$$c}}}}):_vm._e(),_c('br'),_vm._v(\" \"+_vm._s(label)+\" \")])}),0)]),_c('tbody',_vm._l((_vm.content),function(cols,row){return _c('tr',{key:row},_vm._l((cols),function(value,col){return _c(col === 0 ? 'th': 'td',{key:col,tag:\"component\",class:(typeof value)},[(col === 0)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showRows),expression:\"showRows\"}],attrs:{\"type\":\"checkbox\",\"title\":\"Add row to diagram\"},domProps:{\"value\":row,\"checked\":Array.isArray(_vm.showRows)?_vm._i(_vm.showRows,row)>-1:(_vm.showRows)},on:{\"change\":function($event){var $$a=_vm.showRows,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=row,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showRows=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showRows=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showRows=$$c}}}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm._f(\"locale\")(value))+\" \")])}),1)}),0)])]):_c('em',[_vm._v(\"No data retrieved.\")])]),(_vm.chart)?_c('Pane',{attrs:{\"id\":\"chart\",\"size\":50}},[_c('ScatterChart',_vm._b({},'ScatterChart',_vm.chart,false))],1):_vm._e()],1):_vm._e()\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!./TableViewer.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!./TableViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TableViewer.vue?vue&type=template&id=4494a226\"\nimport script from \"./TableViewer.vue?vue&type=script&lang=js\"\nexport * from \"./TableViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./TableViewer.vue?vue&type=style&index=0&id=4494a226&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"],"names":["render","_vm","this","_c","_self","content","staticClass","attrs","_l","header","label","col","key","directives","name","rawName","value","showCols","expression","domProps","Array","isArray","_i","on","$event","$$a","$$el","target","$$c","checked","$$v","$$i","concat","slice","_e","_v","_s","cols","row","tag","class","showRows","_f","chart","_b","staticRenderFns","components","Pane","ScatterChart","Splitpanes","props","data","type","Object","required","filters","locale","toLocaleString","computed","length","error","labels","datasets","map","rows","created","CSV","array","getData","shift","every","x","unshift","forEach","arr","i","String","JSON_","keys","values","headers","Set","add","from","Utils","mounted","$emit","component"],"sourceRoot":""} \ No newline at end of file diff --git a/js/4111.38310551.js b/js/4111.ce83ebbc.js similarity index 99% rename from js/4111.38310551.js rename to js/4111.ce83ebbc.js index fb1b0771..b4a1cf68 100644 --- a/js/4111.38310551.js +++ b/js/4111.ce83ebbc.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[2722,3298,4111,9409],{35254:(e,t,s)=>{s.d(t,{A:()=>a});const a={components:{FederationNotice:()=>s.e(2604).then(s.bind(s,52604)),FederationMissingNotice:()=>s.e(2869).then(s.bind(s,62869))},props:{federation:{type:Object,default:()=>({})}}}},17834:(e,t,s)=>{s.d(t,{A:()=>i});var a=s(86975);const r={cpu:"CPU usage",memory:"Memory usage",duration:"Wall time",network:"Network Transfer IO",disk:"Storage IO",storage:"Storage space"},i={computed:{hasUsageMetrics(){return a.A.size(this.usage)>0}},filters:{usageLabel(e){return r[e]?r[e]:a.A.prettifyString(e)},usageValue(e){return"number"===typeof e?e.toLocaleString():e}}}},44712:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component collections"},[t("SearchableList",{attrs:{data:e.collections,identifierKey:"id",summaryKey:"title",keywordsKey:"keywords",showKeywords:e.showKeywords,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"content-start",fn:function(s){return[e._t("content-start",null,null,s),e.missing?t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}}):e._e()]}},{key:"after-search-box",fn:function(t){return[e._t("after-search-box",null,null,t)]}},{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Collection",{attrs:{data:s.item,mapOptions:e.mapOptions,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("collection-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("collection-end",null,null,t)]}},{key:"spatial-extents",fn:function(t){return[e._t("collection-spatial-extents",null,null,t)]}},{key:"temporal-extents",fn:function(t){return[e._t("collection-temporal-extents",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"Collections",components:{Collection:()=>i.A.loadAsyncComponent(Promise.all([s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(3249)]).then(s.bind(s,3249))),SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{collections:{type:Array,default:()=>[]},mapOptions:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Collections"},collapsed:{type:Boolean,default:null},loadAdditionalData:{type:Function,default:null},showKeywords:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},90334:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component file-formats"},[t("SearchableList",{attrs:{data:e.fileFormats,summaryKey:"title",keywordsKey:"gis_data_types",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.item.name))]),t("ul",{staticClass:"badges small inline"},[e.showAll&&"input"===s.item.type?t("li",{staticClass:"badge option1"},[e._v("Import")]):e._e(),e.showAll&&"output"===s.item.type?t("li",{staticClass:"badge option2"},[e._v("Export")]):e._e(),Array.isArray(s.item.gis_data_types)?e._l(s.item.gis_data_types,(function(s){return t("li",{key:s,staticClass:"badge gis"},[e._v(e._s(s))])})):e._e()],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("FileFormat",{attrs:{id:s.summary.identifier,format:s.item,type:s.item.type,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("file-format-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("file-format-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"FileFormats",components:{SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),FileFormat:()=>i.A.loadAsyncComponent(s.e(3504).then(s.bind(s,13504)))},mixins:[o.A],props:{formats:{type:Object,default:()=>({})},showInput:{type:Boolean,default:!0},showOutput:{type:Boolean,default:!0},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"File Formats"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},computed:{showAll(){return this.showInput&&this.showOutput},typesToShow(){let e=[];return this.showInput&&e.push("input"),this.showOutput&&e.push("output"),e},fileFormats(){let e=[];for(let s of this.typesToShow)for(var t in this.formats[s]){let a=Object.assign({id:`${t}-${s}`,name:t,type:s},this.formats[s][t]);e.push(a)}return e}},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},48312:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component processes"},[t("SearchableList",{attrs:{data:e.processes,keywordsKey:"categories",showKeywords:e.showCategories,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Process",{attrs:{process:s.item,provideDownload:e.provideDownload,processUrl:e.processUrl,showGraph:e.showGraph,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("process-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("process-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"Processes",components:{Process:()=>i.A.loadAsyncComponent(s.e(6660).then(s.bind(s,34279))),SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{processes:{type:Array,default:()=>[]},provideDownload:{type:Boolean,default:!0},processUrl:String,searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Processes"},collapsed:{type:Boolean,default:null},showCategories:{type:Boolean,default:!1},showGraph:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},loadAdditionalData:{type:Function,default:null},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},9409:(e,t,s)=>{s.r(t),s.d(t,{default:()=>c});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component search-box",class:{compact:e.compact}},[t("span",{staticClass:"icon"},[e._v("🔎")]),t("input",{directives:[{name:"model",rawName:"v-model",value:e.searchTerm,expression:"searchTerm"}],attrs:{type:"search",placeholder:e.placeholder,minlength:e.minLength,title:e.searchHint},domProps:{value:e.searchTerm},on:{input:function(t){t.target.composing||(e.searchTerm=t.target.value)}}})])},r=[];const i={name:"SearchBox",props:{value:{type:String,default:""},placeholder:{type:String,default:"Search"},minLength:{type:Number,default:1},compact:{type:Boolean,default:!1}},data(){return{searchTerm:this.value}},watch:{searchTerm(e,t){e.length1?`Searching requires at least ${this.minLength} characters.`:null}}},o=i;var n=s(81656),l=(0,n.A)(o,a,r,!1,null,null,null);const c=l.exports},91065:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component udf-runtimes"},[t("SearchableList",{attrs:{data:e.runtimes,summaryKey:"title",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.summary.identifier))]),t("ul",{staticClass:"badges small inline"},["docker"===s.item.type||s.item.docker&&s.item.tags?[t("li",{staticClass:"badge docker"},[e._v("Docker")]),e._l(s.item.tags,(function(a){return t("li",{key:a,staticClass:"badge version",class:{default:a===s.item.default}},[e._v(e._s(a))])}))]:e._l(s.item.versions,(function(a,r){return t("li",{key:r,staticClass:"badge version",class:{default:r===s.item.default}},[e._v(e._s(r))])}))],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("UdfRuntime",{attrs:{id:s.summary.identifier,runtime:s.item,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(t){return[e._t("udf-runtime-badges",null,null,t)]}},{key:"before-description",fn:function(t){return[e._t("udf-runtime-before-description",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"UdfRuntimes",components:{SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),UdfRuntime:()=>i.A.loadAsyncComponent(s.e(3271).then(s.bind(s,33271)))},mixins:[o.A],props:{runtimes:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"UDF Runtimes"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},36107:(e,t,s)=>{s.d(t,{A:()=>g});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"discovery-toolbar"},[t("SearchBox",{model:{value:e.searchTerm,callback:function(t){e.searchTerm=t},expression:"searchTerm"}}),t("div",{staticClass:"filters"},[t("span",{staticClass:"label"},[e._v(" Show ")]),t("label",{staticClass:"show-deprecated",attrs:{title:"Show deprecated elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showDeprecated,expression:"showDeprecated"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showDeprecated)?e._i(e.showDeprecated,null)>-1:e.showDeprecated},on:{change:function(t){var s=e.showDeprecated,a=t.target,r=!!a.checked;if(Array.isArray(s)){var i=null,o=e._i(s,i);a.checked?o<0&&(e.showDeprecated=s.concat([i])):o>-1&&(e.showDeprecated=s.slice(0,o).concat(s.slice(o+1)))}else e.showDeprecated=r}}}),e._v(" deprecated ")]),t("label",{staticClass:"show-experimental",attrs:{title:"Show experimental elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showExperimental,expression:"showExperimental"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showExperimental)?e._i(e.showExperimental,null)>-1:e.showExperimental},on:{change:function(t){var s=e.showExperimental,a=t.target,r=!!a.checked;if(Array.isArray(s)){var i=null,o=e._i(s,i);a.checked?o<0&&(e.showExperimental=s.concat([i])):o>-1&&(e.showExperimental=s.slice(0,o).concat(s.slice(o+1)))}else e.showExperimental=r}}}),e._v(" experimental ")])]),t("div",{staticClass:"search-results"},[t("Collections",{staticClass:"category",attrs:{collections:e.collections,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsLoadCollection},on:{dragstart:function(t){return e.onDrag(t,"collection",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showCollectionInfo(s.id)}}},[t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()]),e.hasCollectionPreview(s)?t("button",{staticClass:"discovery-button",attrs:{type:"button",title:"View on map"},on:{click:function(t){return e.showCollectionPreview(s)}}},[t("i",{staticClass:"fas fa-map"})]):e._e()])]}}])}),t("Processes",{staticClass:"category",attrs:{processes:e.allProcesses,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:"true"},on:{dragstart:function(t){return e.onDrag(t,"process",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showProcess(s)}}},["user"===s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-sitemap",attrs:{title:"Custom Process"}}):"backend"!==s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-tag",attrs:{title:`Process from namespace '${s.namespace}'`}}):e._e(),t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}])}),e.hasUdfRuntimes?t("UdfRuntimes",{staticClass:"category",attrs:{runtimes:e.udfRuntimes,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({summary:s,item:a}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsRunUdf},on:{dragstart:function(t){return e.onDrag(t,"udf",{runtime:s.identifier,version:a.default})}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showUdfInfo(s.identifier,a)}}},[t("strong",{attrs:{title:s.identifier}},[e._v(e._s(s.identifier)+" ("+e._s(a.default)+")")]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}],null,!1,92063951)}):e._e(),t("FileFormats",{staticClass:"category",attrs:{formats:e.fileFormats,showInput:!1,heading:"Export File Formats",searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsSaveResult},on:{dragstart:function(t){return e.onDrag(t,"fileformat",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showFileFormatInfo(s)}}},[t("strong",{attrs:{title:s.name}},[e._v(e._s(s.name))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()])])]}}])})],1)],1)},r=[],i=s(61663),o=s(2566),n=s(44712),l=s(90334),c=s(48312),d=s(9409),u=s(91065);const p={name:"DiscoveryToolbar",mixins:[i.A],components:{Collections:n.A,FileFormats:l.A,Processes:c.A,SearchBox:d["default"],UdfRuntimes:u.A},props:{onAddProcess:{type:Function,required:!0},collectionPreview:{type:Boolean,default:!1},persist:{type:Boolean,default:!1}},data(){return{internalSearchTerm:"",collapsed:!0,showDeprecated:this.$config.showDeprecatedByDefault||!1,showExperimental:this.$config.showExperimentalByDefault||!1}},computed:{...o.A.mapState(["collections","udfRuntimes"]),...o.A.mapState("editor",["discoverySearchTerm"]),...o.A.mapGetters(["supports","fileFormats","processes"]),supportsLoadCollection(){return this.processes.has("load_collection")},supportsRunUdf(){return this.processes.has("run_udf")},supportsSaveResult(){return this.processes.has("save_result")},hasUdfRuntimes(){return o.A.size(this.udfRuntimes)},allProcesses(){return this.processes.all()},searchTerm:{get(){return this.persist?this.discoverySearchTerm:this.internalSearchTerm},set(e){this.persist?this.setDiscoverySearchTerm(e):this.internalSearchTerm=e}}},watch:{searchTerm:{immediate:!0,handler(e,t){!e&&t?this.collapsed=!0:e&&!t&&(this.collapsed=!1)}}},methods:{...o.A.mapMutations("editor",["setDiscoverySearchTerm","setModelDnD"]),...o.A.mapActions(["loadProcess"]),onDrag(e,t,s){let a=e=>this.setModelDnD({type:t,data:s,loading:e});"process"===t?(a(!0),this.loadProcess(s).then((()=>a(!1)))):a(!1)},showCollectionInfo(e){this.broadcast("showCollection",e)},hasCollectionPreview(e){return Boolean(this.collectionPreview&&o.A.getPreviewLinkFromSTAC(e))},showCollectionPreview(e){this.broadcast("showCollectionPreview",e)},showProcess(e){this.broadcast("showProcess",e)},showUdfInfo(e,t){this.broadcast("showModal","UdfRuntimeModal",{id:e,data:t,version:t.default})},showFileFormatInfo(e){let t={id:e.name,format:this.fileFormats.output[e.name],type:"output"};this.broadcast("showModal","FileFormatModal",t)}}},h=p;var m=s(81656),f=(0,m.A)(h,a,r,!1,null,"aacdf426",null);const g=f.exports},92385:(e,t,s)=>{s.r(t),s.d(t,{default:()=>S});var a=function(){var e=this,t=e._self._c;return t("Tabs",{ref:"tabs",staticClass:"editor",attrs:{id:"customProcessContent",position:"bottom"}},[t("Tab",{attrs:{id:"visual",name:"Visual Model",icon:"fa-project-diagram",selected:!0,allowShow:e.canSwitchView},on:{show:e.showModel}},[t("VisualEditor",{ref:"graphBuilder",staticClass:"visualEditorTab",attrs:{editable:e.editable,parent:e.parent,parentSchema:e.parentSchema,value:e.modelValue,title:e.title,id:e.id+"_visual",showDiscoveryToolbar:e.showDiscoveryToolbar,showIntro:e.showIntro,defaultValue:e.defaultValue},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1),t("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code",allowShow:e.canSwitchView},on:{show:e.showCode}},[t("TextEditor",{ref:"sourceEditor",staticClass:"textEditorTab",attrs:{editable:e.editable,value:e.codeValue,title:e.title,id:e.id+"_text",language:"processgraph"},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1)],1)},r=[],i=s(2566),o=s(4615),n=s(58379),l=function(){var e=this,t=e._self._c;return t("div",{ref:"visualEditor",staticClass:"visualEditor"},[t("div",{staticClass:"sourceHeader"},[e.title?t("strong",[e._v(e._s(e.title))]):e._e(),t("div",{staticClass:"sourceToolbar"},[e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{title:"Start from scratch - Clears the current script"},on:{click:e.confirmClear}},[t("i",{staticClass:"fas fa-file"})]),e._t("file-toolbar")],2):e._e(),e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{disabled:!e.canUndo,title:"Revert the last change"},on:{click:function(t){return e.$refs.blocks.undo()}}},[t("i",{staticClass:"fas fa-undo-alt"})]),t("BButton",{attrs:{disabled:!e.canRedo,title:"Redo the last reverted change"},on:{click:function(t){return e.$refs.blocks.redo()}}},[t("i",{staticClass:"fas fa-redo-alt"})]),t("BButton",{attrs:{disabled:!e.hasSelection,title:"Delete the selected elements from the process"},on:{click:function(t){return e.$refs.blocks.deleteSelected()}}},[t("i",{staticClass:"fas fa-trash"})])],1):e._e(),e.editable?t("span",{staticClass:"sepr"},[e.parent?e._e():t("BButton",{attrs:{title:"Edit the process metadata"},on:{click:()=>e.editProcess(e.value)}},[t("i",{staticClass:"fas fa-edit"})]),t("BButton",{attrs:{title:"Add a parameter to the process"},on:{click:e.addParameter}},[t("i",{staticClass:"fas fa-parking"})]),e.supportsMath?t("BButton",{class:{highlightFormula:e.isMath},attrs:{title:"Insert or edit a formula as part of the process"},on:{click:e.showExpressionModal}},[t("i",{staticClass:"fas fa-square-root-alt"})]):e._e()],1):e._e(),t("BButton",{class:{compactMode:e.compactMode},attrs:{title:e.compactMode?"Show the process more compact and less detailed":"Shows the process less compact and more detailed"},on:{click:function(t){return e.$refs.blocks.toggleCompact()}}},[t("i",{staticClass:"fas fa-compress-arrows-alt"})]),t("BButton",{attrs:{title:"Scale the view to match the available space"},on:{click:function(t){return e.$refs.blocks.perfectScale()}}},[t("i",{staticClass:"fas fa-arrows-alt"})]),t("FullscreenButton",{attrs:{element:()=>this.$refs.visualEditor},on:{changed:t=>{this.$refs.blocks.perfectScale(),e.isFullScreen=t}}}),e._t("toolbar")],2)]),t("div",{staticClass:"editorSplitter"},[(e.showDiscoveryToolbar||e.isFullScreen)&&e.editable?t("DiscoveryToolbar",{staticClass:"discoveryToolbar",attrs:{onAddProcess:e.insertProcess}}):e._e(),t("div",{staticClass:"graphBuilder",on:{drop:e.onDrop,dragover:e.allowDrop}},[e.showHelpOverlay?t("div",{staticClass:"model-overlay"},[t("h2",[e._v("Welcome!")]),t("p",[e._v(" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. ")]),t("p",[e._v(" Alternatively, you can also import existing processes into the model builder: "),t("ul",[e.canPaste?t("li",[e._v("Paste the JSON from your clipboard by clicking "),t("BButton",{attrs:{title:"Paste a process from your clipboard"},on:{click:e.paste}},[t("i",{staticClass:"fas fa-paste"})]),e._v(" or use "),t("kbd",[e._v("CTRL")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (Windows, Linux) or "),t("kbd",[e._v("⌘")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (MacOS) when the model builder is in focus.")],1):e._e(),t("li",[e._v("Drag and drop a JSON file from your computer")]),t("li",[e._v("Import a JSON file from your computer or another source such as the internet by clicking "),t("BButton",{attrs:{title:"Import a process from an external source"},on:{click:e.importProcess}},[t("i",{staticClass:"fas fa-cloud-download-alt"})])],1)])]),e._m(0),t("p",[e._v("Once you start interacting with this area, this message will disappear.")])]):e._e(),t("ModelBuilder",{ref:"blocks",attrs:{editable:e.editable,id:e.id,processes:e.processes,collections:e.collections,parent:e.parent,parentSchema:e.parentSchema,value:e.value},on:{input:e.commit,error:e.errorHandler,showProcess:(t,s)=>e.broadcast("showProcess",{id:t,namespace:s}),showCollection:t=>e.broadcast("showCollection",t),showParameter:(t,s)=>e.broadcast("showProcessParameter",t,s),editParameter:e.editParameter,editArguments:e.openArgumentEditor,compactMode:e=>this.compactMode=e,selectionChanged:e.selectionChanged,historyChanged:e.historyChanged}})],1)],1)])},c=[function(){var e=this,t=e._self._c;return t("p",[e._v(" You can also import the processes from the Python and R client. You need to export your process to JSON first: "),t("ul",[t("li",[e._v("In Python use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export",target:"_blank"}},[t("code",[e._v("print(result.to_json())")])])]),t("li",[e._v("In R use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-r-client/reference/index.html",target:"_blank"}},[t("code",[e._v('toJSON(as(result, "Process"))')])])])]),e._v(" In both cases, "),t("code",[e._v("result")]),e._v(" is your last return value from a data cube process such as "),t("code",[e._v("save_result")]),e._v(". For more details, please read the corresponding chapter in the "),t("a",{attrs:{href:"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json",target:"_blank"}},[e._v("openEO cookbook")]),e._v(". ")])}],d=(s(98992),s(54520),s(81454),s(4638)),u=s(36107),p=s(61663),h=s(92622),m=s(91144),f=s(31572),g=s(47067);const y={name:"VisualEditor",mixins:[p.A],components:{BButton:m.A,ModelBuilder:d["default"],DiscoveryToolbar:u.A,FullscreenButton:h.A},props:{id:String,editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},title:{type:String},defaultValue:{}},computed:{...i.A.mapState(["connection","collections"]),...i.A.mapGetters(["processes","supportsMath"]),...i.A.mapState("editor",["initialNode"]),...i.A.mapGetters("editor",["getModelNodeFromDnD"]),isMath(){return this.supportsMath&&this.processes.isMath(this.value)}},data(){return{showHelpOverlay:this.showIntro,canUndo:!1,canRedo:!1,canPaste:!1,compactMode:!1,hasSelection:!1,formula:null,isFullScreen:!1}},watch:{value:{immediate:!0,handler(e){if(e&&(this.showHelpOverlay=!1),this.initialNode&&i.A.isObject(e)&&i.A.isObject(e.process_graph))try{let t=this.initialNode;"1"==t&&i.A.size(e.process_graph)&&(t=Object.keys(e.process_graph)[0]),this.openArgumentEditorForNode(t)}catch(t){i.A.exception(this,t)}finally{this.setInitialNode(null)}}}},mounted(){this.canPaste=navigator&&navigator.clipboard&&"function"===typeof navigator.clipboard.readText},methods:{...i.A.mapMutations("editor",["setInitialNode","setModelDnD"]),commit(e){"undefined"!==typeof this.defaultValue&&i.A.isObject(e)&&0===i.A.size(e.process_graph)&&(e=this.defaultValue),this.$emit("input",e)},async paste(){this.canPaste||i.A.error(this,"error","Pasting is not supported by your browser.");try{const e=await navigator.clipboard.readText();let t=JSON.parse(e);await this.$refs.blocks.import(t)}catch(e){i.A.exception(this,e,"Paste Error")}},importProcess(){this.broadcast("importProcess")},errorHandler(e,t=null){i.A.exception(this,e,t)},selectionChanged(e,t){this.hasSelection=Boolean(e.filter((e=>e.$el.allowsDelete)).length||t.length)},historyChanged(e,t){this.canUndo=!!e[t-1],this.canRedo=!!e[t+1]},allowDrop(e){this.showHelpOverlay=!1,e.preventDefault()},async onDrop(e){const t=await this.getModelNodeFromDnD();if(t)return this.insertProcess(t,e.pageX,e.pageY),this.setModelDnD(),e.preventDefault();let s=e.dataTransfer.files;if(1===s.length){let t=e.dataTransfer.files[0];if("application/json"===t.type){var a=new FileReader;return a.onload=async e=>{try{let t=JSON.parse(e.target.result);await this.$refs.blocks.import(t)}catch(t){i.A.exception(this,t,"Parsing JSON file failed")}},a.onerror=e=>i.A.exception(this,e,"Reading JSON file failed"),a.readAsText(t,"UTF-8"),e.preventDefault()}}},getNameField(e=void 0,t="name"){return{value:e,name:t,description:"A unique identifier. Must contain only letters (`a`-`z`), digits (`0`-`9`) and underscores (`_`). `snake_case` is recommended.",label:"Name",schema:{type:"string",pattern:"^\\w+$"},default:null}},getDescriptionField(e=void 0,t=!1,s="description",a="Description"){return{value:e,name:s,description:"Provides a detailed description. CommonMark (Markdown) syntax can be used for rich text formatting.",label:a,optional:t,schema:{type:"string",subtype:"commonmark"}}},getOptionalField(e=void 0){return{value:e,name:"optional",label:"Optional",description:"Parameters by default are required. CHeck this option to make the parameter optional. For optional parameters a default value should be specified.",optional:!0,schema:{type:"boolean"},default:!1}},getDefaultField(e=void 0){return{value:e,name:"default",label:"Default Value",description:"This value is used whenever the user of this process did not specify a value for this parameter.",toggledBy:"optional",optional:!0,schema:{}}},getExperimentalField(e=void 0){return{value:e,name:"experimental",label:"Experimental",description:"Declares that this is experimental, which means that it is unstable and likely to change.",optional:!0,schema:{type:"boolean"},default:!1}},getDeprecatedField(e=void 0){return{value:e,name:"deprecated",label:"Deprecated",description:"Declares that this is deprecated with the potential to be removed in any of the next versions. It should be transitioned out of usage.",optional:!0,schema:{type:"boolean"},default:!1}},getSchemaField(e=void 0,t="schema",s="Data Types"){let a=e?"json-schema":"openeo-datatype";return{value:e,name:t,label:s,description:"Allowed data type(s) as JSON Schema.",schema:[{title:"Single data type",type:"object",subtype:a},{title:"Multiple data types",type:"array",minItems:2,items:{type:"object",subtype:a}}]}},editProcess(e){e=i.A.isObject(e)?e:{};let t=i.A.isObject(e.returns)?e.returns:{};var s=[this.getNameField(e.id,"id"),{value:e.summary,name:"summary",description:"A very short description of the process with usually less than 60 characters.",label:"Summary",optional:!0,schema:{type:"string"}},this.getDescriptionField(e.description,!0),{value:e.categories,name:"categories",label:"Categories",optional:!0,schema:{type:"array",items:{type:"string"}}},this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),{label:"Parameters",description:'The parameters can be edited directly in the "Visual Model" interface.',info:!0},this.getDescriptionField(t.description,!0,"returns_description","Return Value > Description"),this.getSchemaField(t.schema,"returns_schema","Return Value > Data Type"),{value:e.exceptions,name:"exceptions",description:"Declares exceptions (errors) that might occur during execution of this process. This list is just for informative purposes.\n\nThe keys of the object are the error codes, which should only consist of alphanumerical characters. `PascalCase` is recommended.",label:"Errors",optional:!0,schema:{type:"object",additionalProperties:{type:"object",required:["message"],properties:{message:{title:"Error Message",type:"string"},description:{title:"Description",type:"string",subtype:"commonmark"},http:{title:"HTTP Status Code",type:"integer",enum:[400,500,501]}}}}},{value:e.examples,name:"examples",label:"Examples",description:"Example calls for this process with specific values for the parameters (arguments) and the result (return value).",optional:!0,schema:{type:"array",items:{type:"object",required:["arguments"],properties:{title:{title:"Title",type:"string"},title:{title:"Description",type:"string",subtype:"commonmark"},arguments:{title:"Arguments",type:"object",default:{}},returns:{title:"Return Value"}}}}},{value:e.links,name:"links",label:"Links",description:"Links related to this process, e.g. additional documentation.",optional:!0,schema:{type:"array",items:{type:"object",required:["href","rel"],properties:{href:{title:"URL",type:"string"},rel:{title:"Relation",description:"For examples see [IANA relation types](https://www.iana.org/assignments/link-relations/link-relations.xhtml)",type:"string",default:"about"},title:{title:"Title",type:"string"},type:{title:"Media Type",description:"For examples see [IANA media types](https://www.iana.org/assignments/media-types/media-types.xhtml)",type:"string"}}}}}];this.broadcast("showDataForm","Edit Process",s,(async e=>{let t=i.A.pickFromObject(e,["id","summary","description","categories","experimental","deprecated","exception","examples","links"]);("string"===typeof t.description||i.A.isObject(t.schema))&&(t.returns={description:e.returns_description,schema:e.returns_schema});let s=this.$refs.blocks.export(!0),a=Object.assign({},s,t);const r={id:"",summary:"",description:"",categories:[],experimental:!1,deprecated:!1,examples:[],links:[],process_graph:{}};for(let o in r)i.A.equals(r[o],a[o])&&delete a[o];this.commit(a)}))},addParameter(){var e=[this.getNameField(),this.getDescriptionField(),this.getOptionalField(),this.getDefaultField(),this.getExperimentalField(),this.getDeprecatedField(),this.getSchemaField()];this.broadcast("showDataForm","Add Parameter",e,(async e=>{"string"===typeof e.name&&e.name.length>0&&await this.$refs.blocks.addPgParameter(e)}))},editParameter(e,t="Edit Parameter",s=null){var a=[this.getNameField(e.name),this.getDescriptionField(e.description),this.getOptionalField(e.optional),this.getDefaultField(e.default),this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),this.getSchemaField(e.schema)];this.broadcast("showDataForm",t,a,s)},showExpressionModal(){let e=new g.A(this.value,this.processes,this.connection,!0);e.setCallbackParameters(this.$refs.blocks.getPgParameters().map((e=>e.spec)));try{e.parse();let t={process:e},s={save:this.insertNodes};this.broadcast("showModal","ExpressionModal",t,s)}catch(t){i.A.exception(this,t)}},openArgumentEditorForNode(e){let t=i.A.deepClone(this.value),s=t.process_graph[e],a=this.processes.get(s.process_id,s.namespace);Array.isArray(a.parameters)&&a.parameters.length>0&&this.openArgumentEditor(a.parameters.map((e=>new f.ProcessParameter(e))).filter((e=>e.isEditable())),s.arguments,a.id,!0,null,(e=>{Object.assign(s,{arguments:e}),this.commit(t)}))},openArgumentEditor(e,t,s="Edit",a=!0,r=null,i=null,o=null){let n={title:s,parameters:e,data:t,editable:a,selectParameterName:r,parent:o},l={};"function"===typeof i&&(l.save=i),this.broadcast("showModal","ParameterModal",n,l)},confirmClear(){var e=confirm("Do you really want to clear the existing model?");e&&this.clear()},clear(){this.$refs.blocks&&this.$refs.blocks.clear(),this.commit(null)},insertProcess(e,t=null,s=null){try{var a=this.$refs.blocks.getPositionForPageXY(t,s);let r=e.namespace;"backend"!==r&&"user"!==r||(r=null),this.$refs.blocks.addProcess(e.process_id,e.arguments,a,r)}catch(r){i.A.exception(this,r)}},async insertNodes(e,t=!1){return await this.$refs.blocks.import({process_graph:e},{clear:t})}}},b=y;var v=s(81656),_=(0,v.A)(b,l,c,!1,null,null,null);const w=_.exports;var C=s(20600);const A={name:"Editor",components:{VisualEditor:w,TextEditor:C.A,Tabs:o["default"],Tab:n["default"]},props:{id:{type:String,default:()=>`editor_${Date.now()}`},editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},title:{type:String},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},defaultValue:{}},watch:{value(){this.updateTab()}},data(){return{modelValue:null,codeValue:null,error:null}},mounted(){this.updateTab()},methods:{...i.A.mapActions(["loadProcess"]),showModel(){this.error=null,this.modelValue=this.value},showCode(){this.error=null,this.codeValue=this.value,this.$refs.sourceEditor.updateState()},updateTab(){"source"===this.$refs.tabs.getActiveTabId()?this.showCode():this.showModel()},commit(e){this.error=null,this.$emit("input",e)},onError(e){this.error=e},activeEditor(){return"source"===this.$refs.tabs.getActiveTabId()?this.$refs.sourceEditor:this.$refs.graphBuilder},async insertProcess(e){try{await this.loadProcess({id:e.process_id,namespace:e.namespace}),this.activeEditor().insertProcess(e)}catch(t){i.A.exception(this,t)}},canSwitchView(){return!this.editable||null===this.error||(i.A.exception(this,this.error,"Process Invalid Error"),!1)}}},x=A;var k=(0,v.A)(x,a,r,!1,null,null,null);const S=k.exports},78064:(e,t,s)=>{s.r(t),s.d(t,{default:()=>w});var a=function(){var e=this,t=e._self._c;return t("Modal",{attrs:{width:"80%",title:e.title},on:{closed:function(t){return e.$emit("closed")}}},[t("Job",{attrs:{job:e.job,currency:e.currency},scopedSlots:e._u([{key:"process-graph",fn:function(){return[t("Editor",{staticClass:"infoViewer",attrs:{value:e.job.process,editable:!1,id:"jobPgViewer"}})]},proxy:!0}])}),e.resultType?t("section",{staticClass:"vue-component result"},[t("h3",[e._v("Results")]),t("p",[t("em",[e._v("Below the metadata for the results of the batch job are shown.")])]),"Collection"===e.resultType?t("Collection",{attrs:{data:e.result},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"spatial-extents",fn:function(e){return[t("MapExtentViewer",{staticClass:"jobMap",attrs:{footprint:e.extents}})]}}],null,!1,1357273968)}):t("Item",{attrs:{data:e.result},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"location",fn:function(e){return[t("MapExtentViewer",{staticClass:"jobMap",attrs:{footprint:e.geometry||e.bbox}})]}}],null,!1,2460418625)})],1):e._e()],1)},r=[],i=s(2566),o=s(23827),n=function(){var e=this,t=e._self._c;return t("article",{staticClass:"vue-component job"},[e._t("title",(function(){return[t("a",{staticClass:"anchor",attrs:{name:e.job.id}}),t("h2",[e._v(e._s(e.job.title||e.job.id))])]}),null,e.$props),t("section",{staticClass:"progress"},[t("div",{staticClass:"tabular"},[t("label",[e._v("ID:")]),t("code",{staticClass:"value"},[e._v(e._s(e.job.id))])]),t("div",{staticClass:"tabular"},[t("label",[e._v("Submitted:")]),t("span",{staticClass:"value",domProps:{innerHTML:e._s(e.created)}})]),e.updated?t("div",{staticClass:"tabular"},[t("label",[e._v("Updated:")]),t("span",{staticClass:"value",domProps:{innerHTML:e._s(e.updated)}})]):e._e(),e.job.status?t("div",{staticClass:"tabular"},[t("label",[e._v("Status:")]),t("span",{staticClass:"value status",attrs:{"data-value":e.job.status}},[e._v(e._s(e.job.status))])]):e._e(),"number"===typeof e.job.progress?t("div",{staticClass:"tabular"},[t("label",[e._v("Progress:")]),t("div",{staticClass:"value"},[t("div",{staticClass:"progressBar",class:{error:!!e.job.error}},[t("div",{staticClass:"completed",style:"width: "+e.progress},[e.job.progress>50?t("span",{staticClass:"number"},[e._v(e._s(e.progress))]):e._e(),e._v("  ")]),e.job.progress<=50?t("span",{staticClass:"number"},[e._v(e._s(e.progress))]):e._e()])])]):e._e(),e.job.log_level?t("div",{staticClass:"tabular"},[t("label",[e._v("Minimum severity for logs:")]),t("span",{staticClass:"value level",attrs:{"data-value":e.job.log_level}},[e._v(e._s(e.job.log_level))])]):e._e()]),e._t("before-description",null,null,e.$props),e.job.description?t("summary",{staticClass:"description"},[t("h3",[e._v("Description")]),t("Description",{attrs:{description:e.job.description}}),e.job["federation:missing"]?t("FederationMissingNotice",{attrs:{missing:e.job["federation:missing"],federation:e.federation}}):e._e()],1):e._e(),e.hasLinks?t("section",{staticClass:"links"},[t("LinkList",{attrs:{links:e.job.links,heading:"Additional Resources",headingTag:"h3"}})],1):e._e(),e.job.plan||e.costs||e.budget?t("section",{staticClass:"billing"},[t("h3",[e._v("Billing")]),e.job.plan?t("div",{staticClass:"tabular"},[t("label",[e._v("Billing plan:")]),t("span",{staticClass:"value"},[e._v(e._s(e.job.plan))])]):e._e(),e.costs?t("div",{staticClass:"tabular"},[t("label",[e._v("Incurred Costs:")]),t("span",{staticClass:"value"},[e._v(e._s(e.costs))])]):e._e(),e.budget?t("div",{staticClass:"tabular"},[t("label",{attrs:{title:"The allowed maximum costs, specified by the user."}},[e._v("Budget limit:")]),t("span",{staticClass:"value"},[e._v(e._s(e.budget))])]):e._e()]):e._e(),e.hasUsageMetrics?t("section",{staticClass:"usage"},[t("h3",[e._v("Usage Metrics")]),e._l(e.usage,(function(s,a){return t("div",{key:a,staticClass:"tabular"},[t("label",{staticClass:"metric"},[e._v(e._s(e._f("usageLabel")(a)))]),t("span",{staticClass:"value"},[e._v(e._s(e._f("usageValue")(s.value))+" "),t("span",{staticClass:"unit"},[e._v(e._s(s.unit))])])])}))],2):e._e(),t("section",{staticClass:"process"},[t("h3",[e._v("Process")]),t("Process",{staticClass:"inline",attrs:{process:e.job.process,provideDownload:!1,showGraph:!0},scopedSlots:e._u([{key:"process-graph",fn:function(t){return[e._t("process-graph",null,{vBind:t})]}}],null,!0)})],1),e._t("end",null,null,e.$props)],2)},l=[],c=s(86975),d=s(35254),u=s(17834);const p={name:"Job",mixins:[d.A,u.A],components:{Description:()=>Promise.all([s.e(7261),s.e(1194)]).then(s.bind(s,27261)),LinkList:()=>s.e(2810).then(s.bind(s,52810)),Process:()=>s.e(6660).then(s.bind(s,34279))},props:{job:{type:Object,default:()=>({})},currency:{type:String,default:null},...d.A.props},computed:{budget(){return c.A.formatBudget(this.job.budget,this.currency,"No limit specified")},costs(){return c.A.formatCurrency(this.job.costs,this.currency)},created(){return c.A.formatTimestamp(this.job.created,"n/a")},updated(){return c.A.formatTimestamp(this.job.updated,"")},progress(){return"number"===typeof this.job.progress?Math.round(10*this.job.progress)/10+"%":"0%"},usage(){return this.job.usage},hasLinks(){return c.A.size(this.job.links)>0}},beforeCreate(){c.A.enableHtmlProps(this)}},h=p;var m=s(81656),f=(0,m.A)(h,n,l,!1,null,null,null);const g=f.exports;var y=s(92385);const b={name:"JobInfoModal",components:{Collection:()=>Promise.all([s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(3249)]).then(s.bind(s,3249)),Editor:y["default"],Item:()=>s.e(8645).then(s.bind(s,38645)),Job:g,MapExtentViewer:()=>Promise.all([s.e(1160),s.e(5983),s.e(1323),s.e(5624),s.e(1189),s.e(6617),s.e(5640),s.e(2559),s.e(2365),s.e(3800),s.e(3291),s.e(3876),s.e(9882),s.e(6709)]).then(s.bind(s,85856)),Modal:o.A},computed:{...i.A.mapGetters(["currency"]),resultType(){return i.A.isObject(this.result)?"Feature"===this.result.type?"Item":"Collection":null},title(){return"Batch Job: "+(this.job.title||"#"+this.job.id)}},props:{job:{type:Object},result:{type:Object,default:null}}},v=b;var _=(0,m.A)(v,a,r,!1,null,null,null);const w=_.exports},23827:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"modal",style:{"z-index":e.zIndex},on:{mousedown:e.backgroundClose}},[t(e.containerTag,{ref:"container",tag:"component",staticClass:"modal-container",class:{smooth:e.smooth},style:e.style,on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.submitFunction.apply(null,arguments)}}},[t("header",{staticClass:"modal-header",on:{mousedown:e.startMove}},[e._t("header",(function(){return[t("h2",[e._v(e._s(e.title))]),t("span",{staticClass:"close",on:{click:e.close}},[t("i",{staticClass:"fa fa-times",attrs:{"aria-hidden":"true"}})])]}))],2),t("main",{staticClass:"modal-content"},[e._t("default")],2),t("footer",{staticClass:"modal-footer"},[e._t("footer",(function(){return[e.submitFunction?t("button",{attrs:{type:"submit"}},[e._v(e._s(e.submitButtonText))]):e._e()]}))],2)])],1)},r=[],i=s(61663),o=s(2566);const n={name:"Modal",mixins:[i.A],props:{title:{type:String,default:null},minWidth:{type:String,default:null},width:{type:String,default:"auto"},height:{type:String,default:"auto"},show:{type:Boolean,default:!0},submitFunction:{type:Function,default:null},submitButtonText:{type:String,default:"Submit"}},data(){return{zIndex:1e3,position:null,dragPosition:null,smooth:!1}},computed:{...o.A.mapState("editor",["hightestModalZIndex"]),style(){let e={width:this.width};return this.minWidth&&(e["min-width"]=this.minWidth),this.height&&(e["height"]=this.height),Array.isArray(this.position)&&(e.position="absolute",e.left=this.position[0]+"px",e.top=this.position[1]+"px"),e},containerTag(){return this.submitFunction?"form":"div"}},watch:{show:{immediate:!0,handler(e){e?this.open():this.close()}},width(){this.smoothResize()},minWidth(){this.smoothResize()}},methods:{...o.A.mapMutations("editor",["openModal","closeModal"]),smoothResize(){this.smooth=!0,setTimeout((()=>this.smooth=!1),600)},submit(e){this.submitFunction(e)},open(){this.openModal(),this.zIndex=this.hightestModalZIndex,window.addEventListener("keydown",this.escCloseListener),this.$emit("shown")},close(){window.removeEventListener("keydown",this.escCloseListener),this.closeModal(),this.$emit("closed")},startMove(e){"H2"!==e.target.tagName&&(this.dragPosition=[e.clientX,e.clientY],document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.stopMove),e.preventDefault(),e.stopPropagation())},stopMove(){document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.stopMove)},move(e){e.preventDefault(),this.position=[this.$refs.container.offsetLeft-(this.dragPosition[0]-e.clientX),this.$refs.container.offsetTop-(this.dragPosition[1]-e.clientY)],this.dragPosition=[e.clientX,e.clientY]},escCloseListener(e){if("Escape"==e.key)return this.close(),e.preventDefault(),e.stopPropagation(),!1},backgroundClose(e){e.target===this.$el&&this.close()}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},16125:(e,t,s)=>{s.d(t,{A:()=>o});s(81454);var a=s(14894),r=s(2566);class i extends a.BaseProcess{constructor(e,t){super(e),this.exporter=t}async execute(e){await this.exporter.generateFunction(e)}}class o extends a.ProcessGraph{constructor(e,t,s){super(r.A.isObject(e)?e:{},t),this.connection=s,this.code=[],this.fnCounter=1,this.allowEmpty(),this.fillUndefinedParameters()}createProcessGraphInstance(e){let t=new o(e,this.processRegistry,this.getJsonSchemaValidator());return this.copyProcessGraphInstanceProperties(t)}copyProcessGraphInstanceProperties(e){return e=super.copyProcessGraphInstanceProperties(e),e.connection=this.connection,e}createProcessInstance(e){return new i(e,this)}isKeyword(e){return this.getKeywords().includes(e.toLowerCase())}getKeywords(){return[]}comment(){}generateImports(){}generateConnection(){}generateAuthentication(){}generateBuilder(){}generateMetadata(){}generateMissingParameter(){}async generateFunction(){}generateFunctionParams(e){return e.map((e=>"undefined"!==typeof e.default?`${e.name} = ${this.e(e.default)}`:e.name))}async generateCallback(){}generateResult(){}makeNull(){return"null"}makeBoolean(e){return e?"true":"false"}makeArray(e){return`[${e.join(", ")}]`}makeObject(e){let t=r.A.mapObject(e,((e,t)=>`${this.makeString(t)}: ${e}`));return`{${t.join(", ")}}`}makeString(e){return JSON.stringify(e)}makeNumber(e){return e}e(e){return null===e?this.makeNull():"boolean"===typeof e?this.makeBoolean(e):"number"===typeof e?this.makeNumber(e):"string"===typeof e?this.makeString(e):Array.isArray(e)?this.makeArray(e.map((e=>this.e(e)))):r.A.isObject(e)?this.makeObject(r.A.mapObjectValues(e,(e=>this.e(e)))):"function"===typeof e?e():this.makeNull()}generateMetadata(){let e=!1;for(let t in this.process){if("process_graph"===t)continue;let s=this.process[t];Array.isArray(s)&&0===s.length||("string"===typeof s&&0===s.length||("boolean"!==typeof s||s)&&(e||(this.newLine(),this.comment("Set the metadata for the process"),e=!0),this.generateMetadataEntry(t,s)))}}async resolveArguments(e,t,s){let a=Array.isArray(e)?[]:{};for(let i in e){let n=e[i];if(!s||!s(i,n))if(r.A.isObject(n)){if(n.from_node){a[i]=()=>this.var(n.from_node,this.varPrefix());continue}if(n.from_parameter){a[i]=()=>this.var(n.from_parameter);continue}if(n instanceof o){let e=await t(i);a[i]=()=>e;continue}a[i]=await this.resolveArguments(n,t,s)}else Array.isArray(n)?a[i]=await this.resolveArguments(n,t,s):a[i]=n}return a}async resolveCallback(e,t){let s;if("load_collection"===e.process_id){let a=e.getArgument("properties");s=a[t]}else s=e.getArgument(t);let a=s.getCallbackParameters();await s.execute(a);let r=this.var(`${t}${this.fnCounter++}`,"fn_"),i=await this.generateCallback(s,a,r);return i||r}async generateArguments(e,t=!1,s=null){let a=await this.resolveArguments(e.arguments,(async t=>await this.resolveCallback(e,t)),s);return t&&(a=this.orderArguments(e,a)),a}orderArguments(e,t){let s=e.getProcessGraph().getProcess(e);if(s&&Array.isArray(s.parameters)){let e=s.parameters.map((e=>"undefined"!==typeof t[e.name]?t[e.name]:e.optional?void 0:null)),a=!1;for(let t=e.length-1;t>=0;t--)"undefined"===typeof e[t]?a?e[t]=null:e.pop():a=!0;return e}}varPrefix(){return this.getParent()?"data":"datacube"}var(e,t="var"){return e=String(e),this.isKeyword(e)?`${e}_`:e.match(/^[a-z_]\w*$/)?e:t+e.replace(/[^\w]+/g,"_")}getTab(){return"\t"}addCode(e,t="",s=0){if("string"!==typeof e)return;let a=this.getTab().repeat(s),r=e.trim().split(/\r\n|\r|\n/g);for(let i of r)this.code.push(`${a}${t}${i}\n`)}newLine(e=1){for(let t=0;t0){this.comment("ToDo: Here you need to set values for the parameters");for(let e of t)this.generateMissingParameter(e);this.newLine()}return await this.execute(),e||(this.newLine(),this.comment("The process can be executed synchronously (see below), as batch job or as web service now")),this.generateResult(this.getResultNode(),e),this.code.join("").trim()}async execute(){return await this.validate(),this.reset(),await this.executeNodes(this.getStartNodes()),this.getResultNode()}isMath(){return"undefined"===typeof this._isMath&&(this._isMath=this.processRegistry.isMath(this)),this._isMath}}},47067:(e,t,s)=>{s.d(t,{A:()=>n});s(98992),s(54520),s(81454);var a=s(2566),r=s(16125),i=s(73902);const o=["abstract","arguments","await","boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","eval","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","let","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with","yield","builder","connection","formula","openeo","result"];class n extends r.A{constructor(e,t,s,a=!1){super(e,t,s),this.generateFormula=a}createProcessGraphInstance(e){let t=new n(e,this.processRegistry,this.getJsonSchemaValidator(),this.generateFormula);return this.copyProcessGraphInstanceProperties(t)}parse(){this.parsed||super.parse()}getKeywords(){return o}comment(e){this.addCode(e,"// ")}generateImports(){this.addCode("import { OpenEO, Formula } from '@openeo/js-client';")}generateConnection(){this.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`)}generateAuthentication(){this.comment("ToDo: Here you need to add your authentication steps")}generateBuilder(){this.addCode("let builder = await connection.buildProcess();")}generateMetadataEntry(e,t){this.addCode(`builder.${e} = ${this.e(t)};`)}async generateFunction(e){let t=e.getParent()?"this":"builder",s=this.var(e.id,this.varPrefix()),r=await this.generateArguments(e,!e.namespace);if(this.comment(e.description),a.A.isObject(r)){let a=e.namespace?`${e.process_id}@${e.namespace}`:e.process_id;this.addCode(`let ${s} = ${t}.process("${a}", ${this.e(r)});`)}else this.addCode(`let ${s} = ${t}.${e.process_id}(${r.map((e=>this.e(e))).join(", ")});`)}generateMissingParameter(e){this.comment(e.description);let t=this.var(e.name,"param"),s="undefined"!==typeof e.default?e.default:null;this.addCode(`let ${t} = ${this.e(s)};`)}async generateCallback(e,t,s){if(this.generateFormula&&e&&e.isMath()){let t=e.toFormulaString(),s=JSON.stringify(t);return`new Formula(${s})`}{let a=this.generateFunctionParams(t);this.newLine(),this.addCode(`let ${s} = function(${a.join(", ")}) {`),this.addCode(await e.toCode(!0),"",1),this.addCode("}")}}generateResult(e,t){if(!e)return;let s=this.var(e.id,this.varPrefix());t?this.addCode(`return ${s};`):this.addCode(`let result = await connection.computeResult(${s});`)}toFormulaString(){return this.isMath()?this.nodeToFormula(this.getResultNode()):""}getArrayElementPlaceholder(e){if("array_element"===e.process_id&&"parameter"===e.getArgumentType("data")){let t=e.getRawArgument("data").from_parameter,s=this.getCallbackParameters().findIndex((e=>e.name===t));if(s>=0)return"$".repeat(s+1)+(e.getArgument("label")||e.getArgument("index"))}return null}nodeToFormula(e,t=null){if("array_element"===e.process_id){let t=this.getArrayElementPlaceholder(e);if(t)return t}let s=i.Formula.reverseOperatorMapping[e.process_id],r=this.processRegistry.get(e.process_id),o="undefined"!==typeof i.Formula.arrayOperatorMapping[e.process_id],n=t=>{if(a.A.isObject(t))if(t.from_node){let a=e.getProcessGraph().getNode(t.from_node);t=a?this.nodeToFormula(a,s):"#"+t.from_node}else{if(!t.from_parameter)throw new Error("Objects not allowed");t=t.from_parameter}return t},l=[],c=Array.isArray(r.parameters)?r.parameters:[];for(let a of c){let t=n(e.getRawArgument(a.name));if(o&&Array.isArray(t)&&"data"===a.name){l=t.map((e=>n(e)));break}if("undefined"!==typeof t)l.push(t);else{if("undefined"===typeof a.default)throw new Error('Argument for parameter "'+a.name+'" missing');l.push(a.default)}}if(o&&(l=l.filter((e=>null!==e))),s){let e=["/","*"],a=["-","+"],r=l.map((e=>e<0?"("+e+")":e)).join(s);return!t||a.includes(t)&&a.includes(s)||"^"===s||a.includes(t)&&e.includes(s)?r:"("+r+")"}return e.process_id+"("+l.join(", ")+")"}}}}]); -//# sourceMappingURL=4111.38310551.js.map \ No newline at end of file +//# sourceMappingURL=4111.ce83ebbc.js.map \ No newline at end of file diff --git a/js/4111.38310551.js.map b/js/4111.ce83ebbc.js.map similarity index 99% rename from js/4111.38310551.js.map rename to js/4111.ce83ebbc.js.map index bef17f65..77e055cb 100644 --- a/js/4111.38310551.js.map +++ b/js/4111.ce83ebbc.js.map @@ -1 +1 @@ -{"version":3,"file":"js/4111.38310551.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/UsageMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/modals/JobInfoModal.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Job.vue?e994","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Job.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Job.vue?3a6c","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Job.vue","webpack://@openeo/web-editor/src/components/modals/JobInfoModal.vue","webpack://@openeo/web-editor/./src/components/modals/JobInfoModal.vue?e17e","webpack://@openeo/web-editor/./src/components/modals/JobInfoModal.vue?a253","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","import Utils from '../../utils';\n\nconst usageLabels = {\n\tcpu: \"CPU usage\",\n\tmemory: \"Memory usage\",\n\tduration: \"Wall time\",\n\tnetwork: \"Network Transfer IO\",\n\tdisk: \"Storage IO\",\n\tstorage: \"Storage space\"\n};\n\nexport default {\n\tcomputed: {\n\t\thasUsageMetrics() {\n\t\t\treturn Utils.size(this.usage) > 0;\n\t\t}\n\t},\n\tfilters: {\n\t\tusageLabel(key) {\n\t\t\tif (usageLabels[key]) {\n\t\t\t\treturn usageLabels[key];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Utils.prettifyString(key);\n\t\t\t}\n\t\t},\n\t\tusageValue(num) {\n\t\t\tif (typeof num === 'number') {\n\t\t\t\treturn num.toLocaleString();\n\t\t\t}\n\t\t\treturn num;\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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('Modal',{attrs:{\"width\":\"80%\",\"title\":_vm.title},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('Job',{attrs:{\"job\":_vm.job,\"currency\":_vm.currency},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(){return [_c('Editor',{staticClass:\"infoViewer\",attrs:{\"value\":_vm.job.process,\"editable\":false,\"id\":\"jobPgViewer\"}})]},proxy:true}])}),(_vm.resultType)?_c('section',{staticClass:\"vue-component result\"},[_c('h3',[_vm._v(\"Results\")]),_c('p',[_c('em',[_vm._v(\"Below the metadata for the results of the batch job are shown.\")])]),(_vm.resultType === 'Collection')?_c('Collection',{attrs:{\"data\":_vm.result},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"spatial-extents\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"jobMap\",attrs:{\"footprint\":p.extents}})]}}],null,false,1357273968)}):_c('Item',{attrs:{\"data\":_vm.result},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"location\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"jobMap\",attrs:{\"footprint\":p.geometry || p.bbox}})]}}],null,false,2460418625)})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('article',{staticClass:\"vue-component job\"},[_vm._t(\"title\",function(){return [_c('a',{staticClass:\"anchor\",attrs:{\"name\":_vm.job.id}}),_c('h2',[_vm._v(_vm._s(_vm.job.title || _vm.job.id))])]},null,_vm.$props),_c('section',{staticClass:\"progress\"},[_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"ID:\")]),_c('code',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.job.id))])]),_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Submitted:\")]),_c('span',{staticClass:\"value\",domProps:{\"innerHTML\":_vm._s(_vm.created)}})]),(_vm.updated)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Updated:\")]),_c('span',{staticClass:\"value\",domProps:{\"innerHTML\":_vm._s(_vm.updated)}})]):_vm._e(),(_vm.job.status)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Status:\")]),_c('span',{staticClass:\"value status\",attrs:{\"data-value\":_vm.job.status}},[_vm._v(_vm._s(_vm.job.status))])]):_vm._e(),(typeof _vm.job.progress === 'number')?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Progress:\")]),_c('div',{staticClass:\"value\"},[_c('div',{staticClass:\"progressBar\",class:{error: !!_vm.job.error}},[_c('div',{staticClass:\"completed\",style:('width: ' + _vm.progress)},[(_vm.job.progress > 50)?_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.progress))]):_vm._e(),_vm._v(\"  \")]),(_vm.job.progress <= 50)?_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.progress))]):_vm._e()])])]):_vm._e(),(_vm.job.log_level)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Minimum severity for logs:\")]),_c('span',{staticClass:\"value level\",attrs:{\"data-value\":_vm.job.log_level}},[_vm._v(_vm._s(_vm.job.log_level))])]):_vm._e()]),_vm._t(\"before-description\",null,null,_vm.$props),(_vm.job.description)?_c('summary',{staticClass:\"description\"},[_c('h3',[_vm._v(\"Description\")]),_c('Description',{attrs:{\"description\":_vm.job.description}}),(_vm.job['federation:missing'])?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.job['federation:missing'],\"federation\":_vm.federation}}):_vm._e()],1):_vm._e(),(_vm.hasLinks)?_c('section',{staticClass:\"links\"},[_c('LinkList',{attrs:{\"links\":_vm.job.links,\"heading\":\"Additional Resources\",\"headingTag\":\"h3\"}})],1):_vm._e(),(_vm.job.plan || _vm.costs || _vm.budget)?_c('section',{staticClass:\"billing\"},[_c('h3',[_vm._v(\"Billing\")]),(_vm.job.plan)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Billing plan:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.job.plan))])]):_vm._e(),(_vm.costs)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Incurred Costs:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.costs))])]):_vm._e(),(_vm.budget)?_c('div',{staticClass:\"tabular\"},[_c('label',{attrs:{\"title\":\"The allowed maximum costs, specified by the user.\"}},[_vm._v(\"Budget limit:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.budget))])]):_vm._e()]):_vm._e(),(_vm.hasUsageMetrics)?_c('section',{staticClass:\"usage\"},[_c('h3',[_vm._v(\"Usage Metrics\")]),_vm._l((_vm.usage),function(metric,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',{staticClass:\"metric\"},[_vm._v(_vm._s(_vm._f(\"usageLabel\")(key)))]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"usageValue\")(metric.value))+\" \"),_c('span',{staticClass:\"unit\"},[_vm._v(_vm._s(metric.unit))])])])})],2):_vm._e(),_c('section',{staticClass:\"process\"},[_c('h3',[_vm._v(\"Process\")]),_c('Process',{staticClass:\"inline\",attrs:{\"process\":_vm.job.process,\"provideDownload\":false,\"showGraph\":true},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(p){return [_vm._t(\"process-graph\",null,{\"vBind\":p})]}}],null,true)})],1),_vm._t(\"end\",null,null,_vm.$props)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Job.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Job.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Job.vue?vue&type=template&id=46e64ee8\"\nimport script from \"./Job.vue?vue&type=script&lang=js\"\nexport * from \"./Job.vue?vue&type=script&lang=js\"\nimport style0 from \"./Job.vue?vue&type=style&index=0&id=46e64ee8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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\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!./JobInfoModal.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!./JobInfoModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./JobInfoModal.vue?vue&type=template&id=370fa5d6\"\nimport script from \"./JobInfoModal.vue?vue&type=script&lang=js\"\nexport * from \"./JobInfoModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./JobInfoModal.vue?vue&type=style&index=0&id=370fa5d6&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',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],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!./Modal.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!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=57347c15\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=57347c15&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","usageLabels","cpu","memory","duration","network","disk","storage","computed","hasUsageMetrics","size","this","usage","filters","usageLabel","key","prettifyString","usageValue","num","toLocaleString","render","_vm","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","title","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","job","currency","resultType","extents","geometry","bbox","$props","created","updated","status","progress","style","log_level","plan","costs","budget","metric","_f","unit","UsageMixin","Description","LinkList","formatBudget","formatCurrency","formatTimestamp","Math","round","hasLinks","Editor","Item","Job","MapExtentViewer","Modal","zIndex","backgroundClose","containerTag","smooth","stopPropagation","submitFunction","apply","startMove","close","submitButtonText","minWidth","width","height","show","position","dragPosition","left","top","open","smoothResize","setTimeout","submit","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","tagName","clientX","clientY","document","move","stopMove","container","offsetLeft","offsetTop","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","code","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","obj","mapObject","makeString","str","stringify","makeNumber","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","i","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/4111.ce83ebbc.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/UsageMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/modals/JobInfoModal.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Job.vue?e994","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Job.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Job.vue?3a6c","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Job.vue","webpack://@openeo/web-editor/src/components/modals/JobInfoModal.vue","webpack://@openeo/web-editor/./src/components/modals/JobInfoModal.vue?e17e","webpack://@openeo/web-editor/./src/components/modals/JobInfoModal.vue?a253","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","import Utils from '../../utils';\n\nconst usageLabels = {\n\tcpu: \"CPU usage\",\n\tmemory: \"Memory usage\",\n\tduration: \"Wall time\",\n\tnetwork: \"Network Transfer IO\",\n\tdisk: \"Storage IO\",\n\tstorage: \"Storage space\"\n};\n\nexport default {\n\tcomputed: {\n\t\thasUsageMetrics() {\n\t\t\treturn Utils.size(this.usage) > 0;\n\t\t}\n\t},\n\tfilters: {\n\t\tusageLabel(key) {\n\t\t\tif (usageLabels[key]) {\n\t\t\t\treturn usageLabels[key];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Utils.prettifyString(key);\n\t\t\t}\n\t\t},\n\t\tusageValue(num) {\n\t\t\tif (typeof num === 'number') {\n\t\t\t\treturn num.toLocaleString();\n\t\t\t}\n\t\t\treturn num;\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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('Modal',{attrs:{\"width\":\"80%\",\"title\":_vm.title},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('Job',{attrs:{\"job\":_vm.job,\"currency\":_vm.currency},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(){return [_c('Editor',{staticClass:\"infoViewer\",attrs:{\"value\":_vm.job.process,\"editable\":false,\"id\":\"jobPgViewer\"}})]},proxy:true}])}),(_vm.resultType)?_c('section',{staticClass:\"vue-component result\"},[_c('h3',[_vm._v(\"Results\")]),_c('p',[_c('em',[_vm._v(\"Below the metadata for the results of the batch job are shown.\")])]),(_vm.resultType === 'Collection')?_c('Collection',{attrs:{\"data\":_vm.result},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"spatial-extents\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"jobMap\",attrs:{\"footprint\":p.extents}})]}}],null,false,1357273968)}):_c('Item',{attrs:{\"data\":_vm.result},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"location\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"jobMap\",attrs:{\"footprint\":p.geometry || p.bbox}})]}}],null,false,2460418625)})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('article',{staticClass:\"vue-component job\"},[_vm._t(\"title\",function(){return [_c('a',{staticClass:\"anchor\",attrs:{\"name\":_vm.job.id}}),_c('h2',[_vm._v(_vm._s(_vm.job.title || _vm.job.id))])]},null,_vm.$props),_c('section',{staticClass:\"progress\"},[_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"ID:\")]),_c('code',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.job.id))])]),_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Submitted:\")]),_c('span',{staticClass:\"value\",domProps:{\"innerHTML\":_vm._s(_vm.created)}})]),(_vm.updated)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Updated:\")]),_c('span',{staticClass:\"value\",domProps:{\"innerHTML\":_vm._s(_vm.updated)}})]):_vm._e(),(_vm.job.status)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Status:\")]),_c('span',{staticClass:\"value status\",attrs:{\"data-value\":_vm.job.status}},[_vm._v(_vm._s(_vm.job.status))])]):_vm._e(),(typeof _vm.job.progress === 'number')?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Progress:\")]),_c('div',{staticClass:\"value\"},[_c('div',{staticClass:\"progressBar\",class:{error: !!_vm.job.error}},[_c('div',{staticClass:\"completed\",style:('width: ' + _vm.progress)},[(_vm.job.progress > 50)?_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.progress))]):_vm._e(),_vm._v(\"  \")]),(_vm.job.progress <= 50)?_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.progress))]):_vm._e()])])]):_vm._e(),(_vm.job.log_level)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Minimum severity for logs:\")]),_c('span',{staticClass:\"value level\",attrs:{\"data-value\":_vm.job.log_level}},[_vm._v(_vm._s(_vm.job.log_level))])]):_vm._e()]),_vm._t(\"before-description\",null,null,_vm.$props),(_vm.job.description)?_c('summary',{staticClass:\"description\"},[_c('h3',[_vm._v(\"Description\")]),_c('Description',{attrs:{\"description\":_vm.job.description}}),(_vm.job['federation:missing'])?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.job['federation:missing'],\"federation\":_vm.federation}}):_vm._e()],1):_vm._e(),(_vm.hasLinks)?_c('section',{staticClass:\"links\"},[_c('LinkList',{attrs:{\"links\":_vm.job.links,\"heading\":\"Additional Resources\",\"headingTag\":\"h3\"}})],1):_vm._e(),(_vm.job.plan || _vm.costs || _vm.budget)?_c('section',{staticClass:\"billing\"},[_c('h3',[_vm._v(\"Billing\")]),(_vm.job.plan)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Billing plan:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.job.plan))])]):_vm._e(),(_vm.costs)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Incurred Costs:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.costs))])]):_vm._e(),(_vm.budget)?_c('div',{staticClass:\"tabular\"},[_c('label',{attrs:{\"title\":\"The allowed maximum costs, specified by the user.\"}},[_vm._v(\"Budget limit:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.budget))])]):_vm._e()]):_vm._e(),(_vm.hasUsageMetrics)?_c('section',{staticClass:\"usage\"},[_c('h3',[_vm._v(\"Usage Metrics\")]),_vm._l((_vm.usage),function(metric,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',{staticClass:\"metric\"},[_vm._v(_vm._s(_vm._f(\"usageLabel\")(key)))]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"usageValue\")(metric.value))+\" \"),_c('span',{staticClass:\"unit\"},[_vm._v(_vm._s(metric.unit))])])])})],2):_vm._e(),_c('section',{staticClass:\"process\"},[_c('h3',[_vm._v(\"Process\")]),_c('Process',{staticClass:\"inline\",attrs:{\"process\":_vm.job.process,\"provideDownload\":false,\"showGraph\":true},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(p){return [_vm._t(\"process-graph\",null,{\"vBind\":p})]}}],null,true)})],1),_vm._t(\"end\",null,null,_vm.$props)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Job.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Job.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Job.vue?vue&type=template&id=46e64ee8\"\nimport script from \"./Job.vue?vue&type=script&lang=js\"\nexport * from \"./Job.vue?vue&type=script&lang=js\"\nimport style0 from \"./Job.vue?vue&type=style&index=0&id=46e64ee8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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\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!./JobInfoModal.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!./JobInfoModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./JobInfoModal.vue?vue&type=template&id=370fa5d6\"\nimport script from \"./JobInfoModal.vue?vue&type=script&lang=js\"\nexport * from \"./JobInfoModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./JobInfoModal.vue?vue&type=style&index=0&id=370fa5d6&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',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],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!./Modal.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!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=57347c15\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=57347c15&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","usageLabels","cpu","memory","duration","network","disk","storage","computed","hasUsageMetrics","size","this","usage","filters","usageLabel","key","prettifyString","usageValue","num","toLocaleString","render","_vm","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","title","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","job","currency","resultType","extents","geometry","bbox","$props","created","updated","status","progress","style","log_level","plan","costs","budget","metric","_f","unit","UsageMixin","Description","LinkList","formatBudget","formatCurrency","formatTimestamp","Math","round","hasLinks","Editor","Item","Job","MapExtentViewer","Modal","zIndex","backgroundClose","containerTag","smooth","stopPropagation","submitFunction","apply","startMove","close","submitButtonText","minWidth","width","height","show","position","dragPosition","left","top","open","smoothResize","setTimeout","submit","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","tagName","clientX","clientY","document","move","stopMove","container","offsetLeft","offsetTop","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","code","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","obj","mapObject","makeString","str","stringify","makeNumber","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","i","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file diff --git a/js/4285.90f10343.js b/js/4285.dac135b5.js similarity index 99% rename from js/4285.90f10343.js rename to js/4285.dac135b5.js index a5b1860f..0da4094b 100644 --- a/js/4285.90f10343.js +++ b/js/4285.dac135b5.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[4285],{94285:(e,t,i)=>{i.r(t),i.d(t,{default:()=>c});var a=function(){var e=this,t=e._self._c;return t("div",{ref:"imageViewer",staticClass:"imageViewer",class:{fullscreen:e.fullScreen}},[e.error?[e._v(e._s(e.error))]:[t("div",{staticClass:"toolbar"},[e.play?e._e():t("span",{staticClass:"value",attrs:{title:e.valueTitle}},[e._v(e._s(e.valueText))]),t("FullscreenButton",{staticClass:"fullscreen-button",attrs:{element:()=>e.$refs.imageViewer},on:{changed:e.fullscreenToggled}}),t("button",{staticClass:"play-button",attrs:{title:"Play animation (if available)"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.togglePlay.apply(null,arguments)}}},[e.play?t("i",{staticClass:"fas fa-stop"}):t("i",{staticClass:"fas fa-play"})])],1),t("div",{directives:[{name:"show",rawName:"v-show",value:!e.context,expression:"!context"}],staticClass:"no-data"},[t("i",{staticClass:"fas fa-spinner fa-spin"}),e._v(" Loading image...")]),t("canvas",{directives:[{name:"show",rawName:"v-show",value:e.context&&!e.play,expression:"context && !play"}],ref:"canvas",style:e.style,attrs:{title:e.title},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.resize.apply(null,arguments)},mousemove:e.getPixelValue,mouseout:e.resetPixelValue}}),t("iframe",{directives:[{name:"show",rawName:"v-show",value:e.context&&e.play,expression:"context && play"}],ref:"iframe"},[t("body",{ref:"body",staticStyle:{margin:"auto",width:"100%",height:"100%","text-align":"center"}},[t("img",{ref:"image",style:e.style,attrs:{title:e.title},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.resize.apply(null,arguments)}}})])])]],2)},s=[],l=(i(98992),i(23215),i(92622));const r="-",n={name:"ImageViewer",components:{FullscreenButton:l.A},props:{data:{type:Object,required:!0}},data(){return{fullScreen:!1,fullSize:!1,img:null,error:null,context:null,value:r,play:!1}},async mounted(){this.$emit("mounted",this),this.img=await this.data.getData()},computed:{style(){return this.fullSize||this.fullScreen?{"max-width":"none","max-height":"none","object-fit":"none",cursor:this.fullScreen?"auto":"zoom-out","box-sizing":"border-box"}:{"max-width":"100%","max-height":"100%",cursor:"zoom-in","object-fit":"contain","box-sizing":"border-box"}},title(){return this.fullScreen?"":this.fullSize?"Click to shrink (fit to screen)":"Click to enlarge (full size)"},valueTitle(){return this.fullScreen||this.fullSize?"":"Show in full size to get precise values"},valueText(){return this.fullScreen||this.fullSize?`Pixel Value: ${this.value}`:`Estimated Pixel Value: ${this.value}`}},watch:{img:{immediate:!0,handler(){this.updateContent()}},play:{immediate:!0,handler(){this.updateContent()}}},methods:{updateContent(){if(this.img)try{this.play?(this.$refs.image.src=this.img.src,this.$refs.iframe.contentWindow.document.body=this.$refs.body,this.$refs.iframe.style.width=`${this.img.naturalWidth}px`,this.$refs.iframe.style.height=`${this.img.naturalHeight}px`):(this.$refs.canvas.width=this.img.naturalWidth,this.$refs.canvas.height=this.img.naturalHeight,this.context=this.$refs.canvas.getContext("2d",{willReadFrequently:!0}),this.context.drawImage(this.img,0,0))}catch(e){this.error=e}},togglePlay(){this.play=!this.play},fullscreenToggled(e){this.fullScreen=e},resize(){this.fullScreen||(this.fullSize=!this.fullSize)},resetPixelValue(){this.value=r},getPixelValue(e){try{const t=this.$refs.canvas.getBoundingClientRect(),i=this.img.naturalWidth/t.width,a=this.img.naturalHeight/t.height,s=e.offsetX*i,l=e.offsetY*a,r=Array.from(this.context.getImageData(Math.ceil(s),Math.ceil(l),1,1).data),n=r.pop();0===n?this.value="no data":r.every((e=>e===r[0]))?this.value=r[0]:this.value=r.join(" / ")}catch(t){this.value=r}}}},o=n;var u=i(81656),h=(0,u.A)(o,a,s,!1,null,"bb3bb0f6",null);const c=h.exports},81148:(e,t,i)=>{var a=i(46518),s=i(72652),l=i(79306),r=i(28551),n=i(1767);a({target:"Iterator",proto:!0,real:!0},{every:function(e){r(this),l(e);var t=n(this),i=0;return!s(t,(function(t,a){if(!e(t,i++))return a()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},23215:(e,t,i)=>{i(81148)}}]); -//# sourceMappingURL=4285.90f10343.js.map \ No newline at end of file +//# sourceMappingURL=4285.dac135b5.js.map \ No newline at end of file diff --git a/js/4285.90f10343.js.map b/js/4285.dac135b5.js.map similarity index 99% rename from js/4285.90f10343.js.map rename to js/4285.dac135b5.js.map index 49251610..abdce812 100644 --- a/js/4285.90f10343.js.map +++ b/js/4285.dac135b5.js.map @@ -1 +1 @@ -{"version":3,"file":"js/4285.90f10343.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/viewer/ImageViewer.vue","webpack://@openeo/web-editor/src/components/viewer/ImageViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/ImageViewer.vue?ec02","webpack://@openeo/web-editor/./src/components/viewer/ImageViewer.vue?f113","webpack://@openeo/web-editor/./node_modules/core-js/modules/es.iterator.every.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/esnext.iterator.every.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"imageViewer\",staticClass:\"imageViewer\",class:{'fullscreen': _vm.fullScreen}},[(_vm.error)?[_vm._v(_vm._s(_vm.error))]:[_c('div',{staticClass:\"toolbar\"},[(!_vm.play)?_c('span',{staticClass:\"value\",attrs:{\"title\":_vm.valueTitle}},[_vm._v(_vm._s(_vm.valueText))]):_vm._e(),_c('FullscreenButton',{staticClass:\"fullscreen-button\",attrs:{\"element\":() => _vm.$refs.imageViewer},on:{\"changed\":_vm.fullscreenToggled}}),_c('button',{staticClass:\"play-button\",attrs:{\"title\":\"Play animation (if available)\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.togglePlay.apply(null, arguments)}}},[(_vm.play)?_c('i',{staticClass:\"fas fa-stop\"}):_c('i',{staticClass:\"fas fa-play\"})])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.context),expression:\"!context\"}],staticClass:\"no-data\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"}),_vm._v(\" Loading image...\")]),_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.context && !_vm.play),expression:\"context && !play\"}],ref:\"canvas\",style:(_vm.style),attrs:{\"title\":_vm.title},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.resize.apply(null, arguments)},\"mousemove\":_vm.getPixelValue,\"mouseout\":_vm.resetPixelValue}}),_c('iframe',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.context && _vm.play),expression:\"context && play\"}],ref:\"iframe\"},[_c('body',{ref:\"body\",staticStyle:{\"margin\":\"auto\",\"width\":\"100%\",\"height\":\"100%\",\"text-align\":\"center\"}},[_c('img',{ref:\"image\",style:(_vm.style),attrs:{\"title\":_vm.title},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.resize.apply(null, arguments)}}})])])]],2)\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!./ImageViewer.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!./ImageViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImageViewer.vue?vue&type=template&id=bb3bb0f6&scoped=true\"\nimport script from \"./ImageViewer.vue?vue&type=script&lang=js\"\nexport * from \"./ImageViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./ImageViewer.vue?vue&type=style&index=0&id=bb3bb0f6&prod&scoped=true&lang=css\"\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 \"bb3bb0f6\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.every');\n"],"names":["render","_vm","this","_c","_self","ref","staticClass","class","fullScreen","error","_v","_s","play","_e","attrs","valueTitle","valueText","element","$refs","imageViewer","on","fullscreenToggled","$event","preventDefault","stopPropagation","togglePlay","apply","arguments","directives","name","rawName","value","context","expression","style","title","resize","getPixelValue","resetPixelValue","staticStyle","staticRenderFns","unknown","components","FullscreenButton","props","data","type","Object","required","fullSize","img","mounted","$emit","getData","computed","watch","immediate","handler","updateContent","methods","image","src","iframe","contentWindow","document","body","width","naturalWidth","height","naturalHeight","canvas","getContext","willReadFrequently","drawImage","open","event","size","getBoundingClientRect","xScale","yScale","x","offsetX","y","offsetY","rgba","Array","from","getImageData","Math","ceil","alpha","pop","every","v","join","component","$","iterate","aCallable","anObject","getIteratorDirect","target","proto","real","predicate","record","counter","stop","IS_RECORD","INTERRUPTED","stopped"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/4285.dac135b5.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/viewer/ImageViewer.vue","webpack://@openeo/web-editor/src/components/viewer/ImageViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/ImageViewer.vue?ec02","webpack://@openeo/web-editor/./src/components/viewer/ImageViewer.vue?f113","webpack://@openeo/web-editor/./node_modules/core-js/modules/es.iterator.every.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/esnext.iterator.every.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"imageViewer\",staticClass:\"imageViewer\",class:{'fullscreen': _vm.fullScreen}},[(_vm.error)?[_vm._v(_vm._s(_vm.error))]:[_c('div',{staticClass:\"toolbar\"},[(!_vm.play)?_c('span',{staticClass:\"value\",attrs:{\"title\":_vm.valueTitle}},[_vm._v(_vm._s(_vm.valueText))]):_vm._e(),_c('FullscreenButton',{staticClass:\"fullscreen-button\",attrs:{\"element\":() => _vm.$refs.imageViewer},on:{\"changed\":_vm.fullscreenToggled}}),_c('button',{staticClass:\"play-button\",attrs:{\"title\":\"Play animation (if available)\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.togglePlay.apply(null, arguments)}}},[(_vm.play)?_c('i',{staticClass:\"fas fa-stop\"}):_c('i',{staticClass:\"fas fa-play\"})])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.context),expression:\"!context\"}],staticClass:\"no-data\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"}),_vm._v(\" Loading image...\")]),_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.context && !_vm.play),expression:\"context && !play\"}],ref:\"canvas\",style:(_vm.style),attrs:{\"title\":_vm.title},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.resize.apply(null, arguments)},\"mousemove\":_vm.getPixelValue,\"mouseout\":_vm.resetPixelValue}}),_c('iframe',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.context && _vm.play),expression:\"context && play\"}],ref:\"iframe\"},[_c('body',{ref:\"body\",staticStyle:{\"margin\":\"auto\",\"width\":\"100%\",\"height\":\"100%\",\"text-align\":\"center\"}},[_c('img',{ref:\"image\",style:(_vm.style),attrs:{\"title\":_vm.title},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.resize.apply(null, arguments)}}})])])]],2)\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!./ImageViewer.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!./ImageViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImageViewer.vue?vue&type=template&id=bb3bb0f6&scoped=true\"\nimport script from \"./ImageViewer.vue?vue&type=script&lang=js\"\nexport * from \"./ImageViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./ImageViewer.vue?vue&type=style&index=0&id=bb3bb0f6&prod&scoped=true&lang=css\"\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 \"bb3bb0f6\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.every');\n"],"names":["render","_vm","this","_c","_self","ref","staticClass","class","fullScreen","error","_v","_s","play","_e","attrs","valueTitle","valueText","element","$refs","imageViewer","on","fullscreenToggled","$event","preventDefault","stopPropagation","togglePlay","apply","arguments","directives","name","rawName","value","context","expression","style","title","resize","getPixelValue","resetPixelValue","staticStyle","staticRenderFns","unknown","components","FullscreenButton","props","data","type","Object","required","fullSize","img","mounted","$emit","getData","computed","watch","immediate","handler","updateContent","methods","image","src","iframe","contentWindow","document","body","width","naturalWidth","height","naturalHeight","canvas","getContext","willReadFrequently","drawImage","open","event","size","getBoundingClientRect","xScale","yScale","x","offsetX","y","offsetY","rgba","Array","from","getImageData","Math","ceil","alpha","pop","every","v","join","component","$","iterate","aCallable","anObject","getIteratorDirect","target","proto","real","predicate","record","counter","stop","IS_RECORD","INTERRUPTED","stopped"],"sourceRoot":""} \ No newline at end of file diff --git a/js/4394.d94fc855.js b/js/4394.d94fc855.js new file mode 100644 index 00000000..0e2b5223 --- /dev/null +++ b/js/4394.d94fc855.js @@ -0,0 +1,2 @@ +"use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[4394],{35124:(e,t,s)=>{s.d(t,{A:()=>n});var i=s(7683),r=class extends i.A{constructor(e){e=e||{},e.className=(e.className||"")+" ol-text-button",super(e)}};const n=r},52659:(e,t,s)=>{s.d(t,{A:()=>n});var i=s(7683),r=class extends i.A{constructor(e){e=e||{},e.toggleFn&&(e.onToggle=e.toggleFn),e.handleClick=function(){t.toggle(),e.onToggle&&e.onToggle.call(t,t.getActive())},e.className=(e.className||"")+" ol-toggle",super(e);var t=this;this.interaction_=e.interaction,this.interaction_&&(this.interaction_.setActive(e.active),this.interaction_.on("change:active",(function(){t.setActive(t.interaction_.getActive())}))),this.set("title",e.title),this.set("autoActivate",e.autoActivate),e.bar&&this.setSubBar(e.bar),this.setActive(e.active),this.setDisable(e.disable)}setMap(e){!e&&this.getMap()&&(this.interaction_&&this.getMap().removeInteraction(this.interaction_),this.subbar_&&this.getMap().removeControl(this.subbar_)),super.setMap(e),e&&(this.interaction_&&e.addInteraction(this.interaction_),this.subbar_&&e.addControl(this.subbar_))}getSubBar(){return this.subbar_}setSubBar(e){var t=this.getMap();t&&this.subbar_&&t.removeControl(this.subbar_),this.subbar_=e,e&&(this.subbar_.setTarget(this.element),this.subbar_.element.classList.add("ol-option-bar"),t&&t.addControl(this.subbar_))}getDisable(){var e=this.element.querySelector("button");return e&&e.disabled}setDisable(e){this.getDisable()!=e&&(this.element.querySelector("button").disabled=e,e&&this.getActive()&&this.setActive(!1),this.dispatchEvent({type:"change:disable",key:"disable",oldValue:!e,disable:e}))}getActive(){return this.element.classList.contains("ol-active")}toggle(){this.getActive()?this.setActive(!1):this.setActive(!0)}setActive(e){this.interaction_&&this.interaction_.setActive(e),this.subbar_&&this.subbar_.setActive(e),this.getActive()!==e&&(e?this.element.classList.add("ol-active"):this.element.classList.remove("ol-active"),this.dispatchEvent({type:"change:active",key:"active",oldValue:!e,active:e}))}setInteraction(e){this.interaction_=e}getInteraction(){return this.interaction_}};const n=r},13039:(e,t,s)=>{s.d(t,{AE:()=>_,OX:()=>d,of:()=>l,xh:()=>u});var i,r=s(11217),n=s(96702),o=s(2871),a=s(34142),h=s(94974),c=s(70915),l=function(e,t){var s=e[0]-t[0],i=e[1]-t[1];return Math.sqrt(s*s+i*i)},d=function(e,t){return e[0]==t[0]&&e[1]==t[1]},u=function(e,t){var s,i,r,n,o,a,h,c,u,_,g,f,p,y=[],v=e.length-1,m=v,C=d(e[0],e[v]);C||(g=e[0],f=e[1],p=[g[0]+(f[1]-g[1])/l(g,f)*t,g[1]-(f[0]-g[0])/l(g,f)*t],y.push(p),e.push(e[v]),v++,m--);for(var x=0;x1e-10&&(r=Math.sqrt((f[0]-g[0])*(f[0]-g[0])+(f[1]-g[1])*(f[1]-g[1])),n=Math.sqrt((p[0]-f[0])*(p[0]-f[0])+(p[1]-f[1])*(p[1]-f[1])),o=g[0]+t*(f[1]-g[1])/r,a=f[0]+t*(p[1]-f[1])/n,h=g[1]-t*(f[0]-g[0])/r,c=f[1]-t*(p[0]-f[0])/n,u=(i*a-s*o+h-c)/(i-s),_=(s*i*(a-o)+i*h-s*c)/(i-s),f[0]-g[0]==0&&(u=f[0]+t*(f[1]-g[1])/Math.abs(f[1]-g[1]),_=i*u-i*a+c),p[0]-f[0]==0&&(u=p[0]+t*(p[1]-f[1])/Math.abs(p[1]-f[1]),_=s*u-s*o+h),y.push([u,_]));return C?y.push(y[0]):(e.pop(),g=e[e.length-1],f=e[e.length-2],p=[g[0]-(f[1]-g[1])/l(g,f)*t,g[1]+(f[0]-g[0])/l(g,f)*t],y.push(p)),y},_=function(e,t){for(var s=0;s0;i--)(e[i][0]>t&&e[i-1][0]t)&&(s=[t,(t-e[i][0])/(e[i-1][0]-e[i][0])*(e[i-1][1]-e[i][1])+e[i][1]],e.splice(i,0,s))}function t(e,t){var s;for(let i=e.length-1;i>0;i--)(e[i][1]>t&&e[i-1][1]t)&&(s=[(t-e[i][1])/(e[i-1][1]-e[i][1])*(e[i-1][0]-e[i][0])+e[i][0],t],e.splice(i,0,s))}i=function(s,i){var r="Polygon"===i.getType();if(!r&&"MultiPolygon"!==i.getType())return null;var n=i.getCoordinates();return r&&(n=[n]),n.forEach((function(i){i.forEach((function(i){e(i,s[0]),e(i,s[2]),t(i,s[1]),t(i,s[3])}))})),n.forEach((function(e){e.forEach((function(e){e.forEach((function(e){e[0]s[2]&&(e[0]=s[2]),e[1]s[3]&&(e[1]=s[3])}))}))})),r?new a.Ay(n[0]):new o.A(n)}})();var g=function(e,t,s,i){var r=[];!1!==i&&r.push(e);var n=l(e,t);if(n){var o=Math.round(n/s);if(o>1)for(var a=(t[0]-e[0])/o,h=(t[1]-e[1])/o,c=1;cn?(d=!0,s.push([r[0]+n/t*(e[0]-r[0]),r[1]+n/t*(e[1]-r[1])])):s.push(e)}))}))})),d?"Polygon"===e.getType()?new a.Ay(u[0]):new o.A(u):e}}else console.warn("[ol/geom/Circle~intersection] Unsupported geometry type: "+e.getType());return e}},81502:(e,t,s)=>{var i=s(13039),r=s(11217);r.A.prototype.splitAt=function(e,t){var s;if(!e)return[this];if(t||(t=1e-10),e.length&&e[0].length){var n=[this];for(s=0;s1&&d.push(new r.A(l)),d.length?d:[this]}},30379:(e,t,s)=>{s.d(t,{A:()=>o});var i=s(42770),r=s(54602),n=class extends i.A{constructor(e){super(e),this.on("select",function(e){this.getFeatures().clear(),this.delete(e.selected)}.bind(this))}_getSources(e){if(!this.getMap())return[];e||(e=this.getMap().getLayers());var t=[];return e.forEach(function(e){e.getLayers?t=t.concat(this._getSources(e.getLayers())):e.getSource&&e.getSource()instanceof r["default"]&&t.push(e.getSource())}.bind(this)),t}delete(e){if(e&&(e.length||e.getLength())){this.dispatchEvent({type:"deletestart",features:e});var t=[];this._getSources().forEach((function(s){try{e.forEach((function(e){s.removeFeature(e),t.push(e)}))}catch(i){}})),this.dispatchEvent({type:"deleteend",features:t})}}};const o=n},8616:(e,t,s)=>{s.d(t,{A:()=>c});var i=s(34142),r=s(2871),n=s(22809),o=s(54620),a=s(42770),h=class extends o.Ay{constructor(e){e=e||{};var t=function(e,t){var s=e[0].pop();return this.getPolygon()&&!this.getPolygon().intersectsCoordinate(s)||(this.lastOKCoord=[s[0],s[1]]),e[0].push([this.lastOKCoord[0],this.lastOKCoord[1]]),t?t.setCoordinates([e[0].concat([e[0][0]])]):t=new i.Ay(e),t},s=e.geometryFunction;if(e.geometryFunction=s?function(e,i,r){return i=t.bind(this)(e,i),s.bind(this)(e,i,r)}:t,e.type="Polygon",super(e),this._select=new a.A({style:e.style}),this._select.setActive(!1),e.layers&&("function"===typeof e.layers?this.layers_=e.layers:e.layers.indexOf&&(this.layers_=function(t){return e.layers.indexOf(t)>=0})),"function"===typeof e.featureFilter)this._features=e.featureFilter;else if(e.featureFilter){var r=e.featureFilter;this._features=function(e){return r.indexOf?!!r[r.indexOf(e)]:!!r.item(r.getArray().indexOf(e))}}else this._features=function(){return!0};this.on("drawstart",this._startDrawing.bind(this)),this.on("drawend",this._finishDrawing.bind(this))}setMap(e){this.getMap()&&this.getMap().removeInteraction(this._select),e&&e.addInteraction(this._select),super.setMap.call(this,e)}setActive(e){this._select&&this._select.getFeatures().clear(),super.setActive.call(this,e)}removeLastPoint(){this._feature&&this._feature.getGeometry().getCoordinates()[0].length>2&&super.removeLastPoint.call(this)}getPolygon(){return this._polygon}_startDrawing(e){var t=this.getMap();this._feature=e.feature;var s=e.feature.getGeometry().getCoordinates()[0][0];this._current=null,t.forEachFeatureAtPixel(t.getPixelFromCoordinate(s),function(e,t){if(!this._current&&this._features(e,t)){var i=e.getGeometry();if("Polygon"===i.getType()&&i.intersectsCoordinate(s))this._polygonIndex=!1,this._polygon=i,this._current=e;else if("MultiPolygon"===i.getType()&&i.intersectsCoordinate(s))for(var r,n=0;r=i.getPolygon(n);n++)if(r.intersectsCoordinate(s)){this._polygonIndex=n,this._polygon=r,this._current=e;break}}}.bind(this),{layerFilter:this.layers_}),this._select.getFeatures().clear(),this._current?this._select.getFeatures().push(this._current):(this.setActive(!1),this.setActive(!0))}_finishDrawing(e){e.hole=e.feature,e.feature=this._select.getFeatures().item(0),this.dispatchEvent({type:"modifystart",features:[this._current]});var t=e.hole.getGeometry().getCoordinates()[0];if(t.length>3)if(!1!==this._polygonIndex){for(var s,i=e.feature.getGeometry(),o=new r.A([]),a=0;s=i.getPolygon(a);a++)a===this._polygonIndex?(s.appendLinearRing(new n.A(t)),o.appendPolygon(s)):o.appendPolygon(s);e.feature.setGeometry(o)}else this.getPolygon().appendLinearRing(new n.A(t));this.dispatchEvent({type:"modifyend",features:[this._current]}),this._feature=null,this._select.getFeatures().clear()}_geometryFn(e,t){var s=e[0].pop();return this.getPolygon()&&!this.getPolygon().intersectsCoordinate(s)||(this.lastOKCoord=[s[0],s[1]]),e[0].push([this.lastOKCoord[0],this.lastOKCoord[1]]),t?t.setCoordinates([e[0].concat([e[0][0]])]):t=new i.Ay(e),t}};const c=h},41452:(e,t,s)=>{s.d(t,{A:()=>g});var i=s(6292),r=s(25937),n=s(50071),o=s(82986),a=s(54602),h=s(94974),c=s(34142),l=s(44294),d=s(11217),u=s(86717),_=class extends i.Ay{constructor(e){e=e||{},super({handleEvent:function(e){return t.handleEvent_(e)}});var t=this;this.squaredClickTolerance_=e.clickTolerance?e.clickTolerance*e.clickTolerance:36,this.maxCircleCoordinates_=e.maxCircleCoordinates||100,this.features_=e.features,this.source_=e.source,this.conditionFn_=e.condition,this.squareFn_=e.squareCondition,this.centeredFn_=e.centerCondition,this.canRotate_=!1!==e.canRotate,this.geometryName_=e.geometryName||"geometry",this.setSides(e.sides);var s=(0,r.A)(!0);this.sketch_=new n.A,this.overlayLayer_=new o["default"]({source:new a["default"]({features:this.sketch_,useSpatialIndex:!1}),name:"DrawRegular overlay",displayInLayerSwitcher:!1,style:e.style||s})}setMap(e){this.getMap()&&this.getMap().removeLayer(this.overlayLayer_),super.setMap(e),this.overlayLayer_.setMap(e)}setActive(e){this.reset(),super.setActive(e)}reset(){this.overlayLayer_&&this.overlayLayer_.getSource().clear(),this.started_=!1}setSides(e){e=parseInt(e),this.sides_=e>2?e:0}canRotate(e){return!0!==e&&!1!==e||(this.canRotate_=e),this.canRotate_}getSides(){return this.sides_}getGeom_(){if(this.overlayLayer_.getSource().clear(),!this.center_)return!1;var e;if(this.coord_){var t,s,i,r,n,o=this.center_,a=this.coord_;if(!this.sides_&&this.square_&&!this.centered_)return o=[(a[0]+o[0])/2,(a[1]+o[1])/2],t=[a[0]-o[0],a[1]-o[1]],i=Math.sqrt(t[0]*t[0]+t[1]*t[1]),r=new h.A(o,i,"XY"),n=this.getMap().getPixelFromCoordinate(o),s=Math.max(100,Math.abs(n[0]-this.coordPx_[0]),Math.abs(n[1]-this.coordPx_[1])),s=Math.min(this.maxCircleCoordinates_,Math.round(s/3)),(0,c.nD)(r,s,0);var d=this.canRotate_&&this.centered_&&this.square_;if(t=[a[0]-o[0],a[1]-o[1]],this.square_&&!d){var u=Math.max(Math.abs(t[0]),Math.abs(t[1]));a=[o[0]+(t[0]>0?u:-u),o[1]+(t[1]>0?u:-u)]}if(i=Math.sqrt(t[0]*t[0]+t[1]*t[1]),i>0){var _;if(r=new h.A(o,i,"XY"),_=d?Math.atan2(t[1],t[0]):this.startAngle[this.sides_]||this.startAngle["default"],this.sides_?e=(0,c.nD)(r,this.sides_,_):(n=this.getMap().getPixelFromCoordinate(this.center_),s=Math.max(100,Math.abs(n[0]-this.coordPx_[0]),Math.abs(n[1]-this.coordPx_[1])),s=Math.min(this.maxCircleCoordinates_,Math.round(s/(this.centered_?3:5))),e=(0,c.nD)(r,s,0)),d)return e;var g=e.getExtent();o=this.centered_?[2*this.center_[0]-this.coord_[0],2*this.center_[1]-this.coord_[1]]:this.center_;var f=(o[0]-a[0])/(g[0]-g[2]),p=(o[1]-a[1])/(g[1]-g[3]);if(this.square_){var y=Math.min(Math.abs(f),Math.abs(p));f=Math.sign(f)*y,p=Math.sign(p)*y}var v=[o[0]-g[0]*f,o[1]-g[1]*p];return e.applyTransform((function(e,t,s){for(var i=0;i.9*i,this._longTouch&&this.handleMoveEvent_(e)}.bind(this),i),this.lastEvent=e.type;break;case"pointerup":this.started_&&this.coord_&&(t=this.downPx_[0]-e.pixel[0],s=this.downPx_[1]-e.pixel[1],t*t+s*s<=this.squaredClickTolerance_&&("pointerdown"==this.lastEvent||"pointermove"==this.lastEvent||"keydown"==this.lastEvent?this.end_(e):(t=this.upPx_[0]-e.pixel[0],s=this.upPx_[1]-e.pixel[1],t*t+s*s<=this.squaredClickTolerance_?this.end_(e):(this.handleMoveEvent_(e),this.drawPoint_(e.coordinate,!0))))),this.upPx_=e.pixel;break;case"pointerdrag":if(this.started_){var r=this.getMap().getPixelFromCoordinate(this.center_);t=r[0]-e.pixel[0],s=r[1]-e.pixel[1],t*t+s*s<=this.squaredClickTolerance_&&this.reset()}return!this._longTouch;case"pointermove":this.started_&&(t=this.downPx_[0]-e.pixel[0],s=this.downPx_[1]-e.pixel[1],t*t+s*s>this.squaredClickTolerance_&&(this.handleMoveEvent_(e),this.lastEvent=e.type));break;default:if(this.started_&&("click"===e.type||"singleclick"===e.type||"dblclick"===e.type))return!1;this.lastEvent=e.type;break}return!0}finishDrawing(){this.started_&&this.coord_&&this.end_({pixel:this.upPx_,coordinate:this.coord_})}handleMoveEvent_(e){if(this.started_){this.coord_=e.coordinate,this.coordPx_=e.pixel;var t=this.drawSketch_(e);this.dispatchEvent({type:"drawing",feature:t,pixel:e.pixel,startCoordinate:this.center_,coordinate:e.coordinate,square:this.square_,centered:this.centered_})}else this.drawPoint_(e.coordinate)}start_(e){if(this.started_)this.coord_=e.coordinate;else{this.started_=!0,this.center_=e.coordinate,this.coord_=null;var t=this.feature_=new u["default"]({});t.setGeometryName(this.geometryName_||"geometry"),t.setGeometry(new c.Ay([[e.coordinate,e.coordinate,e.coordinate]])),this.drawSketch_(e),this.dispatchEvent({type:"drawstart",feature:t,pixel:e.pixel,coordinate:e.coordinate})}}end_(e){if(this.coord_=e.coordinate,this.started_=!1,!this.coord_||this.center_[0]===this.coord_[0]&&this.center_[1]===this.coord_[1])this.dispatchEvent({type:"drawcancel",feature:null,pixel:e.pixel,coordinate:e.coordinate,square:this.square_,centered:this.centered_});else{var t=this.feature_;t.setGeometry(this.getGeom_()),this.source_?this.source_.addFeature(t):this.features_&&this.features_.push(t),this.dispatchEvent({type:"drawend",feature:t,pixel:e.pixel,coordinate:e.coordinate,square:this.square_,centered:this.centered_})}this.center_=this.coord_=null,this.drawSketch_()}};_.prototype.startAngle={default:Math.PI/2,3:-Math.PI/2,4:Math.PI/4};const g=_},2230:(e,t,s)=>{s.d(t,{A:()=>v});var i=s(29276),r=s(953),n=s(54602),o=s(13628),a=s(27733),h=s(82986),c=s(44294),l=s(86717),d=s(11217),u=s(6292),_=s(13039),g=s(70915),f=s(58704),p=s(16452),y=(s(81502),class extends u.Ay{constructor(e){var t,s;e=e||{},super({handleEvent:function(e){switch(e.type){case"pointerdown":return t=this.handleDownEvent(e),s=t||this._deleteCondition(e),!t;case"pointerup":return t=!1,this.handleUpEvent(e);case"pointerdrag":return!t||this.handleDragEvent(e);case"pointermove":return!t&&this.handleMoveEvent(e);case"singleclick":case"click":return!s;default:return!0}}}),this.snapDistance_=e.pixelTolerance||10,this.tolerance_=1e-10,this.cursor_=e.cursor,this.sources_=e.sources?e.sources instanceof Array?e.sources:[e.sources]:[],e.source&&this.sources_.push(e.source),e.features&&this.sources_.push(new n["default"]({features:e.features})),this.filterSplit_=e.filter||function(){return!0},this._condition=e.condition||f.fs,this._deleteCondition=e.deleteCondition||f.Js,this._insertVertexCondition=e.insertVertexCondition||f.Gk;var c=function(){return[new i["default"]({image:new a.A({radius:6,fill:new o.A({color:[0,153,255,1]}),stroke:new r.A({color:"#FFF",width:1.25})})})]};e.style&&(c="function"===typeof e.style?e.style:function(){return e.style}),this.overlayLayer_=new h["default"]({source:new n["default"]({useSpatialIndex:!1}),name:"Modify overlay",displayInLayerSwitcher:!1,style:c,wrapX:e.wrapX})}setMap(e){this.getMap()&&this.getMap().removeLayer(this.overlayLayer_),super.setMap(e),this.overlayLayer_.setMap(e)}setActive(e){super.setActive(e),this.overlayLayer_&&this.overlayLayer_.getSource().clear()}setFilter(e){"function"===typeof e?this.filterSplit_=e:void 0===e&&(this.filterSplit_=function(){return!0})}getClosestFeature(e){for(var t,s,i=this.snapDistance_+1,r=0;rthis.snapDistance_)return this.currentFeature&&this.dispatchEvent({type:"select",selected:[],deselected:[this.currentFeature]}),this.currentFeature=null,!1;var h=this.getNearestCoord(s,t.getGeometry());if(h){h=h.coord;var c=this.getMap().getPixelFromCoordinate(h);return(0,_.of)(e.pixel,c)2){for(s=c[1].getCoordinates(),i=2;r=c[i];i++){var l=r.getCoordinates();l.shift(),s=s.concat(l)}c=[c[0],new d.A(s)]}if(2===c.length){var u=c[0].getCoordinates(),g=c[1].getCoordinates(),f=u.length+g.length-1;u.pop(),g.shift(),a={geom:e,type:e.getType(),coord1:u,coord2:g,node:e.getCoordinates().length===f,closed:!1}}else if(1===c.length){r=c[0].getCoordinates();var p=(0,_.OX)(r[0],t),y=(0,_.OX)(r[r.length-1],t);p?(r.shift(),y&&r.pop(),a={geom:e,type:e.getType(),coord1:[],coord2:r,node:!0,closed:y}):y&&(r.pop(),a={geom:e,type:e.getType(),coord1:r,coord2:[],node:!0,closed:!1})}}break;case"MultiLineString":var v=e.getLineStrings();for(i=0;n=v[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.type=e.getType(),a.lstring=i;break}break;case"Polygon":var m=e.getLinearRings();for(i=0;n=m[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.type=e.getType(),a.index=i;break}break;case"MultiPolygon":var C=e.getPolygons();for(i=0;n=C[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.type=e.getType(),a.poly=i;break}break;case"GeometryCollection":for(o=e.getGeometries(),i=0;n=o[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.g=i,a.typeg=a.type,a.type=e.getType();break}break;default:console.error("ol/interaction/ModifyFeature "+e.getType()+" not supported!");break}return a}handleDownEvent(e){if(!this.getActive())return!1;var t=this.getClosestFeature(e);if(t&&(this._condition(e)||this._deleteCondition(e))){var s=[];return this.arcs=[],this.sources_.forEach(function(e){var i=(0,g.r)((0,g.Tr)([t.coord]),this.tolerance_);s=s.concat(s,e.getFeaturesInExtent(i))}.bind(this)),this._modifiedFeatures=[],s.forEach(function(s){var i=this.getArcs(s.getGeometry(),t.coord);i&&(this._insertVertexCondition(e)||i.node)&&(i.feature=s,this._modifiedFeatures.push(s),this.arcs.push(i))}.bind(this)),!this._modifiedFeatures.length||(this._deleteCondition(e)?!this._removePoint(t,e):(this.dispatchEvent({type:"modifystart",coordinate:t.coord,originalEvent:e.originalEvent,features:this._modifiedFeatures}),this.handleDragEvent({coordinate:t.coord,originalEvent:e.originalEvent}),!0))}return!1}getModifiedFeatures(){return this._modifiedFeatures||[]}removePoint(){this._removePoint({},{})}_getModification(e){var t=e.coord1.concat(e.coord2);switch(e.type){case"LineString":if(e.closed&&t.push(t[0]),t.length>1&&e.geom.getCoordinates().length!=t.length)return e.coords=t,!0;break;case"MultiLineString":if(e.closed&&t.push(t[0]),t.length>1){var s=e.geom.getCoordinates();if(s[e.lstring].length!=t.length)return s[e.lstring]=t,e.coords=s,!0}break;case"Polygon":if(e.closed&&t.push(t[0]),t.length>3&&(s=e.geom.getCoordinates(),s[e.index].length!=t.length))return s[e.index]=t,e.coords=s,!0;break;case"MultiPolygon":if(e.closed&&t.push(t[0]),t.length>3&&(s=e.geom.getCoordinates(),s[e.poly][e.index].length!=t.length))return s[e.poly][e.index]=t,e.coords=s,!0;break;case"GeometryCollection":e.type=e.typeg;var i=e.geom,r=i.getGeometries();e.geom=r[e.g];var n=this._getModification(e);return i.setGeometries(r),e.geom=i,e.type="GeometryCollection",n;default:break}return!1}_removePoint(e,t){if(!this.arcs)return!1;this.overlayLayer_.getSource().clear();var s=!1;return this.arcs.forEach(function(e){s=s||this._getModification(e)}.bind(this)),s&&(this.dispatchEvent({type:"modifystart",coordinate:e.coord,originalEvent:t.originalEvent,features:this._modifiedFeatures}),this.arcs.forEach(function(e){if("GeometryCollection"===e.geom.getType()){if(e.coords){var t=e.geom.getGeometries();t[e.g].setCoordinates(e.coords),e.geom.setGeometries(t)}}else e.coords&&e.geom.setCoordinates(e.coords)}.bind(this)),this.dispatchEvent({type:"modifyend",coordinate:e.coord,originalEvent:t.originalEvent,features:this._modifiedFeatures})),this.arcs=[],s}handleUpEvent(e){return!!this.getActive()&&(!this.arcs||!this.arcs.length||(this.overlayLayer_.getSource().clear(),this.dispatchEvent({type:"modifyend",coordinate:e.coordinate,originalEvent:e.originalEvent,features:this._modifiedFeatures}),this.arcs=[],!0))}setArcCoordinates(e,t){var s;switch(e.type){case"Point":e.geom.setCoordinates(t[0]);break;case"MultiPoint":s=e.geom.getCoordinates(),s[e.index]=t[0],e.geom.setCoordinates(s);break;case"LineString":e.geom.setCoordinates(t);break;case"MultiLineString":s=e.geom.getCoordinates(),s[e.lstring]=t,e.geom.setCoordinates(s);break;case"Polygon":s=e.geom.getCoordinates(),s[e.index]=t,e.geom.setCoordinates(s);break;case"MultiPolygon":s=e.geom.getCoordinates(),s[e.poly][e.index]=t,e.geom.setCoordinates(s);break;case"GeometryCollection":e.type=e.typeg;var i=e.geom,r=i.getGeometries();e.geom=r[e.g],this.setArcCoordinates(e,t),i.setGeometries(r),e.geom=i,e.type="GeometryCollection";break}}handleDragEvent(e){if(!this.getActive())return!1;if(!this.arcs)return!0;this.overlayLayer_.getSource().clear();var t=new l["default"](new c["default"](e.coordinate));return this.overlayLayer_.getSource().addFeature(t),!this.arcs.length||(this.arcs.forEach(function(t){var s=t.coord1.concat([e.coordinate],t.coord2);t.closed&&s.push(e.coordinate),this.setArcCoordinates(t,s)}.bind(this)),this.dispatchEvent({type:"modifying",coordinate:e.coordinate,originalEvent:e.originalEvent,features:this._modifiedFeatures}),!0)}handleMoveEvent(e){if(!this.getActive())return!0;this.overlayLayer_.getSource().clear();var t=this.getClosestFeature(e);if(t){var s=new l["default"](new c["default"](t.coord));this.overlayLayer_.getSource().addFeature(s)}var i=e.map.getTargetElement();return this.cursor_&&(t?i.style.cursor!=this.cursor_&&(this.previousCursor_=i.style.cursor,p.A.setCursor(i,this.cursor_)):void 0!==this.previousCursor_&&(p.A.setCursor(i,this.previousCursor_),this.previousCursor_=void 0)),!0}getCurrentFeature(){return this.currentFeature}});const v=y},67355:(e,t,s)=>{s.d(t,{A:()=>l});var i=s(21409),r=s(11217),n=s(34142),o=s(13039),a=s(25937),h=s(16452),c=class extends i.A{constructor(e){e=e||{},super({handleDownEvent:function(e){return t.handleDownEvent_(e)},handleDragEvent:function(e){return t.handleDragEvent_(e)},handleMoveEvent:function(e){return t.handleMoveEvent_(e)},handleUpEvent:function(e){return t.handleUpEvent_(e)}});var t=this;this._filter=e.filter,this.features_=e.features,this.layers_=e.layers?e.layers instanceof Array?e.layers:[e.layers]:null,this.set("duplicate",e.duplicate),this.source_=e.source,this._style="function"===typeof e.style?e.style:function(){return e.style?e.style:(0,a.A)(!0)},this.previousCursor_=!1}getFeatureAtPixel_(e){var t=this;return this.getMap().forEachFeatureAtPixel(e.pixel,(function(s,i){var r;if(t._filter&&!t._filter(s,i))return!1;if(t.layers_){for(var n=0;n1)return!1;var a=r.getGeometry().getClosestPoint(e.coordinate),h=a[0]-e.coordinate[0],c=a[1]-e.coordinate[1],l=Math.sqrt(h*h+c*c)/e.frameState.viewState.resolution;return l<5&&{feature:r,hit:a,coordinates:r.getGeometry().getCoordinates(),geom:r.getGeometry().clone(),geomType:o}}return!1}),{hitTolerance:5})}handleDownEvent_(e){return this.current_=this.getFeatureAtPixel_(e),!!this.current_&&(this.currentStyle_=this.current_.feature.getStyle(),this.source_&&(this.get("duplicate")||e.originalEvent.ctrlKey)?(this.current_.feature=this.current_.feature.clone(),this.current_.feature.setStyle(this._style(this.current_.feature)),this.source_.addFeature(this.current_.feature)):(this.current_.feature.setStyle(this._style(this.current_.feature)),this._modifystart=!0),this.dispatchEvent({type:"offsetstart",feature:this.current_.feature,offset:0}),!0)}handleDragEvent_(e){this._modifystart&&(this.dispatchEvent({type:"modifystart",features:[this.current_.feature]}),this._modifystart=!1);var t,s,i,a,h=this.current_.geom.getClosestPoint(e.coordinate),c=(0,o.of)(h,e.coordinate);switch(this.current_.geomType){case"Polygon":if(t=(0,o.AE)(h,this.current_.coordinates[0]).segment,t){s=[t[1][0]-t[0][0],t[1][1]-t[0][1]],i=[e.coordinate[0]-h[0],e.coordinate[1]-h[1]],s[0]*i[1]-s[1]*i[0]>0&&(c=-c),a=[];for(var l=0;l0&&(c=-c),a=(0,o.xh)(this.current_.coordinates,c),this.current_.feature.setGeometry(new r.A(a)));break;default:break}this.dispatchEvent({type:"offsetting",feature:this.current_.feature,offset:c,segment:[h,e.coordinate],coordinate:e.coordinate})}handleUpEvent_(e){this._modifystart||this.dispatchEvent({type:"offsetend",feature:this.current_.feature,coordinate:e.coordinate}),this.current_.feature.setStyle(this.currentStyle_),this.current_=!1}handleMoveEvent_(e){var t=this.getFeatureAtPixel_(e);t?(!1===this.previousCursor_&&(this.previousCursor_=e.map.getTargetElement().style.cursor),h.A.setCursor(e.map,"pointer")):(h.A.setCursor(e.map,this.previousCursor_),this.previousCursor_=!1)}};const l=c},54158:(e,t,s)=>{s.d(t,{A:()=>p});var i=s(6292),r=s(29276),n=s(953),o=s(54602),a=s(13628),h=s(27733),c=s(82986),l=s(44294),d=s(86717),u=s(11217),_=s(13039),g=(s(81502),s(16452)),f=class extends i.Ay{constructor(e){e||(e={}),super({handleEvent:function(e){switch(e.type){case"singleclick":return this.handleDownEvent(e);case"pointermove":return this.handleMoveEvent(e);default:return!0}}}),this.snapDistance_=e.snapDistance||25,this.tolerance_=e.tolerance||1e-10,this.cursor_=e.cursor,this.setSources(e.sources),e.features&&(this.sources_||(this.sources_=[]),this.sources_.push(new o["default"]({features:e.features}))),this.filterSplit_=e.filter||function(){return!0};var t=[255,255,255,1],s=[0,153,255,1],i=3,l=new a.A({color:"rgba(255,255,255,0.4)"}),d=new n.A({color:"#3399CC",width:1.25}),u=[new r["default"]({image:new h.A({fill:l,stroke:d,radius:5}),fill:l,stroke:d})],_=[new r["default"]({stroke:new n.A({color:t,width:i+2})}),new r["default"]({image:new h.A({radius:2*i,fill:new a.A({color:s}),stroke:new n.A({color:t,width:i/2})}),stroke:new n.A({color:s,width:i})})];e.sketchStyle&&(u=e.sketchStyle instanceof Array?e.sketchStyle:[e.sketchStyle]),e.featureStyle&&(_=e.featureStyle instanceof Array?e.featureStyle:[e.featureStyle]),this.overlayLayer_=new c["default"]({source:new o["default"]({useSpatialIndex:!1}),name:"Split overlay",displayInLayerSwitcher:!1,style:function(e){return e._sketch_?u:_}})}setMap(e){this.getMap()&&this.getMap().removeLayer(this.overlayLayer_),super.setMap(e),this.overlayLayer_.setMap(e)}getSources(){if(!this.sources_&&this.getMap()){var e=[],t=function(s){s.forEach((function(s){s.getVisible()&&(s.getSource&&s.getSource()instanceof o["default"]?e.unshift(s.getSource()):s.getLayers&&t(s.getLayers()))}))};return t(this.getMap().getLayers()),e}return this.sources_||[]}setSources(e){this.sources_=!!e&&(e instanceof Array?e||!1:[e])}getClosestFeature(e){var t,s,i,r,n=this.snapDistance_+1;if(this.getSources().forEach((function(o){var a=o.getClosestFeatureToCoordinate(e.coordinate);if(a&&a.getGeometry().splitAt){var h=a.getGeometry().getClosestPoint(e.coordinate),c=new u.A([e.coordinate,h]),l=c.getLength()/e.frameState.viewState.resolution;lthis.snapDistance_)return!1;var o=this.getNearestCoord(i,s.getGeometry().getCoordinates()),a=this.getMap().getPixelFromCoordinate(o);return(0,_.of)(e.pixel,a)1){var n=[];for(i=0;i{s.d(t,{A:()=>v});var i=s(29276),r=s(953),n=s(54602),o=s(13628),a=s(82986),h=s(44294),c=s(86717),l=s(50071),d=s(21409),u=s(86936),_=s(34142),g=s(70915),f=s(11854),p=s(16452),y=class extends d.A{constructor(e){e=e||{},super({handleDownEvent:function(e){return t.handleDownEvent_(e)},handleDragEvent:function(e){return this.handleDragEvent_(e)},handleMoveEvent:function(e){return this.handleMoveEvent_(e)},handleUpEvent:function(e){return this.handleUpEvent_(e)}});var t=this;this.selection_=new l.A,this.handles_=new l.A,this.overlayLayer_=new a["default"]({source:new n["default"]({features:this.handles_,useSpatialIndex:!1,wrapX:!1}),name:"Transform overlay",displayInLayerSwitcher:!1,style:function(e){return t.style[(e.get("handle")||"default")+(e.get("constraint")||"")+(e.get("option")||"")]},updateWhileAnimating:!0,updateWhileInteracting:!0}),this.features_=e.features,"function"===typeof e.filter&&(this._filter=e.filter),this.layers_=e.layers?e.layers instanceof Array?e.layers:[e.layers]:null,this._handleEvent=e.condition||function(){return!0},this.addFn_=e.addCondition||function(){return!1},this.setPointRadius(e.pointRadius),this.set("translateFeature",!1!==e.translateFeature),this.set("translate",!1!==e.translate),this.set("translateBBox",!0===e.translateBBox),this.set("stretch",!1!==e.stretch),this.set("scale",!1!==e.scale),this.set("rotate",!1!==e.rotate),this.set("keepAspectRatio",e.keepAspectRatio||function(e){return e.originalEvent.shiftKey}),this.set("modifyCenter",e.modifyCenter||function(e){return e.originalEvent.metaKey||e.originalEvent.ctrlKey}),this.set("noFlip",e.noFlip||!1),this.set("selection",!1!==e.selection),this.set("hitTolerance",e.hitTolerance||0),this.set("enableRotatedTransform",e.enableRotatedTransform||!1),this.set("keepRectangle",e.keepRectangle||!1),this.set("buffer",e.buffer||0),this.on("propertychange",(function(){this.drawSketch_()})),this.setDefaultStyle()}setMap(e){var t=this.getMap();t&&(t.removeLayer(this.overlayLayer_),this.previousCursor_&&p.A.setCursor(t,this.previousCursor_),this.previousCursor_=void 0),super.setMap(e),this.overlayLayer_.setMap(e),null===e&&this.select(null),null!==e&&(this.isTouch=/touch/.test(e.getViewport().className),this.setDefaultStyle())}setActive(e){this.select(null),this.overlayLayer_&&this.overlayLayer_.setVisible(e),super.setActive(e)}setDefaultStyle(e){e=e||{};var t=e.pointStroke||new r.A({color:[255,0,0,1],width:1}),s=e.stroke||new r.A({color:[255,0,0,1],width:1,lineDash:[4,4]}),n=e.fill||new o.A({color:[255,0,0,.01]}),a=e.pointFill||new o.A({color:[255,255,255,.8]}),h=new u.A({fill:a,stroke:t,radius:this.isTouch?12:6,displacement:this.isTouch?[24,-24]:[12,-12],points:15});h.setDisplacement||(h.getAnchor()[0]=this.isTouch?-10:-5);var c=new u.A({fill:a,stroke:t,radius:this.isTouch?16:8,points:4,angle:Math.PI/4}),l=new u.A({fill:a,stroke:t,radius:this.isTouch?12:6,points:4,angle:Math.PI/4});function d(e,t,s){return[new i["default"]({image:e,stroke:t,fill:s})]}this.style={default:d(c,s,n),translate:d(c,t,a),rotate:d(h,t,a),rotate0:d(c,t,a),scale:d(c,t,a),scale1:d(c,t,a),scale2:d(c,t,a),scale3:d(c,t,a),scalev:d(l,t,a),scaleh1:d(l,t,a),scalev2:d(l,t,a),scaleh3:d(l,t,a)},this.drawSketch_()}setStyle(e,t){if(t){this.style[e]=t instanceof Array?t:[t];for(var s=0;s=0&&(this.ispt_&&this.get("translate")||this.get("translateFeature"))&&(t.handle="translate"),t.handle){this.mode_=t.handle,this.opt_=t.option,this.constraint_=t.constraint;var i=this.getMap().getView().getRotation();this.coordinate_=s.get("handle")?s.getGeometry().getCoordinates():e.coordinate,this.pixel_=this.getMap().getCoordinateFromPixel(this.coordinate_),this.geoms_=[],this.rotatedGeoms_=[];for(var r,n=(0,g.S5)(),o=(0,g.S5)(),a=0;r=this.selection_.item(a);a++)if(this.geoms_.push(r.getGeometry().clone()),n=(0,g.X$)(n,r.getGeometry().getExtent()),this.get("enableRotatedTransform")&&0!==i){var h=this.getGeometryRotateToZero_(r,!0);this.rotatedGeoms_.push(h),o=(0,g.X$)(o,h.getExtent())}if(this.extent_=(0,_.VY)(n).getCoordinates()[0],this.get("enableRotatedTransform")&&0!==i&&(this.rotatedExtent_=(0,_.VY)(o).getCoordinates()[0]),"rotate"===this.mode_){this.center_=this.getCenter()||(0,g.q1)(n);var c=e.map.getTargetElement();p.A.setCursor(c,this.Cursors.rotate0),this.previousCursor_=c.style.cursor}else this.center_=(0,g.q1)(n);return this.angle_=Math.atan2(this.center_[1]-e.coordinate[1],this.center_[0]-e.coordinate[0]),this.dispatchEvent({type:this.mode_+"start",feature:this.selection_.item(0),features:this.selection_,pixel:e.pixel,coordinate:e.coordinate}),!0}if(this.get("selection")){if(s){this.addFn_(e)||this.selection_.clear();var l=this.selection_.getArray().indexOf(s);l<0?this.selection_.push(s):this.selection_.removeAt(l)}else this.selection_.clear();return this.ispt_=1===this.selection_.getLength()&&"Point"==this.selection_.item(0).getGeometry().getType(),this.iscircle_=1===this.selection_.getLength()&&"Circle"==this.selection_.item(0).getGeometry().getType(),this.drawSketch_(),this.watchFeatures_(),this.dispatchEvent({type:"select",feature:s,features:this.selection_,pixel:e.pixel,coordinate:e.coordinate}),!1}}}getCenter(){return this.get("center")}setCenter(e){return this.set("center",e)}handleDragEvent_(e){if(this._handleEvent(e,this.features_)){var t,s,i,r,n=this.getMap().getView().getRotation(),o=[this.coordinate_[0],this.coordinate_[1]],a=[e.coordinate[0],e.coordinate[1]];switch(this.isUpdating_=!0,this.mode_){case"rotate":var c=Math.atan2(this.center_[1]-a[1],this.center_[0]-a[0]);if(!this.ispt)for(t=0,i;i=this.selection_.item(t);t++)r=this.geoms_[t].clone(),r.rotate(c-this.angle_,this.center_),"Circle"==r.getType()&&r.setCenterAndRadius(r.getCenter(),r.getRadius()),i.setGeometry(r);this.drawSketch_(!0),this.dispatchEvent({type:"rotating",feature:this.selection_.item(0),features:this.selection_,angle:c-this.angle_,pixel:e.pixel,coordinate:e.coordinate});break;case"translate":var l=a[0]-o[0],d=a[1]-o[1];for(t=0,i;i=this.selection_.item(t);t++)i.getGeometry().translate(l,d);this.handles_.forEach((function(e){e.getGeometry().translate(l,d)})),this.coordinate_=e.coordinate,this.dispatchEvent({type:"translating",feature:this.selection_.item(0),features:this.selection_,delta:[l,d],pixel:e.pixel,coordinate:e.coordinate});break;case"scale":var u=this.center_;if(this.get("modifyCenter")(e)){var _=this.extent_;this.get("enableRotatedTransform")&&0!==n&&(_=this.rotatedExtent_),u=_[(Number(this.opt_)+2)%4]}var g=1==this.geoms_.length&&this._isRectangle(this.geoms_[0]),f=this.constraint_,p=this.opt_,y=this.coordinate_,v=e.coordinate;if(this.get("enableRotatedTransform")&&0!==n){var m=new h["default"](this.coordinate_);m.rotate(-1*n,u),y=m.getCoordinates();var C=new h["default"](e.coordinate);C.rotate(-1*n,u),v=C.getCoordinates()}var x=(v[0]-u[0])/(y[0]-u[0]),w=(v[1]-u[1])/(y[1]-u[1]),E=[v[0]-y[0],v[1]-y[1]];if(this.get("enableRotatedTransform")&&0!==n){var k=new h["default"](u);k.rotate(-1*n,this.getMap().getView().getCenter()),u=k.getCoordinates()}for(this.get("noFlip")&&(x<0&&(x=-x),w<0&&(w=-w)),this.constraint_?"h"==this.constraint_?x=1:w=1:this.get("keepAspectRatio")(e)&&(x=w=Math.min(x,w)),t=0,i;i=this.selection_.item(t);t++)r=0!==n&&this.get("enableRotatedTransform")?this.rotatedGeoms_[t].clone():this.geoms_[t].clone(),r.applyTransform(function(e,t,i){if(i<2)return t;if(g){var n=[[6],[0,8],[2],[4]],o=[e[0],e[1]],a=[e[2],e[3]],h=[e[4],e[5]],c=[e[6],e[7]],l=[e[8],e[9]];if(f){var d=p%2===0?this._countVector(o,a):this._countVector(c,o),_=this._projectVectorOnVector(E,d),y=p+1{s.d(t,{A:()=>h});var i=s(50071),r=s(6292),n=s(54602),o=s(11854);(function(){var e=n["default"].prototype.clear;n["default"].prototype.clear=function(t){this.dispatchEvent({type:"clearstart"}),e.call(this,t),this.dispatchEvent({type:"clearend"})}})();var a=class extends r.Ay{constructor(e){e=e||{},super({handleEvent:function(){return!0}}),this._layers=e.layers,this._undoStack=new i.A,this._redoStack=new i.A,this._undo=[],this._redo=[],this._undoStack.on("add",function(e){void 0===e.element.level?(e.element.level=this._level,e.element.level||(e.element.view={center:this.getMap().getView().getCenter(),zoom:this.getMap().getView().getZoom()},this._undo.push(e.element))):e.element.level||this._undo.push(this._redo.shift()),e.element.level||this.dispatchEvent({type:"stack:add",action:e.element}),this._reduce()}.bind(this)),this._undoStack.on("remove",function(e){e.element.level||(this._doShift?this._undo.shift():this._undo.length&&this._redo.push(this._undo.pop()),this._doClear||this.dispatchEvent({type:"stack:remove",action:e.element,shift:this._doShift}))}.bind(this)),this._block=0,this._level=0,this._doShift=!1,this._record=!0,this._defs={}}define(e,t,s){this._defs[e]={undo:t,redo:s}}length(e){return"redo"===e?this._redo.length:this._undo.length}setMaxLength(e){e=parseInt(e),e&&e<0&&(e=0),this.set("maxLength",e),this._reduce()}size(e){return"redo"===e?this._redoStack.getLength():this._undoStack.getLength()}setMaxSize(e){e=parseInt(e),e&&e<0&&(e=0),this.set("maxSize",e),this._reduce()}_reduce(){if(this.get("maxLength"))while(this.length()>this.get("maxLength"))this.shift();if(this.get("maxSize"))while(this.length()>1&&this.size()>this.get("maxSize"))this.shift()}getStack(e){return"redo"===e?this._redo:this._undo}push(e,t,s){return this._defs[e]?(this._undoStack.push({type:e,name:s,custom:!0,prop:t}),!0):(console.warn('[UndoRedoInteraction]: "'+e+'" is not defined.'),!1)}shift(){this._doShift=!0;var e=this._undoStack.removeAt(0);if(this._doShift=!1,"blockstart"===e.type){e=this._undoStack.item(0);while(this._undoStack.getLength()&&e.level>0)this._undoStack.removeAt(0),e=this._undoStack.item(0)}}setActive(e){super.setActive(e),this._record=e}setMap(e){this._mapListener&&this._mapListener.forEach((function(e){(0,o.e)(e)})),this._mapListener=[],super.setMap(e),e&&(this._mapListener.push(e.on("undoblockstart",this.blockStart.bind(this))),this._mapListener.push(e.on("undoblockend",this.blockEnd.bind(this)))),this._watchSources(),this._watchInteractions()}_watchSources(){var e=this.getMap();this._sourceListener&&this._sourceListener.forEach((function(e){(0,o.e)(e)})),this._sourceListener=[];var t=this;function s(e,i){return i||(i=[]),e.forEach((function(e){e.getSource&&e.getSource()instanceof n["default"]?(!t._layers||t._layers.indexOf(e)>=0)&&i.push(e):e.getLayers&&s(e.getLayers(),i)})),i}if(e){var i=s(e.getLayers());i.forEach(function(e){var t=e.getSource();this._sourceListener.push(t.on(["addfeature","removefeature"],this._onAddRemove.bind(this))),this._sourceListener.push(t.on("clearstart",function(){this.blockStart("clear")}.bind(this))),this._sourceListener.push(t.on("clearend",this.blockEnd.bind(this)))}.bind(this)),this._sourceListener.push(e.getLayers().on(["add","remove"],this._watchSources.bind(this)))}}_watchInteractions(){var e=this.getMap();this._interactionListener&&this._interactionListener.forEach((function(e){(0,o.e)(e)})),this._interactionListener=[],e&&(e.getInteractions().forEach(function(e){this._interactionListener.push(e.on(["setattributestart","modifystart","rotatestart","translatestart","scalestart","deletestart","deleteend","beforesplit","aftersplit"],this._onInteraction.bind(this)))}.bind(this)),this._interactionListener.push(e.getInteractions().on(["add","remove"],this._watchInteractions.bind(this))))}_onAddRemove(e){this._record&&(this._redoStack.clear(),this._redo.length=0,this._undoStack.push({type:e.type,source:e.target,feature:e.feature}))}_onInteraction(e){var t=this._onInteraction[e.type];t&&t.call(this,e)}blockStart(e){this._redoStack.clear(),this._redo.length=0,this._undoStack.push({type:"blockstart",name:e}),this._level++}blockEnd(){this._undoStack.push({type:"blockend"}),this._level--}_handleDo(e,t){if(this.getActive()){if(this._record=!1,e.custom)this._defs[e.type]?t?this._defs[e.type].undo(e.prop):this._defs[e.type].redo(e.prop):console.warn('[UndoRedoInteraction]: "'+e.type+'" is not defined.');else switch(e.type){case"addfeature":t?e.source.removeFeature(e.feature):e.source.addFeature(e.feature);break;case"removefeature":t?e.source.addFeature(e.feature):e.source.removeFeature(e.feature);break;case"changegeometry":var s=e.feature.getGeometry();e.feature.setGeometry(e.oldGeom),e.oldGeom=s;break;case"changeattribute":var i=e.newProperties,r=e.oldProperties;for(var n in r)void 0===r?e.feature.unset(n):e.feature.set(n,r[n]);e.oldProperties=i,e.newProperties=r;break;case"blockstart":this._block+=t?-1:1;break;case"blockend":this._block+=t?1:-1;break;default:console.warn('[UndoRedoInteraction]: "'+e.type+'" is not defined.')}this._block<0&&(this._block=0),this._block&&(t?this.undo():this.redo()),this._record=!0,this.dispatchEvent({type:t?"undo":"redo",action:e})}}undo(){var e=this._undoStack.item(this._undoStack.getLength()-1);e&&(this._redoStack.push(e),this._undoStack.pop(),this._handleDo(e,!0))}redo(){var e=this._redoStack.item(this._redoStack.getLength()-1);e&&(this._undoStack.push(e),this._redoStack.pop(),this._handleDo(e,!1))}clear(){this._doClear=!0,this._undo.length=this._redo.length=0,this._undoStack.clear(),this._redoStack.clear(),this._doClear=!1,this.dispatchEvent({type:"stack:clear"})}hasUndo(){return this._undoStack.getLength()}hasRedo(){return this._redoStack.getLength()}};a.prototype._onInteraction.setattributestart=function(e){this.blockStart(e.target.get("name")||"setattribute");var t=Object.assign({},e.properties);e.features.forEach(function(e){var s={};for(var i in t)s[i]=e.get(i);this._undoStack.push({type:"changeattribute",feature:e,newProperties:t,oldProperties:s})}.bind(this)),this.blockEnd()},a.prototype._onInteraction.rotatestart=a.prototype._onInteraction.translatestart=a.prototype._onInteraction.scalestart=a.prototype._onInteraction.modifystart=function(e){this.blockStart(e.type.replace(/start$/,"")),e.features.forEach(function(e){this._undoStack.push({type:"changegeometry",feature:e,oldGeom:e.getGeometry().clone()})}.bind(this)),this.blockEnd()},a.prototype._onInteraction.beforesplit=function(){var e=this._undoStack.getLength();e>2&&"blockend"===this._undoStack.item(e-1).type&&"changegeometry"===this._undoStack.item(e-2).type?this._undoStack.pop():this.blockStart("split")},a.prototype._onInteraction.deletestart=function(){this.blockStart("delete")},a.prototype._onInteraction.aftersplit=a.prototype._onInteraction.deleteend=a.prototype.blockEnd;const h=a},25937:(e,t,s)=>{s.d(t,{A:()=>h});var i,r=s(29276),n=s(27733),o=s(953),a=s(13628);(function(){var e=[255,255,255,1],t=[0,153,255,1],s=3,h=[new r["default"]({stroke:new o.A({color:e,width:s+2})}),new r["default"]({image:new n.A({radius:2*s,fill:new a.A({color:t}),stroke:new o.A({color:e,width:s/2})}),stroke:new o.A({color:t,width:s}),fill:new a.A({color:[255,255,255,.5]})})];i=function(e){if(!0===e)return h;e=e||{};var t=new a.A({color:e.fillColor||"rgba(255,255,255,0.4)"}),s=new o.A({color:e.color||"#3399CC",width:1.25}),i=new r["default"]({image:new n.A({fill:t,stroke:s,radius:5}),fill:t,stroke:s});return[i]}})();const h=i},94974:(e,t,s)=>{s.d(t,{A:()=>h});var i=s(62096),r=s(70915),n=s(92497),o=s(87622);class a extends i.Ay{constructor(e,t,s){super(),void 0!==s&&void 0===t?this.setFlatCoordinates(s,e):(t=t||0,this.setCenterAndRadius(e,t,s))}clone(){const e=new a(this.flatCoordinates.slice(),void 0,this.layout);return e.applyProperties(this),e}closestPointXY(e,t,s,i){const r=this.flatCoordinates,n=e-r[0],o=t-r[1],a=n*n+o*o;if(a=t[0]||(e[1]<=t[1]&&e[3]>=t[1]||(0,r.sB)(e,this.intersectsCoordinate.bind(this)))}return!1}setCenter(e){const t=this.stride,s=this.flatCoordinates[t]-this.flatCoordinates[0],i=e.slice();i[t]=i[0]+s;for(let r=1;r{s.d(t,{Ay:()=>H});var i=s(94974),r=s(1685),n=s(6837),o=s(86717),a=s(34338),h=s(82187),c=s(11217),l=s(10277),d=s(73445),u=s(96702),_=s(30503),g=s(2871),f=s(44294),p=s(21409),y=s(34142),v=s(82986),m=s(54602),C=s(74238),x=s(58704),w=s(70915),E=s(61597),k=s(29276),A=s(6933),S=s(89718),P=s(62096);const b={DRAWSTART:"drawstart",DRAWEND:"drawend",DRAWABORT:"drawabort"};class T extends r.Ay{constructor(e,t){super(e),this.feature=t}}function M(e,t){const s=[];for(let i=0;i=s?e[t-s]:e[t]}function G(e,t,s){let i,r;to){const t=U(e,i),s=U(e,r);return F(t,s)}let a=0;if(ie.startIndex?ie.startIndex&&(i-=s.length)),h=i,a=d)}const c=t.targets[a];let l=c.ring;if(t.targetIndex===a&&l){const e=U(c.coordinates,h),r=s.getPixelFromCoordinate(e);(0,A.Io)(r,t.startPx)>i&&(l=!1)}if(l){const e=c.coordinates,t=e.length,s=c.startIndex,i=h;if(s=s?i-=s:i<0&&(i+=s);let n=i+1;n>=s&&(n-=s);const o=e[i],a=o[0],h=o[1],c=e[n],l=c[0]-a,d=c[1]-h;return[a+l*r,h+d*r]}class q extends p.A{constructor(e){const t=e;t.stopDown||(t.stopDown=C.W8),super(t),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=e.source?e.source:null,this.features_=e.features?e.features:null,this.snapTolerance_=e.snapTolerance?e.snapTolerance:12,this.type_=e.type,this.mode_=K(this.type_),this.stopClick_=!!e.stopClick,this.minPoints_=e.minPoints?e.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:e.maxPoints?e.maxPoints:1/0,this.finishCondition_=e.finishCondition?e.finishCondition:C.rT,this.geometryLayout_=e.geometryLayout?e.geometryLayout:"XY";let s=e.geometryFunction;if(!s){const e=this.mode_;if("Circle"===e)s=function(e,t,s){const r=t||new i.A([NaN,NaN]),n=(0,S.fromUserCoordinate)(e[0],s),o=(0,A.hG)(n,(0,S.fromUserCoordinate)(e[e.length-1],s));r.setCenterAndRadius(n,Math.sqrt(o),this.geometryLayout_);const a=(0,S.getUserProjection)();return a&&r.transform(s,a),r};else{let t;"Point"===e?t=f["default"]:"LineString"===e?t=c.A:"Polygon"===e&&(t=y.Ay),s=function(s,i,r){return i?"Polygon"===e?s[0].length?i.setCoordinates([s[0].concat([s[0][0]])],this.geometryLayout_):i.setCoordinates([],this.geometryLayout_):i.setCoordinates(s,this.geometryLayout_):i=new t(s,this.geometryLayout_),i}}}this.geometryFunction_=s,this.dragVertexDelay_=void 0!==e.dragVertexDelay?e.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=e.clickTolerance?e.clickTolerance*e.clickTolerance:36,this.overlay_=new v["default"]({source:new m["default"]({useSpatialIndex:!1,wrapX:!!e.wrapX&&e.wrapX}),style:e.style?e.style:X(),updateWhileInteracting:!0}),this.geometryName_=e.geometryName,this.condition_=e.condition?e.condition:x.TS,this.freehandCondition_,e.freehand?this.freehandCondition_=x.Gk:this.freehandCondition_=e.freehandCondition?e.freehandCondition:x.Kg,this.traceCondition_,this.setTrace(e.trace||!1),this.traceState_={active:!1},this.traceSource_=e.traceSource||e.source||null,this.addChangeListener(h.A.ACTIVE,this.updateState_)}setTrace(e){let t;t=e?!0===e?x.Gk:e:x.Zm,this.traceCondition_=t}setMap(e){super.setMap(e),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(e){e.originalEvent.type===n.A.CONTEXTMENU&&e.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(e);let t=e.type===d.A.POINTERMOVE,s=!0;if(!this.freehand_&&this.lastDragTime_&&e.type===d.A.POINTERDRAG){const s=Date.now();s-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,t=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&e.type===d.A.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e.coordinate),s=!1):this.freehand_&&e.type===d.A.POINTERDOWN?s=!1:t&&this.getPointerCount()<2?(s=e.type===d.A.POINTERMOVE,s&&this.freehand_?(this.handlePointerMove_(e),this.shouldHandle_&&e.originalEvent.preventDefault()):("mouse"===e.originalEvent.pointerType||e.type===d.A.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e)):e.type===d.A.DBLCLICK&&(s=!1),super.handleEvent(e)&&s}handleDownEvent(e){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=e.pixel,this.finishCoordinate_||this.startDrawing_(e.coordinate),!0):this.condition_(e)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout((()=>{this.handlePointerMove_(new l.A(d.A.POINTERMOVE,e.map,e.originalEvent,!1,e.frameState))}),this.dragVertexDelay_),this.downPx_=e.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(e){if(!this.traceSource_||!this.traceCondition_(e))return;if(this.traceState_.active)return void this.deactivateTrace_();const t=this.getMap(),s=t.getCoordinateFromPixel([e.pixel[0]-this.snapTolerance_,e.pixel[1]+this.snapTolerance_]),i=t.getCoordinateFromPixel([e.pixel[0]+this.snapTolerance_,e.pixel[1]-this.snapTolerance_]),r=(0,w.Tr)([s,i]),n=this.traceSource_.getFeaturesInExtent(r);if(0===n.length)return;const o=M(e.coordinate,n);o.length&&(this.traceState_={active:!0,startPx:e.pixel.slice(),targets:o,targetIndex:-1})}addOrRemoveTracedCoordinates_(e,t){const s=e.startIndex<=e.endIndex,i=e.startIndex<=t;s===i?s&&t>e.endIndex||!s&&te.endIndex)&&this.removeTracedCoordinates_(t,e.endIndex):(this.removeTracedCoordinates_(e.startIndex,e.endIndex),this.addTracedCoordinates_(e,e.startIndex,t))}removeTracedCoordinates_(e,t){if(e===t)return;let s=0;if(e0&&this.removeLastPoints_(s)}addTracedCoordinates_(e,t,s){if(t===s)return;const i=[];if(t=n;--t)i.push(L(e.coordinates,t))}i.length&&this.appendCoordinates(i)}updateTrace_(e){const t=this.traceState_;if(!t.active)return;if(-1===t.targetIndex&&(0,A.Io)(t.startPx,e.pixel)this.squaredClickTolerance_:n<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(e),this.modifyDrawing_(e.coordinate)):this.createOrUpdateSketchPoint_(e.coordinate.slice())}atFinish_(e,t){let s=!1;if(this.sketchFeature_){let i=!1,r=[this.finishCoordinate_];const n=this.mode_;if("Point"===n)s=!0;else if("Circle"===n)s=2===this.sketchCoords_.length;else if("LineString"===n)i=!t&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===n){const e=this.sketchCoords_;i=e[0].length>this.minPoints_,r=[e[0][0],e[0][e[0].length-2]],r=t?[e[0][0]]:[e[0][0],e[0][e[0].length-2]]}if(i){const t=this.getMap();for(let i=0,n=r.length;i=this.maxPoints_&&(this.freehand_?r.pop():i=!0),r.push(e.slice()),this.geometryFunction_(r,t,s)):"Polygon"===n&&(r=this.sketchCoords_[0],r.length>=this.maxPoints_&&(this.freehand_?r.pop():i=!0),r.push(e.slice()),i&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,t,s)),this.createOrUpdateSketchPoint_(e.slice()),this.updateSketchFeatures_(),i?this.finishDrawing():this.sketchFeature_}removeLastPoints_(e){if(!this.sketchFeature_)return;const t=this.sketchFeature_.getGeometry(),s=this.getMap().getView().getProjection(),i=this.mode_;for(let r=0;r=2){this.finishCoordinate_=e[e.length-2].slice();const t=this.finishCoordinate_.slice();e[e.length-1]=t,this.createOrUpdateSketchPoint_(t)}this.geometryFunction_(e,t,s),"Polygon"===t.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(t)}else if("Polygon"===i){e=this.sketchCoords_[0],e.splice(-2,1);const i=this.sketchLine_.getGeometry();if(e.length>=2){const t=e[e.length-2].slice();e[e.length-1]=t,this.createOrUpdateSketchPoint_(t)}i.setCoordinates(e),this.geometryFunction_(this.sketchCoords_,t,s)}if(1===e.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const e=this.abortDrawing_();if(!e)return null;let t=this.sketchCoords_;const s=e.getGeometry(),i=this.getMap().getView().getProjection();return"LineString"===this.mode_?(t.pop(),this.geometryFunction_(t,s,i)):"Polygon"===this.mode_&&(t[0].pop(),this.geometryFunction_(t,s,i),t=s.getCoordinates()),"MultiPoint"===this.type_?e.setGeometry(new _.A([t])):"MultiLineString"===this.type_?e.setGeometry(new u.A([t])):"MultiPolygon"===this.type_&&e.setGeometry(new g.A([t])),this.dispatchEvent(new T(b.DRAWEND,e)),this.features_&&this.features_.push(e),this.source_&&this.source_.addFeature(e),e}abortDrawing_(){this.finishCoordinate_=null;const e=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),e}abortDrawing(){const e=this.abortDrawing_();e&&this.dispatchEvent(new T(b.DRAWABORT,e))}appendCoordinates(e){const t=this.mode_,s=!this.sketchFeature_;let i;if(s&&this.startDrawing_(e[0]),"LineString"===t||"Circle"===t)i=this.sketchCoords_;else{if("Polygon"!==t)return;i=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}s&&i.shift(),i.pop();for(let n=0;n{s.d(t,{A:()=>k});var i=s(1685),r=s(86717),n=s(73445),o=s(44294),a=s(21409),h=s(82986),c=s(54602),l=s(58704),d=s(70915),u=s(6933),_=s(29276),g=s(34142),f=s(89718);const p={EXTENTCHANGED:"extentchanged"};class y extends i.Ay{constructor(e){super(p.EXTENTCHANGED),this.extent=e}}class v extends a.A{constructor(e){e=e||{},super(e),this.on,this.once,this.un,this.condition_=e.condition?e.condition:l.Gk,this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new h["default"]({source:new c["default"]({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:m(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new h["default"]({source:new c["default"]({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:C(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}snapToVertex_(e,t){const s=t.getCoordinateFromPixelInternal(e),i=function(e,t){return(0,u.$x)(s,e)-(0,u.$x)(s,t)},r=this.getExtentInternal();if(r){const n=E(r);n.sort(i);const o=n[0];let a=(0,u.sG)(s,o);const h=t.getPixelFromCoordinateInternal(a);if((0,u.Io)(e,h)<=this.pixelTolerance_){const e=t.getPixelFromCoordinateInternal(o[0]),s=t.getPixelFromCoordinateInternal(o[1]),i=(0,u.hG)(h,e),r=(0,u.hG)(h,s),n=Math.sqrt(Math.min(i,r));return this.snappedToVertex_=n<=this.pixelTolerance_,this.snappedToVertex_&&(a=i>r?o[1]:o[0]),a}}return null}handlePointerMove_(e){const t=e.pixel,s=e.map;let i=this.snapToVertex_(t,s);i||(i=s.getCoordinateFromPixelInternal(t)),this.createOrUpdatePointerFeature_(i)}createOrUpdateExtentFeature_(e){let t=this.extentFeature_;return t?e?t.setGeometry((0,g.VY)(e)):t.setGeometry(void 0):(t=e?new r["default"]((0,g.VY)(e)):new r["default"]({}),this.extentFeature_=t,this.extentOverlay_.getSource().addFeature(t)),t}createOrUpdatePointerFeature_(e){let t=this.vertexFeature_;if(t){const s=t.getGeometry();s.setCoordinates(e)}else t=new r["default"](new o["default"](e)),this.vertexFeature_=t,this.vertexOverlay_.getSource().addFeature(t);return t}handleEvent(e){return!e.originalEvent||!this.condition_(e)||(e.type!=n.A.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),super.handleEvent(e),!1)}handleDownEvent(e){const t=e.pixel,s=e.map,i=this.getExtentInternal();let r=this.snapToVertex_(t,s);const n=function(e){let t=null,s=null;return e[0]==i[0]?t=i[2]:e[0]==i[2]&&(t=i[0]),e[1]==i[1]?s=i[3]:e[1]==i[3]&&(s=i[1]),null!==t&&null!==s?[t,s]:null};if(r&&i){const e=r[0]==i[0]||r[0]==i[2]?r[0]:null,t=r[1]==i[1]||r[1]==i[3]?r[1]:null;null!==e&&null!==t?this.pointerHandler_=x(n(r)):null!==e?this.pointerHandler_=w(n([e,i[1]]),n([e,i[3]])):null!==t&&(this.pointerHandler_=w(n([i[0],t]),n([i[2],t])))}else r=s.getCoordinateFromPixelInternal(t),this.setExtent([r[0],r[1],r[0],r[1]]),this.pointerHandler_=x(r);return!0}handleDragEvent(e){if(this.pointerHandler_){const t=e.coordinate;this.setExtent(this.pointerHandler_(t)),this.createOrUpdatePointerFeature_(t)}}handleUpEvent(e){this.pointerHandler_=null;const t=this.getExtentInternal();return t&&0!==(0,d.UG)(t)||this.setExtent(null),!1}setMap(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),super.setMap(e)}getExtent(){return(0,f.toUserExtent)(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(e){this.extent_=e||null,this.createOrUpdateExtentFeature_(e),this.dispatchEvent(new y(this.extent_))}}function m(){const e=(0,_.createEditingStyle)();return function(t,s){return e["Polygon"]}}function C(){const e=(0,_.createEditingStyle)();return function(t,s){return e["Point"]}}function x(e){return function(t){return(0,d.Tr)([e,t])}}function w(e,t){return e[0]==t[0]?function(s){return(0,d.Tr)([e,[s[0],t[1]]])}:e[1]==t[1]?function(s){return(0,d.Tr)([e,[t[0],s[1]]])}:null}function E(e){return[[[e[0],e[1]],[e[0],e[3]]],[[e[0],e[3]],[e[2],e[3]]],[[e[2],e[3]],[e[2],e[1]]],[[e[2],e[1]],[e[0],e[1]]]]}const k=v},78983:(e,t,s)=>{s.d(t,{A:()=>x});var i=s(32135),r=s(6837),n=s(21409),o=s(95902),a=s(88280),h=s(74238),c=s(1685);const l={SNAP:"snap"};class d extends c.Ay{constructor(e,t){super(e),this.vertex=t.vertex,this.vertexPixel=t.vertexPixel,this.feature=t.feature,this.segment=t.segment}}var u=s(70915),_=s(6933),g=s(34142),f=s(89718),p=s(4087),y=s(9438);function v(e){return e.feature?e.feature:e.element?e.element:null}const m=[];class C extends n.A{constructor(e){e=e||{};const t=e;t.handleDownEvent||(t.handleDownEvent=h.rT),t.stopDown||(t.stopDown=h.W8),super(t),this.on,this.once,this.un,this.source_=e.source?e.source:null,this.vertex_=void 0===e.vertex||e.vertex,this.edge_=void 0===e.edge||e.edge,this.features_=e.features?e.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.rBush_=new o.A,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(e,t){t=void 0===t||t;const s=(0,p.v6)(e),i=e.getGeometry();if(i){const t=this.GEOMETRY_SEGMENTERS_[i.getType()];if(t){this.indexedFeaturesExtents_[s]=i.getExtent((0,u.S5)());const r=[];if(t(r,i),1===r.length)this.rBush_.insert((0,u.Tr)(r[0]),{feature:e,segment:r[0]});else if(r.length>1){const t=r.map((e=>(0,u.Tr)(e))),s=r.map((t=>({feature:e,segment:t})));this.rBush_.load(t,s)}}}t&&(this.featureChangeListenerKeys_[s]=(0,y.KT)(e,r.A.CHANGE,this.handleFeatureChange_,this))}getFeatures_(){let e;return this.features_?e=this.features_:this.source_&&(e=this.source_.getFeatures()),e}handleEvent(e){const t=this.snapTo(e.pixel,e.coordinate,e.map);return t&&(e.coordinate=t.vertex.slice(0,2),e.pixel=t.vertexPixel,this.dispatchEvent(new d(l.SNAP,{vertex:e.coordinate,vertexPixel:e.pixel,feature:t.feature,segment:t.segment}))),super.handleEvent(e)}handleFeatureAdd_(e){const t=v(e);t&&this.addFeature(t)}handleFeatureRemove_(e){const t=v(e);t&&this.removeFeature(t)}handleFeatureChange_(e){const t=e.target;if(this.handlingDownUpSequence){const e=(0,p.v6)(t);e in this.pendingFeatures_||(this.pendingFeatures_[e]=t)}else this.updateFeature_(t)}handleUpEvent(e){const t=Object.values(this.pendingFeatures_);return t.length&&(t.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(e,t){const s=void 0===t||t,i=(0,p.v6)(e),r=this.indexedFeaturesExtents_[i];if(r){const t=this.rBush_,s=[];t.forEachInExtent(r,(function(t){e===t.feature&&s.push(t)}));for(let e=s.length-1;e>=0;--e)t.remove(s[e])}s&&((0,y.JH)(this.featureChangeListenerKeys_[i]),delete this.featureChangeListenerKeys_[i])}setMap(e){const t=this.getMap(),s=this.featuresListenerKeys_,r=this.getFeatures_();t&&(s.forEach(y.JH),s.length=0,this.rBush_.clear(),Object.values(this.featureChangeListenerKeys_).forEach(y.JH),this.featureChangeListenerKeys_={}),super.setMap(e),e&&(this.features_?s.push((0,y.KT)(this.features_,i.A.ADD,this.handleFeatureAdd_,this),(0,y.KT)(this.features_,i.A.REMOVE,this.handleFeatureRemove_,this)):this.source_&&s.push((0,y.KT)(this.source_,a.A.ADDFEATURE,this.handleFeatureAdd_,this),(0,y.KT)(this.source_,a.A.REMOVEFEATURE,this.handleFeatureRemove_,this)),r.forEach((e=>this.addFeature(e))))}snapTo(e,t,s){const i=s.getView().getProjection(),r=(0,f.fromUserCoordinate)(t,i),n=(0,f.toUserExtent)((0,u.r)((0,u.Tr)([r]),s.getView().getResolution()*this.pixelTolerance_),i),o=this.rBush_.getInExtent(n),a=o.length;if(0===a)return null;let h,c,l=1/0,d=null;const g=this.pixelTolerance_*this.pixelTolerance_,p=()=>{if(h){const t=s.getPixelFromCoordinate(h),i=(0,_.hG)(e,t);if(i<=g)return{vertex:h,vertexPixel:[Math.round(t[0]),Math.round(t[1])],feature:c,segment:d}}return null};if(this.vertex_){for(let t=0;t{const s=(0,f.fromUserCoordinate)(t,i),n=(0,_.hG)(r,s);n{e.push([t])}))}segmentMultiPolygonGeometry_(e,t){const s=t.getCoordinates();for(let i=0,r=s.length;i} coords\r\n * @param {number} offset\r\n * @return {Array} resulting coord\r\n * @see http://stackoverflow.com/a/11970006/796832\r\n * @see https://drive.google.com/viewerng/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxqa2dhZGdldHN0b3JlfGd4OjQ4MzI5M2Y0MjNmNzI2MjY\r\n */\r\nvar ol_coordinate_offsetCoords = function (coords, offset) {\r\n var path = [];\r\n var N = coords.length-1;\r\n var max = N;\r\n var mi, mi1, li, li1, ri, ri1, si, si1, Xi1, Yi1;\r\n var p0, p1, p2;\r\n var isClosed = ol_coordinate_equal(coords[0],coords[N]);\r\n if (!isClosed) {\r\n p0 = coords[0];\r\n p1 = coords[1];\r\n p2 = [\r\n p0[0] + (p1[1] - p0[1]) / ol_coordinate_dist2d(p0,p1) *offset,\r\n p0[1] - (p1[0] - p0[0]) / ol_coordinate_dist2d(p0,p1) *offset\r\n ];\r\n path.push(p2);\r\n coords.push(coords[N])\r\n N++;\r\n max--;\r\n }\r\n for (var i = 0; i < max; i++) {\r\n p0 = coords[i];\r\n p1 = coords[(i+1) % N];\r\n p2 = coords[(i+2) % N];\r\n\r\n mi = (p1[1] - p0[1])/(p1[0] - p0[0]);\r\n mi1 = (p2[1] - p1[1])/(p2[0] - p1[0]);\r\n // Prevent alignements\r\n if (Math.abs(mi-mi1) > 1e-10) {\r\n li = Math.sqrt((p1[0] - p0[0])*(p1[0] - p0[0])+(p1[1] - p0[1])*(p1[1] - p0[1]));\r\n li1 = Math.sqrt((p2[0] - p1[0])*(p2[0] - p1[0])+(p2[1] - p1[1])*(p2[1] - p1[1]));\r\n ri = p0[0] + offset*(p1[1] - p0[1])/li;\r\n ri1 = p1[0] + offset*(p2[1] - p1[1])/li1;\r\n si = p0[1] - offset*(p1[0] - p0[0])/li;\r\n si1 = p1[1] - offset*(p2[0] - p1[0])/li1;\r\n Xi1 = (mi1*ri1-mi*ri+si-si1) / (mi1-mi);\r\n Yi1 = (mi*mi1*(ri1-ri)+mi1*si-mi*si1) / (mi1-mi);\r\n\r\n // Correction for vertical lines\r\n if(p1[0] - p0[0] == 0) {\r\n Xi1 = p1[0] + offset*(p1[1] - p0[1])/Math.abs(p1[1] - p0[1]);\r\n Yi1 = mi1*Xi1 - mi1*ri1 + si1;\r\n }\r\n if (p2[0] - p1[0] == 0 ) {\r\n Xi1 = p2[0] + offset*(p2[1] - p1[1])/Math.abs(p2[1] - p1[1]);\r\n Yi1 = mi*Xi1 - mi*ri + si;\r\n }\r\n\r\n path.push([Xi1, Yi1]);\r\n }\r\n }\r\n if (isClosed) {\r\n path.push(path[0]);\r\n } else {\r\n coords.pop();\r\n p0 = coords[coords.length-1];\r\n p1 = coords[coords.length-2];\r\n p2 = [\r\n p0[0] - (p1[1] - p0[1]) / ol_coordinate_dist2d(p0,p1) *offset,\r\n p0[1] + (p1[0] - p0[0]) / ol_coordinate_dist2d(p0,p1) *offset\r\n ];\r\n path.push(p2);\r\n }\r\n return path;\r\n}\r\n\r\n/** Find the segment a point belongs to\r\n * @param {ol.Coordinate} pt\r\n * @param {Array} coords\r\n * @return {} the index (-1 if not found) and the segment\r\n */\r\nvar ol_coordinate_findSegment = function (pt, coords) {\r\n for (var i=0; i} geom\r\n * @param {number} y the y to split\r\n * @param {number} n contour index\r\n * @return {Array>}\r\n */\r\nvar ol_coordinate_splitH = function (geom, y, n) {\r\n var x, abs;\r\n var list = [];\r\n for (var i=0; iy || geom[i][1]>=y && geom[i+1][1]} d1\r\n * @param {Arrar} d2\r\n */\r\nvar ol_coordinate_getIntersectionPoint = function (d1, d2) {\r\n var d1x = d1[1][0] - d1[0][0];\r\n var d1y = d1[1][1] - d1[0][1];\r\n var d2x = d2[1][0] - d2[0][0];\r\n var d2y = d2[1][1] - d2[0][1];\r\n var det = d1x * d2y - d1y * d2x;\r\n if (det != 0) {\r\n var k = (d1x * d1[0][1] - d1x * d2[0][1] - d1y * d1[0][0] + d1y * d2[0][0]) / det;\r\n return [d2[0][0] + k*d2x, d2[0][1] + k*d2y];\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport { ol_coordinate_getIntersectionPoint }\r\n\r\nvar ol_extent_intersection;\r\n\r\n(function() {\r\n// Split at x\r\nfunction splitX(pts, x) {\r\n var pt;\r\n for (let i=pts.length-1; i>0; i--) {\r\n if ((pts[i][0]>x && pts[i-1][0]x)) {\r\n pt = [ x, (x - pts[i][0]) / (pts[i-1][0]-pts[i][0]) * (pts[i-1][1]-pts[i][1]) + pts[i][1]];\r\n pts.splice(i, 0, pt);\r\n }\r\n }\r\n}\r\n// Split at y\r\nfunction splitY(pts, y) {\r\n var pt;\r\n for (let i=pts.length-1; i>0; i--) {\r\n if ((pts[i][1]>y && pts[i-1][1]y)) {\r\n pt = [ (y - pts[i][1]) / (pts[i-1][1]-pts[i][1]) * (pts[i-1][0]-pts[i][0]) + pts[i][0], y];\r\n pts.splice(i, 0, pt);\r\n }\r\n }\r\n}\r\n\r\n/** Fast polygon intersection with an extent (used for area calculation)\r\n * @param {ol_extent_Extent} extent\r\n * @param {ol_geom_Polygon|ol_geom_MultiPolygon} polygon\r\n * @returns {ol_geom_Polygon|ol_geom_MultiPolygon|null} return null if not a polygon geometry\r\n */\r\nol_extent_intersection = function(extent, polygon) {\r\n var poly = (polygon.getType() === 'Polygon');\r\n if (!poly && polygon.getType() !== 'MultiPolygon') return null;\r\n var geom = polygon.getCoordinates();\r\n if (poly) geom = [geom];\r\n geom.forEach(function(g) {\r\n g.forEach(function(c) {\r\n splitX(c, extent[0]);\r\n splitX(c, extent[2]);\r\n splitY(c, extent[1]);\r\n splitY(c, extent[3]);\r\n });\r\n })\r\n // Snap geom to the extent \r\n geom.forEach(function(g) {\r\n g.forEach(function(c) {\r\n c.forEach(function(p) {\r\n if (p[0]extent[2]) p[0] = extent[2];\r\n if (p[1]extent[3]) p[1] = extent[3];\r\n })\r\n })\r\n })\r\n if (poly) {\r\n return new ol_geom_Polygon(geom[0]);\r\n } else {\r\n return new ol_geom_MultiPolygon(geom);\r\n }\r\n};\r\n})();\r\n\r\nexport { ol_extent_intersection }\r\nexport { ol_extent_intersection as extentIntersection }\r\n\r\n/** Add points along a segment\r\n * @param {ol_Coordinate} p1 \r\n * @param {ol_Coordinate} p2 \r\n * @param {number} d \r\n * @param {boolean} start include starting point, default true\r\n * @returns {Array}\r\n */\r\nvar ol_coordinate_sampleAt = function(p1, p2, d, start) {\r\n var pts = [];\r\n if (start!==false) pts.push(p1);\r\n var dl = ol_coordinate_dist2d(p1,p2);\r\n if (dl) {\r\n var nb = Math.round(dl/d);\r\n if (nb>1) {\r\n var dx = (p2[0]-p1[0]) / nb;\r\n var dy = (p2[1]-p1[1]) / nb;\r\n for (var i=1; i r) {\r\n hasout = true;\r\n l.push([\r\n c[0] + r / d * (p[0]-c[0]),\r\n c[1] + r / d * (p[1]-c[1])\r\n ]);\r\n } else {\r\n // hasin = true;\r\n l.push(p);\r\n }\r\n });\r\n })\r\n });\r\n if (!hasout) return geom;\r\n if (geom.getType() === 'Polygon') {\r\n return new ol_geom_Polygon(result[0]);\r\n } else {\r\n return new ol_geom_MultiPolygon(result);\r\n }\r\n }\r\n }\r\n } else {\r\n console.warn('[ol/geom/Circle~intersection] Unsupported geometry type: '+geom.getType());\r\n }\r\n return geom;\r\n};\r\n","import {ol_coordinate_equal} from \"./GeomUtils.js\";\r\nimport ol_geom_LineString from \"ol/geom/LineString.js\";\r\n\r\n/** Split a lineString by a point or a list of points\r\n *\tNB: points must be on the line, use getClosestPoint() to get one\r\n * @param {ol.Coordinate | Array} pt points to split the line\r\n * @param {Number} tol distance tolerance for 2 points to be equal\r\n */\r\nol_geom_LineString.prototype.splitAt = function(pt, tol) {\r\n var i;\r\n if (!pt) return [this];\r\n if (!tol) tol = 1e-10;\r\n // Test if list of points\r\n if (pt.length && pt[0].length) {\r\n var result = [this];\r\n for (i=0; i split\r\n if (split) {\r\n ci.push(pt);\r\n c.push (new ol_geom_LineString(ci));\r\n ci = [pt];\r\n }\r\n }\r\n ci.push(c0[i+1]);\r\n }\r\n if (ci.length>1) c.push (new ol_geom_LineString(ci));\r\n if (c.length) return c;\r\n else return [this];\r\n}\r\n\r\n// import('ol-ext/geom/LineStringSplitAt')","/*\tCopyright (c) 2018 Jean-Marc VIGLINO, \r\n\treleased under the CeCILL-B license (French BSD license)\r\n\t(http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_interaction_Select from 'ol/interaction/Select.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\n\r\n/** A Select interaction to delete features on click.\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires deletestart\r\n * @fires deleteend\r\n * @param {Object} options ol.interaction.Select options\r\n */\r\nvar ol_interaction_Delete = class olinteractionDelete extends ol_interaction_Select {\r\n constructor(options) {\r\n super(options);\r\n this.on('select', function (e) {\r\n this.getFeatures().clear();\r\n this.delete(e.selected);\r\n }.bind(this));\r\n }\r\n /** Get vector source of the map\r\n * @return {Array}\r\n */\r\n _getSources(layers) {\r\n if (!this.getMap())\r\n return [];\r\n if (!layers)\r\n layers = this.getMap().getLayers();\r\n var sources = [];\r\n layers.forEach(function (l) {\r\n // LayerGroup\r\n if (l.getLayers) {\r\n sources = sources.concat(this._getSources(l.getLayers()));\r\n } else {\r\n if (l.getSource && l.getSource() instanceof ol_source_Vector) {\r\n sources.push(l.getSource());\r\n }\r\n }\r\n }.bind(this));\r\n return sources;\r\n }\r\n /** Delete features: remove the features from the map (from all layers in the map)\r\n * @param {ol.Collection|Array} features The features to delete\r\n * @api\r\n */\r\n delete(features) {\r\n if (features && (features.length || features.getLength())) {\r\n this.dispatchEvent({ type: 'deletestart', features: features });\r\n var delFeatures = [];\r\n // Get the sources concerned\r\n this._getSources().forEach(function (source) {\r\n try {\r\n // Try to delete features in the source\r\n features.forEach(function (f) {\r\n source.removeFeature(f);\r\n delFeatures.push(f);\r\n });\r\n } catch (e) { /* ok */ }\r\n });\r\n this.dispatchEvent({ type: 'deleteend', features: delFeatures });\r\n }\r\n }\r\n}\r\n\r\nexport default ol_interaction_Delete","/*\tCopyright (c) 2017 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport ol_geom_MultiPolygon from 'ol/geom/MultiPolygon.js'\r\nimport ol_geom_LinearRing from 'ol/geom/LinearRing.js'\r\nimport ol_interaction_Draw from 'ol/interaction/Draw.js'\r\nimport ol_interaction_Select from 'ol/interaction/Select.js'\r\n\r\n/** Interaction to draw holes in a polygon.\r\n * It fires a drawstart, drawend event when drawing the hole\r\n * and a modifystart, modifyend event before and after inserting the hole in the feature geometry.\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires drawstart\r\n * @fires drawend\r\n * @fires modifystart\r\n * @fires modifyend\r\n * @param {olx.interaction.DrawHoleOptions} options extend olx.interaction.DrawOptions\r\n * \t@param {Array | function | undefined} options.layers A list of layers from which polygons should be selected. Alternatively, a filter function can be provided. default: all visible layers\r\n * \t@param {Array | ol.Collection | function | undefined} options.featureFilter An array or a collection of features the interaction applies on or a function that takes a feature and a layer and returns true if the feature is a candidate\r\n * \t@param { ol.style.Style | Array | StyleFunction | undefined }\tStyle for the selected features, default: default edit style\r\n * \t@param {function | undefined}\toptions.geometryFunction Draw interaction geometry function to customize the hole\r\n */\r\nvar ol_interaction_DrawHole = class olinteractionDrawHole extends ol_interaction_Draw {\r\n constructor(options) {\r\n options = options || {}\r\n // Geometry function that test points inside the current selection\r\n var _geometryFn = function(coordinates, geometry) {\r\n var coord = coordinates[0].pop()\r\n if (!this.getPolygon() || this.getPolygon().intersectsCoordinate(coord)) {\r\n this.lastOKCoord = [coord[0], coord[1]]\r\n }\r\n coordinates[0].push([this.lastOKCoord[0], this.lastOKCoord[1]])\r\n \r\n if (geometry) {\r\n geometry.setCoordinates([coordinates[0].concat([coordinates[0][0]])])\r\n } else {\r\n geometry = new ol_geom_Polygon(coordinates)\r\n }\r\n return geometry\r\n }\r\n var geomFn = options.geometryFunction\r\n if (geomFn) {\r\n options.geometryFunction = function (c, g, p) {\r\n g = _geometryFn.bind(this)(c, g)\r\n return geomFn.bind(this)(c, g, p)\r\n }\r\n } else {\r\n options.geometryFunction = _geometryFn\r\n }\r\n\r\n // Create draw interaction\r\n options.type = 'Polygon';\r\n super(options)\r\n \r\n // Select interaction for the current feature\r\n this._select = new ol_interaction_Select({ style: options.style })\r\n this._select.setActive(false)\r\n\r\n // Layer filter function\r\n if (options.layers) {\r\n if (typeof (options.layers) === 'function') {\r\n this.layers_ = options.layers\r\n } else if (options.layers.indexOf) {\r\n this.layers_ = function (l) {\r\n return (options.layers.indexOf(l) >= 0)\r\n }\r\n }\r\n }\r\n\r\n // Features to apply on \r\n if (typeof (options.featureFilter) === 'function') {\r\n this._features = options.featureFilter\r\n } else if (options.featureFilter) {\r\n var features = options.featureFilter\r\n this._features = function (f) {\r\n if (features.indexOf) {\r\n return !!features[features.indexOf(f)]\r\n } else {\r\n return !!features.item(features.getArray().indexOf(f))\r\n }\r\n }\r\n } else {\r\n this._features = function () { return true }\r\n }\r\n\r\n // Start drawing if inside a feature\r\n this.on('drawstart', this._startDrawing.bind(this))\r\n // End drawing add the hole to the current Polygon\r\n this.on('drawend', this._finishDrawing.bind(this))\r\n }\r\n\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n // Remove previous selection\r\n if (this.getMap()) this.getMap().removeInteraction(this._select)\r\n // Add new one\r\n if (map) map.addInteraction(this._select)\r\n super.setMap.call(this, map)\r\n }\r\n /**\r\n * Activate/deactivate the interaction\r\n * @param {boolean}\r\n * @api stable\r\n */\r\n setActive(b) {\r\n if (this._select) this._select.getFeatures().clear()\r\n super.setActive.call(this, b)\r\n }\r\n /**\r\n * Remove last point of the feature currently being drawn\r\n * (test if points to remove before).\r\n */\r\n removeLastPoint() {\r\n if (this._feature && this._feature.getGeometry().getCoordinates()[0].length > 2) {\r\n super.removeLastPoint.call(this)\r\n }\r\n }\r\n /**\r\n * Get the current polygon to hole\r\n * @return {ol.Feature}\r\n */\r\n getPolygon() {\r\n return this._polygon\r\n // return this._select.getFeatures().item(0).getGeometry();\r\n }\r\n /**\r\n * Get current feature to add a hole and start drawing\r\n * @param {ol_interaction_Draw.Event} e\r\n * @private\r\n */\r\n _startDrawing(e) {\r\n var map = this.getMap()\r\n this._feature = e.feature\r\n var coord = e.feature.getGeometry().getCoordinates()[0][0]\r\n this._current = null\r\n // Check object under the pointer\r\n map.forEachFeatureAtPixel(\r\n map.getPixelFromCoordinate(coord),\r\n function (feature, layer) {\r\n // Not yet found?\r\n if (!this._current && this._features(feature, layer)) {\r\n var poly = feature.getGeometry()\r\n if (poly.getType() === \"Polygon\"\r\n && poly.intersectsCoordinate(coord)) {\r\n this._polygonIndex = false\r\n this._polygon = poly\r\n this._current = feature\r\n } else if (poly.getType() === \"MultiPolygon\"\r\n && poly.intersectsCoordinate(coord)) {\r\n for (var i = 0, p; p = poly.getPolygon(i); i++) {\r\n if (p.intersectsCoordinate(coord)) {\r\n this._polygonIndex = i\r\n this._polygon = p\r\n this._current = feature\r\n break\r\n }\r\n }\r\n }\r\n }\r\n }.bind(this), {\r\n layerFilter: this.layers_\r\n }\r\n )\r\n this._select.getFeatures().clear()\r\n if (!this._current) {\r\n this.setActive(false)\r\n this.setActive(true)\r\n } else {\r\n this._select.getFeatures().push(this._current)\r\n }\r\n }\r\n /**\r\n * Stop drawing and add the sketch feature to the target feature.\r\n * @param {ol_interaction_Draw.Event} e\r\n * @private\r\n */\r\n _finishDrawing(e) {\r\n // The feature is the hole\r\n e.hole = e.feature\r\n // Get the current feature\r\n e.feature = this._select.getFeatures().item(0)\r\n this.dispatchEvent({ type: 'modifystart', features: [this._current] })\r\n // Create the hole\r\n var c = e.hole.getGeometry().getCoordinates()[0]\r\n if (c.length > 3) {\r\n if (this._polygonIndex !== false) {\r\n var geom = e.feature.getGeometry()\r\n var newGeom = new ol_geom_MultiPolygon([])\r\n for (var i = 0, pi; pi = geom.getPolygon(i); i++) {\r\n if (i === this._polygonIndex) {\r\n pi.appendLinearRing(new ol_geom_LinearRing(c))\r\n newGeom.appendPolygon(pi)\r\n } else {\r\n newGeom.appendPolygon(pi)\r\n }\r\n }\r\n e.feature.setGeometry(newGeom)\r\n } else {\r\n this.getPolygon().appendLinearRing(new ol_geom_LinearRing(c))\r\n }\r\n }\r\n this.dispatchEvent({ type: 'modifyend', features: [this._current] })\r\n // reset\r\n this._feature = null\r\n this._select.getFeatures().clear()\r\n }\r\n /**\r\n * Function that is called when a geometry's coordinates are updated.\r\n * @param {Array} coordinates\r\n * @param {ol_geom_Polygon} geometry\r\n * @return {ol_geom_Polygon}\r\n * @private\r\n */\r\n _geometryFn(coordinates, geometry) {\r\n var coord = coordinates[0].pop()\r\n if (!this.getPolygon() || this.getPolygon().intersectsCoordinate(coord)) {\r\n this.lastOKCoord = [coord[0], coord[1]]\r\n }\r\n coordinates[0].push([this.lastOKCoord[0], this.lastOKCoord[1]])\r\n\r\n if (geometry) {\r\n geometry.setCoordinates([coordinates[0].concat([coordinates[0][0]])])\r\n } else {\r\n geometry = new ol_geom_Polygon(coordinates)\r\n }\r\n return geometry\r\n }\r\n}\r\n\r\nexport default ol_interaction_DrawHole\r\n","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport ol_style_Style_defaultStyle from '../style/defaultStyle.js'\r\nimport ol_Collection from 'ol/Collection.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_geom_Circle from 'ol/geom/Circle.js'\r\nimport {fromCircle as ol_geom_Polygon_fromCircle} from 'ol/geom/Polygon.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\n\r\n/** Interaction rotate\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires drawstart, drawing, drawend, drawcancel\r\n * @param {olx.interaction.TransformOptions} options\r\n * @param {Array} options.source Destination source for the drawn features\r\n * @param {ol.Collection} options.features Destination collection for the drawn features \r\n * @param {ol.style.Style | Array. | ol.style.StyleFunction | undefined} options.style style for the sketch\r\n * @param {integer} options.sides number of sides, default 0 = circle\r\n * @param { ol.events.ConditionType | undefined } options.condition A function that takes an ol.MapBrowserEvent and returns a boolean that event should be handled. By default module:ol/events/condition.always.\r\n * @param { ol.events.ConditionType | undefined } options.squareCondition A function that takes an ol.MapBrowserEvent and returns a boolean to draw square features. Default test shift key\r\n * @param { ol.events.ConditionType | undefined } options.centerCondition A function that takes an ol.MapBrowserEvent and returns a boolean to draw centered features. Default check Ctrl key\r\n * @param { bool } options.canRotate Allow rotation when centered + square, default: true\r\n * @param { string } [options.geometryName=geometry] \r\n * @param { number } options.clickTolerance click tolerance on touch devices, default: 6\r\n * @param { number } options.maxCircleCoordinates Maximum number of point on a circle, default: 100\r\n */\r\nvar ol_interaction_DrawRegular = class olinteractionDrawRegular extends ol_interaction_Interaction {\r\n constructor(options) {\r\n options = options || {}\r\n \r\n super({\r\n handleEvent: function(e) { return self.handleEvent_(e) }\r\n })\r\n\r\n var self = this;\r\n\r\n this.squaredClickTolerance_ = options.clickTolerance ? options.clickTolerance * options.clickTolerance : 36\r\n this.maxCircleCoordinates_ = options.maxCircleCoordinates || 100\r\n\r\n // Collection of feature to transform \r\n this.features_ = options.features\r\n // List of layers to transform \r\n this.source_ = options.source\r\n // Square condition\r\n this.conditionFn_ = options.condition\r\n // Square condition\r\n this.squareFn_ = options.squareCondition\r\n // Centered condition\r\n this.centeredFn_ = options.centerCondition\r\n // Allow rotation when centered + square\r\n this.canRotate_ = (options.canRotate !== false)\r\n // Specify custom geometry name\r\n this.geometryName_ = options.geometryName || 'geometry'\r\n\r\n // Number of sides (default=0: circle)\r\n this.setSides(options.sides)\r\n\r\n // Style\r\n var defaultStyle = ol_style_Style_defaultStyle(true)\r\n\r\n // Create a new overlay layer for the sketch\r\n this.sketch_ = new ol_Collection()\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n features: this.sketch_,\r\n useSpatialIndex: false\r\n }),\r\n name: 'DrawRegular overlay',\r\n displayInLayerSwitcher: false,\r\n style: options.style || defaultStyle\r\n })\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this.getMap()) this.getMap().removeLayer(this.overlayLayer_)\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n }\r\n /**\r\n * Activate/deactivate the interaction\r\n * @param {boolean}\r\n * @api stable\r\n */\r\n setActive(b) {\r\n this.reset()\r\n super.setActive(b)\r\n }\r\n /**\r\n * Reset the interaction\r\n * @api stable\r\n */\r\n reset() {\r\n if (this.overlayLayer_) this.overlayLayer_.getSource().clear()\r\n this.started_ = false\r\n }\r\n /**\r\n * Set the number of sides.\r\n * @param {int} number of sides.\r\n * @api stable\r\n */\r\n setSides(nb) {\r\n nb = parseInt(nb)\r\n this.sides_ = nb > 2 ? nb : 0\r\n }\r\n /**\r\n * Allow rotation when centered + square\r\n * @param {bool}\r\n * @api stable\r\n */\r\n canRotate(b) {\r\n if (b === true || b === false)\r\n this.canRotate_ = b\r\n return this.canRotate_\r\n }\r\n /**\r\n * Get the number of sides.\r\n * @return {int} number of sides.\r\n * @api stable\r\n */\r\n getSides() {\r\n return this.sides_\r\n }\r\n /** Get geom of the current drawing\r\n * @return {ol.geom.Polygon | ol.geom.Point}\r\n */\r\n getGeom_() {\r\n this.overlayLayer_.getSource().clear()\r\n if (!this.center_)\r\n return false\r\n\r\n var g\r\n if (this.coord_) {\r\n var center = this.center_\r\n var coord = this.coord_\r\n\r\n // Specific case: circle\r\n var d, dmax, r, circle, centerPx\r\n if (!this.sides_ && this.square_ && !this.centered_) {\r\n center = [(coord[0] + center[0]) / 2, (coord[1] + center[1]) / 2]\r\n d = [coord[0] - center[0], coord[1] - center[1]]\r\n r = Math.sqrt(d[0] * d[0] + d[1] * d[1])\r\n circle = new ol_geom_Circle(center, r, 'XY')\r\n // Optimize points on the circle\r\n centerPx = this.getMap().getPixelFromCoordinate(center)\r\n dmax = Math.max(100, Math.abs(centerPx[0] - this.coordPx_[0]), Math.abs(centerPx[1] - this.coordPx_[1]))\r\n dmax = Math.min(this.maxCircleCoordinates_, Math.round(dmax / 3))\r\n return ol_geom_Polygon_fromCircle(circle, dmax, 0)\r\n } else {\r\n var hasrotation = this.canRotate_ && this.centered_ && this.square_\r\n d = [coord[0] - center[0], coord[1] - center[1]]\r\n if (this.square_ && !hasrotation) {\r\n //var d = [coord[0] - center[0], coord[1] - center[1]];\r\n var dm = Math.max(Math.abs(d[0]), Math.abs(d[1]))\r\n coord = [\r\n center[0] + (d[0] > 0 ? dm : -dm),\r\n center[1] + (d[1] > 0 ? dm : -dm)\r\n ]\r\n }\r\n r = Math.sqrt(d[0] * d[0] + d[1] * d[1])\r\n if (r > 0) {\r\n circle = new ol_geom_Circle(center, r, 'XY')\r\n var a\r\n if (hasrotation)\r\n a = Math.atan2(d[1], d[0])\r\n else\r\n a = this.startAngle[this.sides_] || this.startAngle['default']\r\n\r\n if (this.sides_) {\r\n g = ol_geom_Polygon_fromCircle(circle, this.sides_, a)\r\n } else {\r\n // Optimize points on the circle\r\n centerPx = this.getMap().getPixelFromCoordinate(this.center_)\r\n dmax = Math.max(100, Math.abs(centerPx[0] - this.coordPx_[0]), Math.abs(centerPx[1] - this.coordPx_[1]))\r\n dmax = Math.min(this.maxCircleCoordinates_, Math.round(dmax / (this.centered_ ? 3 : 5)))\r\n g = ol_geom_Polygon_fromCircle(circle, dmax, 0)\r\n }\r\n\r\n if (hasrotation)\r\n return g\r\n\r\n // Scale polygon to fit extent\r\n var ext = g.getExtent()\r\n if (!this.centered_)\r\n center = this.center_\r\n else\r\n center = [2 * this.center_[0] - this.coord_[0], 2 * this.center_[1] - this.coord_[1]]\r\n var scx = (center[0] - coord[0]) / (ext[0] - ext[2])\r\n var scy = (center[1] - coord[1]) / (ext[1] - ext[3])\r\n if (this.square_) {\r\n var sc = Math.min(Math.abs(scx), Math.abs(scy))\r\n scx = Math.sign(scx) * sc\r\n scy = Math.sign(scy) * sc\r\n }\r\n var t = [center[0] - ext[0] * scx, center[1] - ext[1] * scy]\r\n\r\n g.applyTransform(function (g1, g2, dim) {\r\n for (var i = 0; i < g1.length; i += dim) {\r\n g2[i] = g1[i] * scx + t[0]\r\n g2[i + 1] = g1[i + 1] * scy + t[1]\r\n }\r\n return g2\r\n })\r\n return g\r\n }\r\n }\r\n }\r\n\r\n // No geom => return a point\r\n return new ol_geom_Point(this.center_)\r\n }\r\n /** Draw sketch\r\n * @return {ol.Feature} The feature being drawn.\r\n */\r\n drawSketch_(evt) {\r\n this.overlayLayer_.getSource().clear()\r\n if (evt) {\r\n this.square_ = this.squareFn_ ? this.squareFn_(evt) : evt.originalEvent.shiftKey\r\n this.centered_ = this.centeredFn_ ? this.centeredFn_(evt) : evt.originalEvent.metaKey || evt.originalEvent.ctrlKey\r\n var g = this.getGeom_()\r\n if (g) {\r\n var f = this.feature_\r\n\r\n //f.setGeometry (g);\r\n if (g.getType() === 'Polygon')\r\n f.getGeometry().setCoordinates(g.getCoordinates())\r\n this.overlayLayer_.getSource().addFeature(f)\r\n if (this.coord_\r\n && this.square_\r\n && ((this.canRotate_ && this.centered_ && this.coord_) || (!this.sides_ && !this.centered_))) {\r\n this.overlayLayer_.getSource().addFeature(new ol_Feature(new ol_geom_LineString([this.center_, this.coord_])))\r\n }\r\n return f\r\n }\r\n }\r\n }\r\n /** Draw sketch (Point)\r\n */\r\n drawPoint_(pt, noclear) {\r\n if (!noclear)\r\n this.overlayLayer_.getSource().clear()\r\n this.overlayLayer_.getSource().addFeature(new ol_Feature(new ol_geom_Point(pt)))\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n */\r\n handleEvent_(evt) {\r\n var dx, dy\r\n // Event date time\r\n this._eventTime = new Date();\r\n\r\n switch (evt.type) {\r\n case \"pointerdown\": {\r\n if (this.conditionFn_ && !this.conditionFn_(evt))\r\n break\r\n this.downPx_ = evt.pixel\r\n this.start_(evt)\r\n // Test long touch\r\n var dt = 500\r\n this._longTouch = false\r\n setTimeout(function () {\r\n this._longTouch = (new Date() - this._eventTime > .9 * dt)\r\n if (this._longTouch)\r\n this.handleMoveEvent_(evt)\r\n }.bind(this), dt)\r\n this.lastEvent = evt.type;\r\n break\r\n }\r\n case \"pointerup\": {\r\n // Started and fisrt move\r\n if (this.started_ && this.coord_) {\r\n dx = this.downPx_[0] - evt.pixel[0]\r\n dy = this.downPx_[1] - evt.pixel[1]\r\n\r\n if (dx * dx + dy * dy <= this.squaredClickTolerance_) {\r\n // The pointer has moved\r\n if (this.lastEvent == \"pointerdown\" || this.lastEvent == \"pointermove\" || this.lastEvent == \"keydown\") {\r\n this.end_(evt)\r\n }\r\n\r\n // On touch device there is no move event : terminate = click on the same point\r\n else {\r\n dx = this.upPx_[0] - evt.pixel[0]\r\n dy = this.upPx_[1] - evt.pixel[1]\r\n if (dx * dx + dy * dy <= this.squaredClickTolerance_) {\r\n this.end_(evt)\r\n } else {\r\n this.handleMoveEvent_(evt)\r\n this.drawPoint_(evt.coordinate, true)\r\n }\r\n }\r\n }\r\n }\r\n this.upPx_ = evt.pixel\r\n break\r\n }\r\n case \"pointerdrag\": {\r\n if (this.started_) {\r\n var centerPx = this.getMap().getPixelFromCoordinate(this.center_)\r\n dx = centerPx[0] - evt.pixel[0]\r\n dy = centerPx[1] - evt.pixel[1]\r\n if (dx * dx + dy * dy <= this.squaredClickTolerance_) {\r\n this.reset()\r\n }\r\n }\r\n return !this._longTouch\r\n // break;\r\n }\r\n case \"pointermove\": {\r\n if (this.started_) {\r\n dx = this.downPx_[0] - evt.pixel[0]\r\n dy = this.downPx_[1] - evt.pixel[1]\r\n if (dx * dx + dy * dy > this.squaredClickTolerance_) {\r\n this.handleMoveEvent_(evt)\r\n this.lastEvent = evt.type\r\n }\r\n }\r\n break\r\n }\r\n default: {\r\n // Prevent zoom or other event on click/singleclick/dblclick\r\n if (this.started_ && (evt.type === 'click' || evt.type === 'singleclick' || evt.type === 'dblclick')) {\r\n //evt.stopPropagation();\r\n return false\r\n }\r\n this.lastEvent = evt.type\r\n\r\n break\r\n }\r\n }\r\n return true\r\n }\r\n /** Stop drawing.\r\n */\r\n finishDrawing() {\r\n if (this.started_ && this.coord_) {\r\n this.end_({ pixel: this.upPx_, coordinate: this.coord_ })\r\n }\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n */\r\n handleMoveEvent_(evt) {\r\n if (this.started_) {\r\n this.coord_ = evt.coordinate\r\n this.coordPx_ = evt.pixel\r\n var f = this.drawSketch_(evt)\r\n this.dispatchEvent({\r\n type: 'drawing',\r\n feature: f,\r\n pixel: evt.pixel,\r\n startCoordinate: this.center_,\r\n coordinate: evt.coordinate,\r\n square: this.square_,\r\n centered: this.centered_\r\n })\r\n } else {\r\n this.drawPoint_(evt.coordinate)\r\n }\r\n }\r\n /** Start an new draw\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `false` to stop the drag sequence.\r\n */\r\n start_(evt) {\r\n if (!this.started_) {\r\n this.started_ = true\r\n this.center_ = evt.coordinate\r\n this.coord_ = null\r\n var f = this.feature_ = new ol_Feature({})\r\n f.setGeometryName(this.geometryName_ || 'geometry')\r\n f.setGeometry(new ol_geom_Polygon([[evt.coordinate, evt.coordinate, evt.coordinate]]))\r\n this.drawSketch_(evt)\r\n this.dispatchEvent({ type: 'drawstart', feature: f, pixel: evt.pixel, coordinate: evt.coordinate })\r\n } else {\r\n this.coord_ = evt.coordinate\r\n }\r\n }\r\n /** End drawing\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `false` to stop the drag sequence.\r\n */\r\n end_(evt) {\r\n this.coord_ = evt.coordinate\r\n this.started_ = false\r\n if (this.coord_ && (this.center_[0] !== this.coord_[0] || this.center_[1] !== this.coord_[1])) {\r\n var f = this.feature_\r\n\r\n f.setGeometry(this.getGeom_())\r\n if (this.source_)\r\n this.source_.addFeature(f)\r\n else if (this.features_)\r\n this.features_.push(f)\r\n this.dispatchEvent({ type: 'drawend', feature: f, pixel: evt.pixel, coordinate: evt.coordinate, square: this.square_, centered: this.centered_ })\r\n } else {\r\n this.dispatchEvent({ type: 'drawcancel', feature: null, pixel: evt.pixel, coordinate: evt.coordinate, square: this.square_, centered: this.centered_ })\r\n }\r\n\r\n this.center_ = this.coord_ = null\r\n this.drawSketch_()\r\n }\r\n}\r\n\r\n/** Default start angle array for each sides\r\n*/\r\nol_interaction_DrawRegular.prototype.startAngle = {\r\n 'default':Math.PI/2,\r\n 3: -Math.PI/2,\r\n 4: Math.PI/4\r\n};\r\n\r\nexport default ol_interaction_DrawRegular\r\n","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\nimport ol_style_Circle from 'ol/style/Circle.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport {ol_coordinate_dist2d, ol_coordinate_equal} from \"../geom/GeomUtils.js\";\r\nimport {boundingExtent as ol_extent_boundingExtent} from 'ol/extent.js'\r\nimport {buffer as ol_extent_buffer} from 'ol/extent.js'\r\nimport {altKeyOnly as ol_events_condition_altKeyOnly} from 'ol/events/condition.js'\r\nimport {primaryAction as ol_events_condition_primaryAction} from 'ol/events/condition.js'\r\nimport {always as ol_events_condition_always} from 'ol/events/condition.js'\r\n\r\nimport ol_ext_element from '../util/element.js'\r\nimport '../geom/LineStringSplitAt.js'\r\n\r\n/** Interaction for modifying feature geometries. Similar to the core ol/interaction/Modify.\r\n * The interaction is more suitable to use to handle feature modification: only features concerned \r\n * by the modification are passed to the events (instead of all feature with ol/interaction/Modify)\r\n * - the modifystart event is fired before the feature is modified (no points still inserted)\r\n * - the modifyend event is fired after the modification\r\n * - it fires a modifying event\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires modifystart\r\n * @fires modifying\r\n * @fires modifyend\r\n * @fires select\r\n * @param {*} options\r\n *\t@param {ol.source.Vector} options.source a source to modify (configured with useSpatialIndex set to true)\r\n *\t@param {ol.source.Vector|Array} options.sources a list of source to modify (configured with useSpatialIndex set to true)\r\n * @param {ol.Collection.} options.features collection of feature to modify\r\n * @param {integer} options.pixelTolerance Pixel tolerance for considering the pointer close enough to a segment or vertex for editing. Default is 10.\r\n * @param {function|undefined} options.filter a filter that takes a feature and return true if it can be modified, default always true.\r\n * @param {ol.style.Style | Array | undefined} options.style Style for the sketch features.\r\n * @param {ol.EventsConditionType | undefined} options.condition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether that event will be considered to add or move a vertex to the sketch. Default is ol.events.condition.primaryAction.\r\n * @param {ol.EventsConditionType | undefined} options.deleteCondition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether that event should be handled. By default, ol.events.condition.singleClick with ol.events.condition.altKeyOnly results in a vertex deletion.\r\n * @param {ol.EventsConditionType | undefined} options.insertVertexCondition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether a new vertex can be added to the sketch features. Default is ol.events.condition.always\r\n * @param {boolean} options.wrapX Wrap the world horizontally on the sketch overlay, default false\r\n */\r\nvar ol_interaction_ModifyFeature = class olinteractionModifyFeature extends ol_interaction_Interaction {\r\n constructor(options) {\r\n options = options || {}\r\n\r\n var dragging, modifying\r\n super({\r\n handleEvent: function (e) {\r\n switch (e.type) {\r\n case 'pointerdown': {\r\n dragging = this.handleDownEvent(e)\r\n modifying = dragging || this._deleteCondition(e)\r\n return !dragging\r\n }\r\n case 'pointerup': {\r\n dragging = false\r\n return this.handleUpEvent(e)\r\n }\r\n case 'pointerdrag': {\r\n if (dragging)\r\n return this.handleDragEvent(e)\r\n else\r\n return true\r\n }\r\n case 'pointermove': {\r\n if (!dragging){\r\n return this.handleMoveEvent(e)\r\n } else {\r\n return false\r\n }\r\n }\r\n case 'singleclick':\r\n case 'click': {\r\n // Prevent click when modifying\r\n return !modifying\r\n }\r\n default: return true\r\n }\r\n }\r\n })\r\n\r\n // Snap distance (in px)\r\n this.snapDistance_ = options.pixelTolerance || 10\r\n // Split tolerance between the calculated intersection and the geometry\r\n this.tolerance_ = 1e-10\r\n // Cursor\r\n this.cursor_ = options.cursor\r\n\r\n // List of source to split\r\n this.sources_ = options.sources ? (options.sources instanceof Array) ? options.sources : [options.sources] : []\r\n if (options.source) {\r\n this.sources_.push(options.source)\r\n }\r\n if (options.features) {\r\n this.sources_.push(new ol_source_Vector({ features: options.features }))\r\n }\r\n // Get all features candidate\r\n this.filterSplit_ = options.filter || function () { return true }\r\n\r\n this._condition = options.condition || ol_events_condition_primaryAction\r\n this._deleteCondition = options.deleteCondition || ol_events_condition_altKeyOnly\r\n this._insertVertexCondition = options.insertVertexCondition || ol_events_condition_always\r\n\r\n // Default style\r\n var sketchStyle = function () {\r\n return [new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 6,\r\n fill: new ol_style_Fill({ color: [0, 153, 255, 1] }),\r\n stroke: new ol_style_Stroke({ color: '#FFF', width: 1.25 })\r\n })\r\n })\r\n ]\r\n }\r\n\r\n // Custom style\r\n if (options.style) {\r\n if (typeof (options.style) === 'function') {\r\n sketchStyle = options.style\r\n } else {\r\n sketchStyle = function () { return options.style }\r\n }\r\n }\r\n\r\n // Create a new overlay for the sketch\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n useSpatialIndex: false\r\n }),\r\n name: 'Modify overlay',\r\n displayInLayerSwitcher: false,\r\n style: sketchStyle,\r\n wrapX: options.wrapX\r\n })\r\n\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this.getMap()) this.getMap().removeLayer(this.overlayLayer_)\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n }\r\n /**\r\n * Activate or deactivate the interaction + remove the sketch.\r\n * @param {boolean} active.\r\n * @api stable\r\n */\r\n setActive(active) {\r\n super.setActive(active)\r\n if (this.overlayLayer_) this.overlayLayer_.getSource().clear()\r\n }\r\n /** Change the filter function\r\n * @param {function|undefined} options.filter a filter that takes a feature and return true if it can be modified, default always true.\r\n */\r\n setFilter(filter) {\r\n if (typeof (filter) === 'function')\r\n this.filterSplit_ = filter\r\n else if (filter === undefined)\r\n this.filterSplit_ = function () { return true }\r\n }\r\n /** Get closest feature at pixel\r\n * @param {ol.Pixel}\r\n * @return {*}\r\n * @private\r\n */\r\n getClosestFeature(e) {\r\n var f, c, d = this.snapDistance_ + 1\r\n for (var i = 0; i < this.sources_.length; i++) {\r\n var source = this.sources_[i]\r\n f = source.getClosestFeatureToCoordinate(e.coordinate)\r\n if (f && this.filterSplit_(f)) {\r\n var ci = f.getGeometry().getClosestPoint(e.coordinate)\r\n var di = ol_coordinate_dist2d(e.coordinate, ci) / e.frameState.viewState.resolution\r\n if (di < d) {\r\n d = di\r\n c = ci\r\n }\r\n break\r\n }\r\n }\r\n if (d > this.snapDistance_) {\r\n if (this.currentFeature)\r\n this.dispatchEvent({ type: 'select', selected: [], deselected: [this.currentFeature] })\r\n this.currentFeature = null\r\n return false\r\n } else {\r\n // Snap to node\r\n var coord = this.getNearestCoord(c, f.getGeometry())\r\n if (coord) {\r\n coord = coord.coord\r\n var p = this.getMap().getPixelFromCoordinate(coord)\r\n if (ol_coordinate_dist2d(e.pixel, p) < this.snapDistance_) {\r\n c = coord\r\n }\r\n //\r\n if (this.currentFeature !== f)\r\n this.dispatchEvent({ type: 'select', selected: [f], deselected: [this.currentFeature] })\r\n this.currentFeature = f\r\n return { source: source, feature: f, coord: c }\r\n }\r\n }\r\n }\r\n /** Get nearest coordinate in a list\r\n * @param {ol.coordinate} pt the point to find nearest\r\n * @param {ol.geom} coords list of coordinates\r\n * @return {*} the nearest point with a coord (projected point), dist (distance to the geom), ring (if Polygon)\r\n */\r\n getNearestCoord(pt, geom) {\r\n var i, l, p, p0, dm\r\n switch (geom.getType()) {\r\n case 'Point': {\r\n return { coord: geom.getCoordinates(), dist: ol_coordinate_dist2d(geom.getCoordinates(), pt) }\r\n }\r\n case 'MultiPoint': {\r\n return this.getNearestCoord(pt, new ol_geom_LineString(geom.getCoordinates()))\r\n }\r\n case 'LineString':\r\n case 'LinearRing': {\r\n var d\r\n dm = Number.MAX_VALUE\r\n var coords = geom.getCoordinates()\r\n for (i = 0; i < coords.length; i++) {\r\n d = ol_coordinate_dist2d(pt, coords[i])\r\n if (d < dm) {\r\n dm = d\r\n p0 = coords[i]\r\n }\r\n }\r\n return { coord: p0, dist: dm }\r\n }\r\n case 'MultiLineString': {\r\n var lstring = geom.getLineStrings()\r\n p0 = false, dm = Number.MAX_VALUE\r\n for (i = 0; l = lstring[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.ring = i\r\n }\r\n }\r\n return p0\r\n }\r\n case 'Polygon': {\r\n var lring = geom.getLinearRings()\r\n p0 = false\r\n dm = Number.MAX_VALUE\r\n for (i = 0; l = lring[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.ring = i\r\n }\r\n }\r\n return p0\r\n }\r\n case 'MultiPolygon': {\r\n var poly = geom.getPolygons()\r\n p0 = false\r\n dm = Number.MAX_VALUE\r\n for (i = 0; l = poly[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.poly = i\r\n }\r\n }\r\n return p0\r\n }\r\n case 'GeometryCollection': {\r\n var g = geom.getGeometries()\r\n p0 = false\r\n dm = Number.MAX_VALUE\r\n for (i = 0; l = g[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.geom = i\r\n }\r\n }\r\n return p0\r\n }\r\n default: return false\r\n }\r\n }\r\n /** Get arcs concerned by a modification\r\n * @param {ol.geom} geom the geometry concerned\r\n * @param {ol.coordinate} coord pointed coordinates\r\n */\r\n getArcs(geom, coord) {\r\n var arcs = false\r\n var coords, i, s, l, g\r\n switch (geom.getType()) {\r\n case 'Point': {\r\n if (ol_coordinate_equal(coord, geom.getCoordinates())) {\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: [],\r\n coord2: [],\r\n node: true\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiPoint': {\r\n coords = geom.getCoordinates()\r\n for (i = 0; i < coords.length; i++) {\r\n if (ol_coordinate_equal(coord, coords[i])) {\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n index: i,\r\n coord1: [],\r\n coord2: [],\r\n node: true\r\n }\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'LinearRing':\r\n case 'LineString': {\r\n var p = geom.getClosestPoint(coord)\r\n if (ol_coordinate_dist2d(p, coord) < 1.5 * this.tolerance_) {\r\n var split\r\n // Split the line in two\r\n if (geom.getType() === 'LinearRing') {\r\n g = new ol_geom_LineString(geom.getCoordinates())\r\n split = g.splitAt(coord, this.tolerance_)\r\n } else {\r\n split = geom.splitAt(coord, this.tolerance_)\r\n }\r\n // If more than 2\r\n if (split.length > 2) {\r\n coords = split[1].getCoordinates()\r\n for (i = 2; s = split[i]; i++) {\r\n var c = s.getCoordinates()\r\n c.shift()\r\n coords = coords.concat(c)\r\n }\r\n split = [split[0], new ol_geom_LineString(coords)]\r\n }\r\n // Split in two\r\n if (split.length === 2) {\r\n var c0 = split[0].getCoordinates()\r\n var c1 = split[1].getCoordinates()\r\n var nbpt = c0.length + c1.length - 1\r\n c0.pop()\r\n c1.shift()\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: c0,\r\n coord2: c1,\r\n node: (geom.getCoordinates().length === nbpt),\r\n closed: false\r\n }\r\n } else if (split.length === 1) {\r\n s = split[0].getCoordinates()\r\n var start = ol_coordinate_equal(s[0], coord)\r\n var end = ol_coordinate_equal(s[s.length - 1], coord)\r\n // Move first point\r\n if (start) {\r\n s.shift()\r\n if (end)\r\n s.pop()\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: [],\r\n coord2: s,\r\n node: true,\r\n closed: end\r\n }\r\n } else if (end) {\r\n // Move last point\r\n s.pop()\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: s,\r\n coord2: [],\r\n node: true,\r\n closed: false\r\n }\r\n }\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiLineString': {\r\n var lstring = geom.getLineStrings()\r\n for (i = 0; l = lstring[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.type = geom.getType()\r\n arcs.lstring = i\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'Polygon': {\r\n var lring = geom.getLinearRings()\r\n for (i = 0; l = lring[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.type = geom.getType()\r\n arcs.index = i\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiPolygon': {\r\n var poly = geom.getPolygons()\r\n for (i = 0; l = poly[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.type = geom.getType()\r\n arcs.poly = i\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'GeometryCollection': {\r\n g = geom.getGeometries()\r\n for (i = 0; l = g[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.g = i\r\n arcs.typeg = arcs.type\r\n arcs.type = geom.getType()\r\n break\r\n }\r\n }\r\n break\r\n }\r\n default: {\r\n console.error('ol/interaction/ModifyFeature ' + geom.getType() + ' not supported!')\r\n break\r\n }\r\n }\r\n return arcs\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n */\r\n handleDownEvent(evt) {\r\n if (!this.getActive())\r\n return false\r\n\r\n // Something to move ?\r\n var current = this.getClosestFeature(evt)\r\n\r\n if (current && (this._condition(evt) || this._deleteCondition(evt))) {\r\n var features = []\r\n this.arcs = []\r\n\r\n // Get features concerned\r\n this.sources_.forEach(function (s) {\r\n var extent = ol_extent_buffer(ol_extent_boundingExtent([current.coord]), this.tolerance_)\r\n features = features.concat(features, s.getFeaturesInExtent(extent))\r\n }.bind(this))\r\n\r\n // Get arcs concerned\r\n this._modifiedFeatures = []\r\n features.forEach(function (f) {\r\n var a = this.getArcs(f.getGeometry(), current.coord)\r\n if (a) {\r\n if (this._insertVertexCondition(evt) || a.node) {\r\n a.feature = f\r\n this._modifiedFeatures.push(f)\r\n this.arcs.push(a)\r\n }\r\n }\r\n }.bind(this))\r\n\r\n if (this._modifiedFeatures.length) {\r\n if (this._deleteCondition(evt)) {\r\n return !this._removePoint(current, evt)\r\n } else {\r\n this.dispatchEvent({\r\n type: 'modifystart',\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n this.handleDragEvent({\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent\r\n })\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n } else {\r\n return false\r\n }\r\n }\r\n /** Get modified features\r\n * @return {Array} list of modified features\r\n */\r\n getModifiedFeatures() {\r\n return this._modifiedFeatures || []\r\n }\r\n /** Removes the vertex currently being pointed.\r\n */\r\n removePoint() {\r\n this._removePoint({}, {})\r\n }\r\n /**\r\n * @private\r\n */\r\n _getModification(a) {\r\n var coords = a.coord1.concat(a.coord2)\r\n switch (a.type) {\r\n case 'LineString': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 1) {\r\n if (a.geom.getCoordinates().length != coords.length) {\r\n a.coords = coords\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiLineString': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 1) {\r\n var c = a.geom.getCoordinates()\r\n if (c[a.lstring].length != coords.length) {\r\n c[a.lstring] = coords\r\n a.coords = c\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'Polygon': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 3) {\r\n c = a.geom.getCoordinates()\r\n if (c[a.index].length != coords.length) {\r\n c[a.index] = coords\r\n a.coords = c\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiPolygon': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 3) {\r\n c = a.geom.getCoordinates()\r\n if (c[a.poly][a.index].length != coords.length) {\r\n c[a.poly][a.index] = coords\r\n a.coords = c\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'GeometryCollection': {\r\n a.type = a.typeg\r\n var geom = a.geom\r\n var geoms = geom.getGeometries()\r\n a.geom = geoms[a.g]\r\n var found = this._getModification(a)\r\n // Restore current arc\r\n geom.setGeometries(geoms)\r\n a.geom = geom\r\n a.type = 'GeometryCollection'\r\n return found\r\n }\r\n default: {\r\n //console.error('ol/interaction/ModifyFeature '+a.type+' not supported!');\r\n break\r\n }\r\n }\r\n return false\r\n }\r\n /** Removes the vertex currently being pointed.\r\n * @private\r\n */\r\n _removePoint(current, evt) {\r\n if (!this.arcs)\r\n return false\r\n\r\n this.overlayLayer_.getSource().clear()\r\n\r\n var found = false\r\n // Get all modifications\r\n this.arcs.forEach(function (a) {\r\n found = found || this._getModification(a)\r\n }.bind(this))\r\n\r\n // Almost one point is removed\r\n if (found) {\r\n this.dispatchEvent({\r\n type: 'modifystart',\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n this.arcs.forEach(function (a) {\r\n if (a.geom.getType() === 'GeometryCollection') {\r\n if (a.coords) {\r\n var geoms = a.geom.getGeometries()\r\n geoms[a.g].setCoordinates(a.coords)\r\n a.geom.setGeometries(geoms)\r\n }\r\n } else {\r\n if (a.coords)\r\n a.geom.setCoordinates(a.coords)\r\n }\r\n }.bind(this))\r\n this.dispatchEvent({\r\n type: 'modifyend',\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n }\r\n\r\n this.arcs = []\r\n return found\r\n }\r\n /**\r\n * @private\r\n */\r\n handleUpEvent(e) {\r\n if (!this.getActive())\r\n return false\r\n if (!this.arcs || !this.arcs.length)\r\n return true\r\n\r\n this.overlayLayer_.getSource().clear()\r\n this.dispatchEvent({\r\n type: 'modifyend',\r\n coordinate: e.coordinate,\r\n originalEvent: e.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n\r\n this.arcs = []\r\n return true\r\n }\r\n /**\r\n * @private\r\n */\r\n setArcCoordinates(a, coords) {\r\n var c\r\n switch (a.type) {\r\n case 'Point': {\r\n a.geom.setCoordinates(coords[0])\r\n break\r\n }\r\n case 'MultiPoint': {\r\n c = a.geom.getCoordinates()\r\n c[a.index] = coords[0]\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'LineString': {\r\n a.geom.setCoordinates(coords)\r\n break\r\n }\r\n case 'MultiLineString': {\r\n c = a.geom.getCoordinates()\r\n c[a.lstring] = coords\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'Polygon': {\r\n c = a.geom.getCoordinates()\r\n c[a.index] = coords\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'MultiPolygon': {\r\n c = a.geom.getCoordinates()\r\n c[a.poly][a.index] = coords\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'GeometryCollection': {\r\n a.type = a.typeg\r\n var geom = a.geom\r\n var geoms = geom.getGeometries()\r\n a.geom = geoms[a.g]\r\n this.setArcCoordinates(a, coords)\r\n geom.setGeometries(geoms)\r\n a.geom = geom\r\n a.type = 'GeometryCollection'\r\n break\r\n }\r\n }\r\n }\r\n /**\r\n * @private\r\n */\r\n handleDragEvent(e) {\r\n if (!this.getActive()) return false\r\n if (!this.arcs) return true\r\n\r\n // Show sketch\r\n this.overlayLayer_.getSource().clear()\r\n var p = new ol_Feature(new ol_geom_Point(e.coordinate))\r\n this.overlayLayer_.getSource().addFeature(p)\r\n\r\n // Nothing to do\r\n if (!this.arcs.length) return true\r\n\r\n // Move arcs\r\n this.arcs.forEach(function (a) {\r\n var coords = a.coord1.concat([e.coordinate], a.coord2)\r\n if (a.closed) coords.push(e.coordinate)\r\n this.setArcCoordinates(a, coords)\r\n }.bind(this))\r\n\r\n this.dispatchEvent({\r\n type: 'modifying',\r\n coordinate: e.coordinate,\r\n originalEvent: e.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n\r\n return true\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n * @private\r\n */\r\n handleMoveEvent(e) {\r\n if (!this.getActive()) return true\r\n\r\n this.overlayLayer_.getSource().clear()\r\n var current = this.getClosestFeature(e)\r\n\r\n // Draw sketch\r\n if (current) {\r\n var p = new ol_Feature(new ol_geom_Point(current.coord))\r\n this.overlayLayer_.getSource().addFeature(p)\r\n }\r\n\r\n // Show cursor\r\n var element = e.map.getTargetElement()\r\n if (this.cursor_) {\r\n if (current) {\r\n if (element.style.cursor != this.cursor_) {\r\n this.previousCursor_ = element.style.cursor\r\n ol_ext_element.setCursor(element, this.cursor_)\r\n }\r\n } else if (this.previousCursor_ !== undefined) {\r\n ol_ext_element.setCursor(element, this.previousCursor_)\r\n this.previousCursor_ = undefined\r\n }\r\n }\r\n return true\r\n }\r\n /** Get the current feature to modify\r\n * @return {ol.Feature}\r\n */\r\n getCurrentFeature() {\r\n return this.currentFeature\r\n }\r\n}\r\n\r\nexport default ol_interaction_ModifyFeature","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n\treleased under the CeCILL-B license (French BSD license)\r\n\t(http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\nimport ol_interaction_Pointer from 'ol/interaction/Pointer.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport {ol_coordinate_dist2d, ol_coordinate_findSegment, ol_coordinate_offsetCoords} from \"../geom/GeomUtils.js\";\r\n\r\nimport ol_style_Style_defaultStyle from '../style/defaultStyle.js'\r\nimport ol_ext_element from '../util/element.js';\r\n\r\n/** Offset interaction for offseting feature geometry\r\n * @constructor\r\n * @extends {ol_interaction_Pointer}\r\n * @fires offsetstart\r\n * @fires offsetting\r\n * @fires offsetend\r\n * @param {any} options\r\n *\t@param {function} [options.filter] a function that takes a feature and a layer and return true if the feature can be modified\r\n *\t@param {ol.layer.Vector | Array} options.layers list of feature to transform \r\n *\t@param {ol.Collection.} options.features collection of feature to transform\r\n *\t@param {ol.source.Vector | undefined} options.source source to duplicate feature when ctrl key is down\r\n *\t@param {boolean} options.duplicate force feature to duplicate (source must be set)\r\n * @param {ol.style.Style | Array. | ol.style.StyleFunction | undefined} style style for the sketch\r\n */\r\nvar ol_interaction_Offset = class olinteractionOffset extends ol_interaction_Pointer {\r\n constructor(options) {\r\n options = options || {};\r\n\r\n // Extend pointer\r\n super({\r\n handleDownEvent: function(e) { return self.handleDownEvent_(e) },\r\n handleDragEvent: function(e) { return self.handleDragEvent_(e) },\r\n handleMoveEvent: function(e) { return self.handleMoveEvent_(e) },\r\n handleUpEvent: function(e) { return self.handleUpEvent_(e) },\r\n });\r\n var self = this;\r\n\r\n this._filter = options.filter;\r\n // Collection of feature to transform\r\n this.features_ = options.features;\r\n // List of layers to transform\r\n this.layers_ = options.layers ? (options.layers instanceof Array) ? options.layers : [options.layers] : null;\r\n // duplicate\r\n this.set('duplicate', options.duplicate);\r\n this.source_ = options.source;\r\n // Style\r\n this._style = (typeof (options.style) === 'function') ? options.style : function () {\r\n if (options.style)\r\n return options.style;\r\n else\r\n return ol_style_Style_defaultStyle(true);\r\n };\r\n\r\n // init\r\n this.previousCursor_ = false;\r\n }\r\n /** Get Feature at pixel\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {any} a feature and the hit point\r\n * @private\r\n */\r\n getFeatureAtPixel_(e) {\r\n var self = this;\r\n return this.getMap().forEachFeatureAtPixel(e.pixel,\r\n function (feature, layer) {\r\n var current;\r\n if (self._filter && !self._filter(feature, layer))\r\n return false;\r\n // feature belong to a layer\r\n if (self.layers_) {\r\n for (var i = 0; i < self.layers_.length; i++) {\r\n if (self.layers_[i] === layer) {\r\n current = feature;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // feature in the collection\r\n else if (self.features_) {\r\n self.features_.forEach(function (f) {\r\n if (f === feature) {\r\n current = feature;\r\n }\r\n });\r\n }\r\n\r\n // Others\r\n else {\r\n current = feature;\r\n }\r\n\r\n // Only poygon or linestring\r\n var typeGeom = current.getGeometry().getType();\r\n if (current && /Polygon|LineString/.test(typeGeom)) {\r\n if (typeGeom === 'Polygon' && current.getGeometry().getCoordinates().length > 1)\r\n return false;\r\n // test distance\r\n var p = current.getGeometry().getClosestPoint(e.coordinate);\r\n var dx = p[0] - e.coordinate[0];\r\n var dy = p[1] - e.coordinate[1];\r\n var d = Math.sqrt(dx * dx + dy * dy) / e.frameState.viewState.resolution;\r\n\r\n if (d < 5) {\r\n return {\r\n feature: current,\r\n hit: p,\r\n coordinates: current.getGeometry().getCoordinates(),\r\n geom: current.getGeometry().clone(),\r\n geomType: typeGeom\r\n };\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }, { hitTolerance: 5 });\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n * @private\r\n */\r\n handleDownEvent_(e) {\r\n this.current_ = this.getFeatureAtPixel_(e);\r\n if (this.current_) {\r\n this.currentStyle_ = this.current_.feature.getStyle();\r\n if (this.source_ && (this.get('duplicate') || e.originalEvent.ctrlKey)) {\r\n this.current_.feature = this.current_.feature.clone();\r\n this.current_.feature.setStyle(this._style(this.current_.feature));\r\n this.source_.addFeature(this.current_.feature);\r\n } else {\r\n // Modify the current feature\r\n this.current_.feature.setStyle(this._style(this.current_.feature));\r\n this._modifystart = true;\r\n }\r\n this.dispatchEvent({ type: 'offsetstart', feature: this.current_.feature, offset: 0 });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Map browser event.\r\n * @private\r\n */\r\n handleDragEvent_(e) {\r\n if (this._modifystart) {\r\n this.dispatchEvent({ type: 'modifystart', features: [this.current_.feature] });\r\n this._modifystart = false;\r\n }\r\n var p = this.current_.geom.getClosestPoint(e.coordinate);\r\n var d = ol_coordinate_dist2d(p, e.coordinate);\r\n var seg, v1, v2, offset;\r\n switch (this.current_.geomType) {\r\n case 'Polygon': {\r\n seg = ol_coordinate_findSegment(p, this.current_.coordinates[0]).segment;\r\n if (seg) {\r\n v1 = [seg[1][0] - seg[0][0], seg[1][1] - seg[0][1]];\r\n v2 = [e.coordinate[0] - p[0], e.coordinate[1] - p[1]];\r\n if (v1[0] * v2[1] - v1[1] * v2[0] > 0) {\r\n d = -d;\r\n }\r\n\r\n offset = [];\r\n for (var i = 0; i < this.current_.coordinates.length; i++) {\r\n offset.push(ol_coordinate_offsetCoords(this.current_.coordinates[i], i == 0 ? d : -d));\r\n }\r\n this.current_.feature.setGeometry(new ol_geom_Polygon(offset));\r\n }\r\n break;\r\n }\r\n case 'LineString': {\r\n seg = ol_coordinate_findSegment(p, this.current_.coordinates).segment;\r\n if (seg) {\r\n v1 = [seg[1][0] - seg[0][0], seg[1][1] - seg[0][1]];\r\n v2 = [e.coordinate[0] - p[0], e.coordinate[1] - p[1]];\r\n if (v1[0] * v2[1] - v1[1] * v2[0] > 0) {\r\n d = -d;\r\n }\r\n offset = ol_coordinate_offsetCoords(this.current_.coordinates, d);\r\n this.current_.feature.setGeometry(new ol_geom_LineString(offset));\r\n }\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n this.dispatchEvent({ type: 'offsetting', feature: this.current_.feature, offset: d, segment: [p, e.coordinate], coordinate: e.coordinate });\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Map browser event.\r\n * @private\r\n */\r\n handleUpEvent_(e) {\r\n if (!this._modifystart) {\r\n this.dispatchEvent({ type: 'offsetend', feature: this.current_.feature, coordinate: e.coordinate });\r\n }\r\n this.current_.feature.setStyle(this.currentStyle_);\r\n this.current_ = false;\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Event.\r\n * @private\r\n */\r\n handleMoveEvent_(e) {\r\n var f = this.getFeatureAtPixel_(e);\r\n if (f) {\r\n if (this.previousCursor_ === false) {\r\n this.previousCursor_ = e.map.getTargetElement().style.cursor;\r\n }\r\n ol_ext_element.setCursor(e.map, 'pointer');\r\n } else {\r\n ol_ext_element.setCursor(e.map, this.previousCursor_);\r\n this.previousCursor_ = false;\r\n }\r\n }\r\n}\r\n\r\nexport default ol_interaction_Offset\r\n","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\nimport ol_style_Circle from 'ol/style/Circle.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport {ol_coordinate_dist2d} from \"../geom/GeomUtils.js\";\r\nimport '../geom/LineStringSplitAt.js'\r\nimport ol_ext_element from '../util/element.js'\r\n\r\n/** Interaction split interaction for splitting feature geometry\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires beforesplit, aftersplit, pointermove\r\n * @param {*} \r\n * @param {ol.source.Vector|Array} [options.sources] a list of source to split (configured with useSpatialIndex set to true), if none use map visible layers.\r\n * @param {ol.Collection.} options.features collection of feature to split (instead of a list of sources)\r\n * @param {integer} options.snapDistance distance (in px) to snap to an object, default 25px\r\n *\t@param {string|undefined} options.cursor cursor name to display when hovering an objet\r\n * @param {function|undefined} options.filter a filter that takes a feature and return true if it can be clipped, default always split.\r\n * @param ol_style_Style | Array | false | undefined} options.featureStyle Style for the selected features, choose false if you don't want feature selection. By default the default edit style is used.\r\n * @param {ol_style_Style | Array | undefined} options.sketchStyle Style for the sektch features. \r\n * @param {function|undefined} options.tolerance Distance between the calculated intersection and a vertex on the source geometry below which the existing vertex will be used for the split. Default is 1e-10.\r\n */\r\nvar ol_interaction_Split = class olinteractionSplit extends ol_interaction_Interaction {\r\n constructor(options) {\r\n if (!options)\r\n options = {}\r\n\r\n super({\r\n handleEvent: function (e) {\r\n switch (e.type) {\r\n case \"singleclick\":\r\n return this.handleDownEvent(e)\r\n case \"pointermove\":\r\n return this.handleMoveEvent(e)\r\n default:\r\n return true\r\n }\r\n //return true;\r\n }\r\n })\r\n\r\n // Snap distance (in px)\r\n this.snapDistance_ = options.snapDistance || 25\r\n // Split tolerance between the calculated intersection and the geometry\r\n this.tolerance_ = options.tolerance || 1e-10\r\n // Cursor\r\n this.cursor_ = options.cursor\r\n\r\n // List of source to split\r\n this.setSources(options.sources)\r\n\r\n if (options.features) {\r\n if (!this.sources_) this.sources_ = [];\r\n this.sources_.push(new ol_source_Vector({ features: options.features }))\r\n }\r\n\r\n // Get all features candidate\r\n this.filterSplit_ = options.filter || function () { return true }\r\n\r\n // Default style\r\n var white = [255, 255, 255, 1]\r\n var blue = [0, 153, 255, 1]\r\n var width = 3\r\n var fill = new ol_style_Fill({ color: 'rgba(255,255,255,0.4)' })\r\n var stroke = new ol_style_Stroke({\r\n color: '#3399CC',\r\n width: 1.25\r\n })\r\n var sketchStyle = [\r\n new ol_style_Style({\r\n image: new ol_style_Circle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: 5\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })\r\n ]\r\n var featureStyle = [\r\n new ol_style_Style({\r\n stroke: new ol_style_Stroke({\r\n color: white,\r\n width: width + 2\r\n })\r\n }),\r\n new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 2 * width,\r\n fill: new ol_style_Fill({\r\n color: blue\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: white,\r\n width: width / 2\r\n })\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: blue,\r\n width: width\r\n })\r\n }),\r\n ]\r\n\r\n // Custom style\r\n if (options.sketchStyle)\r\n sketchStyle = options.sketchStyle instanceof Array ? options.sketchStyle : [options.sketchStyle]\r\n if (options.featureStyle)\r\n featureStyle = options.featureStyle instanceof Array ? options.featureStyle : [options.featureStyle]\r\n\r\n // Create a new overlay for the sketch\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n useSpatialIndex: false\r\n }),\r\n name: 'Split overlay',\r\n displayInLayerSwitcher: false,\r\n style: function (f) {\r\n if (f._sketch_)\r\n return sketchStyle\r\n else\r\n return featureStyle\r\n }\r\n })\r\n\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this.getMap()) {\r\n this.getMap().removeLayer(this.overlayLayer_)\r\n }\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n }\r\n /** Get sources to split features in\r\n * @return {Array}\r\n */\r\n getSources() {\r\n if (!this.sources_ && this.getMap()) {\r\n var sources = []\r\n var getSources = function (layers) {\r\n layers.forEach(function (layer) {\r\n if (layer.getVisible()) {\r\n if (layer.getSource && layer.getSource() instanceof ol_source_Vector) {\r\n sources.unshift(layer.getSource())\r\n } else if (layer.getLayers) {\r\n getSources(layer.getLayers())\r\n }\r\n }\r\n })\r\n }\r\n getSources(this.getMap().getLayers())\r\n return sources\r\n }\r\n return this.sources_ || []\r\n }\r\n /** Set sources to split features in\r\n * @param {ol.source.Vector|Array|boolean} [sources] if not defined get all map vector sources\r\n */\r\n setSources(sources) {\r\n this.sources_ = sources ? (sources instanceof Array ? sources || false : [sources]) : false\r\n }\r\n /** Get closest feature at pixel\r\n * @param {ol.Pixel}\r\n * @return {ol.feature}\r\n * @private\r\n */\r\n getClosestFeature(e) {\r\n var source, f, c, g, d = this.snapDistance_ + 1\r\n // Look for closest point in the sources\r\n this.getSources().forEach(function (si) {\r\n var fi = si.getClosestFeatureToCoordinate(e.coordinate)\r\n if (fi && fi.getGeometry().splitAt) {\r\n var ci = fi.getGeometry().getClosestPoint(e.coordinate)\r\n var gi = new ol_geom_LineString([e.coordinate, ci])\r\n var di = gi.getLength() / e.frameState.viewState.resolution\r\n if (di < d) {\r\n source = si\r\n d = di\r\n f = fi\r\n g = gi\r\n c = ci\r\n }\r\n }\r\n })\r\n // Snap ?\r\n if (d > this.snapDistance_) {\r\n return false\r\n } else {\r\n // Snap to node\r\n var coord = this.getNearestCoord(c, f.getGeometry().getCoordinates())\r\n var p = this.getMap().getPixelFromCoordinate(coord)\r\n if (ol_coordinate_dist2d(e.pixel, p) < this.snapDistance_) {\r\n c = coord\r\n }\r\n //\r\n return { source: source, feature: f, coord: c, link: g }\r\n }\r\n }\r\n /** Get nearest coordinate in a list\r\n * @param {ol.coordinate} pt the point to find nearest\r\n * @param {Array} coords list of coordinates\r\n * @return {ol.coordinate} the nearest coordinate in the list\r\n */\r\n getNearestCoord(pt, coords) {\r\n var d, dm = Number.MAX_VALUE, p0\r\n for (var i = 0; i < coords.length; i++) {\r\n d = ol_coordinate_dist2d(pt, coords[i])\r\n if (d < dm) {\r\n dm = d\r\n p0 = coords[i]\r\n }\r\n }\r\n return p0\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n */\r\n handleDownEvent(evt) {\r\n // Something to split ?\r\n var current = this.getClosestFeature(evt)\r\n\r\n if (current) {\r\n var self = this\r\n self.overlayLayer_.getSource().clear()\r\n var split = current.feature.getGeometry().splitAt(current.coord, this.tolerance_)\r\n var i\r\n if (split.length > 1) {\r\n var tosplit = []\r\n for (i = 0; i < split.length; i++) {\r\n var f = current.feature.clone()\r\n f.setGeometry(split[i])\r\n tosplit.push(f)\r\n }\r\n self.dispatchEvent({ type: 'beforesplit', original: current.feature, features: tosplit })\r\n current.source.dispatchEvent({ type: 'beforesplit', original: current.feature, features: tosplit })\r\n current.source.removeFeature(current.feature)\r\n for (i = 0; i < tosplit.length; i++) {\r\n current.source.addFeature(tosplit[i])\r\n }\r\n self.dispatchEvent({ type: 'aftersplit', original: current.feature, features: tosplit })\r\n current.source.dispatchEvent({ type: 'aftersplit', original: current.feature, features: tosplit })\r\n }\r\n }\r\n return false\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n */\r\n handleMoveEvent(e) {\r\n var map = e.map\r\n this.overlayLayer_.getSource().clear()\r\n var current = this.getClosestFeature(e)\r\n\r\n if (current && this.filterSplit_(current.feature)) {\r\n var p, l\r\n // Draw sketch\r\n this.overlayLayer_.getSource().addFeature(current.feature)\r\n p = new ol_Feature(new ol_geom_Point(current.coord))\r\n p._sketch_ = true\r\n this.overlayLayer_.getSource().addFeature(p)\r\n //\r\n l = new ol_Feature(current.link)\r\n l._sketch_ = true\r\n this.overlayLayer_.getSource().addFeature(l)\r\n // move event\r\n this.dispatchEvent({\r\n type: 'pointermove',\r\n coordinate: e.coordinate,\r\n frameState: e.frameState,\r\n originalEvent: e.originalEvent,\r\n map: e.map,\r\n pixel: e.pixel,\r\n feature: current.feature,\r\n linkGeometry: current.link\r\n })\r\n } else {\r\n this.dispatchEvent(e)\r\n }\r\n\r\n var element = map.getTargetElement()\r\n if (this.cursor_) {\r\n if (current) {\r\n if (element.style.cursor != this.cursor_) {\r\n this.previousCursor_ = element.style.cursor\r\n ol_ext_element.setCursor(element, this.cursor_)\r\n }\r\n } else if (this.previousCursor_ !== undefined) {\r\n ol_ext_element.setCursor(element, this.previousCursor_)\r\n this.previousCursor_ = undefined\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ol_interaction_Split\r\n","import ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\nimport ol_Collection from 'ol/Collection.js'\r\nimport ol_interaction_Pointer from 'ol/interaction/Pointer.js'\r\nimport ol_style_RegularShape from 'ol/style/RegularShape.js'\r\nimport {fromExtent as ol_geom_Polygon_fromExtent} from 'ol/geom/Polygon.js'\r\nimport {boundingExtent as ol_extent_boundingExtent, buffer as ol_extent_buffer, createEmpty as ol_extent_createEmpty, extend as ol_extent_extend, getCenter as ol_extent_getCenter} from 'ol/extent.js'\r\nimport {unByKey as ol_Observable_unByKey} from 'ol/Observable.js'\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport ol_ext_element from '../util/element.js'\r\n\r\n/** Interaction rotate\r\n * @constructor\r\n * @extends {ol_interaction_Pointer}\r\n * @fires select | rotatestart | rotating | rotateend | translatestart | translating | translateend | scalestart | scaling | scaleend\r\n * @param {any} options\r\n * @param {function} options.filter A function that takes a Feature and a Layer and returns true if the feature may be transformed or false otherwise.\r\n * @param {Array} options.layers array of layers to transform,\r\n * @param {ol.Collection} options.features collection of feature to transform,\r\n *\t@param {ol.EventsConditionType|undefined} options.condition A function that takes an ol.MapBrowserEvent and a feature collection and returns a boolean to indicate whether that event should be handled. default: ol.events.condition.always.\r\n *\t@param {ol.EventsConditionType|undefined} options.addCondition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether that event should be handled ie. the feature will be added to the transforms features. default: ol.events.condition.never.\r\n *\t@param {number | undefined} options.hitTolerance Tolerance to select feature in pixel, default 0\r\n *\t@param {bool} options.translateFeature Translate when click on feature\r\n *\t@param {bool} options.translate Can translate the feature\r\n * @param {bool} options.translateBBox Enable translate when the user drags inside the bounding box\r\n *\t@param {bool} options.stretch can stretch the feature\r\n *\t@param {bool} options.scale can scale the feature\r\n *\t@param {bool} options.rotate can rotate the feature\r\n *\t@param {bool} options.noFlip prevent the feature geometry to flip, default false\r\n *\t@param {bool} options.selection the intraction handle selection/deselection, if not use the select prototype to add features to transform, default true\r\n *\t@param {ol.events.ConditionType | undefined} options.keepAspectRatio A function that takes an ol.MapBrowserEvent and returns a boolean to keep aspect ratio, default ol.events.condition.shiftKeyOnly.\r\n *\t@param {ol.events.ConditionType | undefined} options.modifyCenter A function that takes an ol.MapBrowserEvent and returns a boolean to apply scale & strech from the center, default ol.events.condition.metaKey or ol.events.condition.ctrlKey.\r\n *\t@param {boolean} options.enableRotatedTransform Enable transform when map is rotated\r\n *\t@param {boolean} [options.keepRectangle=false] keep rectangle when possible\r\n * @param {number} [options.buffer] Increase the extent used as bounding box, default 0\r\n *\t@param {*} options.style list of ol.style for handles\r\n * @param {number|Array|function} [options.pointRadius=0] radius for points or a function that takes a feature and returns the radius (or [radiusX, radiusY]). If not null show handles to transform the points\r\n */\r\nvar ol_interaction_Transform = class olinteractionTransform extends ol_interaction_Pointer {\r\n constructor(options) {\r\n options = options || {}\r\n // Extend pointer\r\n super({\r\n handleDownEvent: function(e) { return self.handleDownEvent_(e) },\r\n handleDragEvent: function(e) { return this.handleDragEvent_(e) },\r\n handleMoveEvent: function(e) { return this.handleMoveEvent_(e) },\r\n handleUpEvent: function(e) { return this.handleUpEvent_(e) },\r\n })\r\n \r\n var self = this\r\n this.selection_ = new ol_Collection()\r\n\r\n // Create a new overlay layer for the sketch\r\n this.handles_ = new ol_Collection()\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n features: this.handles_,\r\n useSpatialIndex: false,\r\n wrapX: false // For vector editing across the -180° and 180° meridians to work properly, this should be set to false\r\n }),\r\n name: 'Transform overlay',\r\n displayInLayerSwitcher: false,\r\n // Return the style according to the handle type\r\n style: function (feature) {\r\n return (self.style[(feature.get('handle') || 'default') + (feature.get('constraint') || '') + (feature.get('option') || '')])\r\n },\r\n updateWhileAnimating: true,\r\n updateWhileInteracting: true,\r\n })\r\n\r\n // Collection of feature to transform\r\n this.features_ = options.features\r\n // Filter or list of layers to transform\r\n if (typeof (options.filter) === 'function')\r\n this._filter = options.filter\r\n this.layers_ = options.layers ? (options.layers instanceof Array) ? options.layers : [options.layers] : null\r\n\r\n this._handleEvent = options.condition || function () { return true }\r\n this.addFn_ = options.addCondition || function () { return false }\r\n this.setPointRadius(options.pointRadius)\r\n /* Translate when click on feature */\r\n this.set('translateFeature', (options.translateFeature !== false))\r\n /* Can translate the feature */\r\n this.set('translate', (options.translate !== false))\r\n /* Translate when click on the bounding box */\r\n this.set('translateBBox', (options.translateBBox === true))\r\n /* Can stretch the feature */\r\n this.set('stretch', (options.stretch !== false))\r\n /* Can scale the feature */\r\n this.set('scale', (options.scale !== false))\r\n /* Can rotate the feature */\r\n this.set('rotate', (options.rotate !== false))\r\n /* Keep aspect ratio */\r\n this.set('keepAspectRatio', (options.keepAspectRatio || function (e) { return e.originalEvent.shiftKey }))\r\n /* Modify center */\r\n this.set('modifyCenter', (options.modifyCenter || function (e) { return e.originalEvent.metaKey || e.originalEvent.ctrlKey }))\r\n /* Prevent flip */\r\n this.set('noFlip', (options.noFlip || false))\r\n /* Handle selection */\r\n this.set('selection', (options.selection !== false))\r\n /* */\r\n this.set('hitTolerance', (options.hitTolerance || 0))\r\n /* Enable view rotated transforms */\r\n this.set('enableRotatedTransform', (options.enableRotatedTransform || false))\r\n /* Keep rectangle angles 90 degrees */\r\n this.set('keepRectangle', (options.keepRectangle || false))\r\n /* Add buffer to the feature's extent */\r\n this.set('buffer', (options.buffer || 0))\r\n\r\n // Force redraw when changed\r\n this.on('propertychange', function () {\r\n this.drawSketch_()\r\n })\r\n\r\n // setstyle\r\n this.setDefaultStyle()\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n var oldMap = this.getMap()\r\n if (oldMap) {\r\n oldMap.removeLayer(this.overlayLayer_)\r\n if (this.previousCursor_) {\r\n ol_ext_element.setCursor(oldMap, this.previousCursor_)\r\n }\r\n this.previousCursor_ = undefined\r\n }\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n if (map === null) {\r\n this.select(null)\r\n }\r\n if (map !== null) {\r\n this.isTouch = /touch/.test(map.getViewport().className)\r\n this.setDefaultStyle()\r\n }\r\n }\r\n /**\r\n * Activate/deactivate interaction\r\n * @param {bool}\r\n * @api stable\r\n */\r\n setActive(b) {\r\n this.select(null)\r\n if (this.overlayLayer_) this.overlayLayer_.setVisible(b)\r\n super.setActive(b)\r\n }\r\n /** Set default sketch style\r\n * @param {Object} [options]\r\n * @param {ol_style_Stroke} [stroke] stroke style for selection rectangle, default red dash\r\n * @param {ol_style_Fill} [fill] fill style for selection rectangle, default red\r\n * @param {ol_style_Stroke} [pointStroke] stroke style for handles, default red\r\n * @param {ol_style_Fill} [pointFill] fill style for handles, default white\r\n */\r\n setDefaultStyle(options) {\r\n options = options || {}\r\n // Style\r\n var stroke = options.pointStroke || new ol_style_Stroke({ color: [255, 0, 0, 1], width: 1 })\r\n var strokedash = options.stroke || new ol_style_Stroke({ color: [255, 0, 0, 1], width: 1, lineDash: [4, 4] })\r\n var fill0 = options.fill || new ol_style_Fill({ color: [255, 0, 0, 0.01] })\r\n var fill = options.pointFill || new ol_style_Fill({ color: [255, 255, 255, 0.8] })\r\n var circle = new ol_style_RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: this.isTouch ? 12 : 6,\r\n displacement: this.isTouch ? [24, -24] : [12, -12],\r\n points: 15\r\n })\r\n // Old version with no displacement\r\n if (!circle.setDisplacement)\r\n circle.getAnchor()[0] = this.isTouch ? -10 : -5\r\n var bigpt = new ol_style_RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: this.isTouch ? 16 : 8,\r\n points: 4,\r\n angle: Math.PI / 4\r\n })\r\n var smallpt = new ol_style_RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: this.isTouch ? 12 : 6,\r\n points: 4,\r\n angle: Math.PI / 4\r\n })\r\n function createStyle(img, stroke, fill) {\r\n return [new ol_style_Style({ image: img, stroke: stroke, fill: fill })]\r\n }\r\n /** Style for handles */\r\n this.style = {\r\n 'default': createStyle(bigpt, strokedash, fill0),\r\n 'translate': createStyle(bigpt, stroke, fill),\r\n 'rotate': createStyle(circle, stroke, fill),\r\n 'rotate0': createStyle(bigpt, stroke, fill),\r\n 'scale': createStyle(bigpt, stroke, fill),\r\n 'scale1': createStyle(bigpt, stroke, fill),\r\n 'scale2': createStyle(bigpt, stroke, fill),\r\n 'scale3': createStyle(bigpt, stroke, fill),\r\n 'scalev': createStyle(smallpt, stroke, fill),\r\n 'scaleh1': createStyle(smallpt, stroke, fill),\r\n 'scalev2': createStyle(smallpt, stroke, fill),\r\n 'scaleh3': createStyle(smallpt, stroke, fill),\r\n }\r\n this.drawSketch_()\r\n }\r\n /**\r\n * Set sketch style.\r\n * @param {style} style Style name: 'default','translate','rotate','rotate0','scale','scale1','scale2','scale3','scalev','scaleh1','scalev2','scaleh3'\r\n * @param {ol.style.Style|Array} olstyle\r\n * @api stable\r\n */\r\n setStyle(style, olstyle) {\r\n if (!olstyle)\r\n return\r\n if (olstyle instanceof Array)\r\n this.style[style] = olstyle\r\n else\r\n this.style[style] = [olstyle]\r\n for (var i = 0; i < this.style[style].length; i++) {\r\n var im = this.style[style][i].getImage()\r\n if (im) {\r\n if (style == 'rotate') {\r\n im.getAnchor()[0] = -5\r\n }\r\n if (this.isTouch)\r\n im.setScale(1.8)\r\n }\r\n var tx = this.style[style][i].getText()\r\n if (tx) {\r\n if (style == 'rotate')\r\n tx.setOffsetX(this.isTouch ? 14 : 7)\r\n if (this.isTouch)\r\n tx.setScale(1.8)\r\n }\r\n }\r\n this.drawSketch_()\r\n }\r\n /** Get Feature at pixel\r\n * @param {ol.Pixel}\r\n * @return {ol.feature}\r\n * @private\r\n */\r\n getFeatureAtPixel_(pixel) {\r\n var self = this\r\n return this.getMap().forEachFeatureAtPixel(pixel,\r\n function (feature, layer) {\r\n var found = false\r\n // Overlay ?\r\n if (!layer) {\r\n if (feature === self.bbox_) {\r\n if (self.get('translateBBox')) {\r\n return { feature: feature, handle: 'translate', constraint: '', option: '' }\r\n } else {\r\n return false\r\n }\r\n }\r\n self.handles_.forEach(function (f) {\r\n if (f === feature)\r\n found = true\r\n })\r\n if (found)\r\n return { feature: feature, handle: feature.get('handle'), constraint: feature.get('constraint'), option: feature.get('option') }\r\n }\r\n // No seletion\r\n if (!self.get('selection')) {\r\n // Return the currently selected feature the user is interacting with.\r\n if (self.selection_.getArray().some(function (f) { return feature === f })) {\r\n return { feature: feature }\r\n }\r\n return null\r\n }\r\n // filter condition\r\n if (self._filter) {\r\n if (self._filter(feature, layer))\r\n return { feature: feature }\r\n else\r\n return null\r\n }\r\n\r\n // feature belong to a layer\r\n else if (self.layers_) {\r\n for (var i = 0; i < self.layers_.length; i++) {\r\n if (self.layers_[i] === layer)\r\n return { feature: feature }\r\n }\r\n return null\r\n }\r\n\r\n // feature in the collection\r\n else if (self.features_) {\r\n self.features_.forEach(function (f) {\r\n if (f === feature)\r\n found = true\r\n })\r\n if (found)\r\n return { feature: feature }\r\n else\r\n return null\r\n }\r\n\r\n // Others\r\n else\r\n return { feature: feature }\r\n },\r\n { hitTolerance: this.get('hitTolerance') }\r\n ) || {}\r\n }\r\n /** Rotate feature from map view rotation\r\n * @param {ol.Feature} f the feature\r\n * @param {boolean} clone clone resulting geom\r\n * @param {ol.geom.Geometry} rotated geometry\r\n */\r\n getGeometryRotateToZero_(f, clone) {\r\n var origGeom = f.getGeometry()\r\n var viewRotation = this.getMap().getView().getRotation()\r\n if (viewRotation === 0 || !this.get('enableRotatedTransform')) {\r\n return (clone) ? origGeom.clone() : origGeom\r\n }\r\n var rotGeom = origGeom.clone()\r\n rotGeom.rotate(viewRotation * -1, this.getMap().getView().getCenter())\r\n return rotGeom\r\n }\r\n /** Test if rectangle\r\n * @param {ol.Geometry} geom\r\n * @returns {boolean}\r\n * @private\r\n */\r\n _isRectangle(geom) {\r\n if (this.get('keepRectangle') && geom.getType() === 'Polygon') {\r\n var coords = geom.getCoordinates()[0]\r\n return coords.length === 5\r\n }\r\n return false\r\n }\r\n /** Draw transform sketch\r\n * @param {boolean} draw only the center\r\n */\r\n drawSketch_(center) {\r\n var i, f, geom\r\n var keepRectangle = this.selection_.item(0) && this._isRectangle(this.selection_.item(0).getGeometry())\r\n this.overlayLayer_.getSource().clear()\r\n if (!this.selection_.getLength())\r\n return\r\n var viewRotation = this.getMap().getView().getRotation()\r\n var ext = this.getGeometryRotateToZero_(this.selection_.item(0)).getExtent()\r\n var coords\r\n if (keepRectangle) {\r\n coords = this.getGeometryRotateToZero_(this.selection_.item(0)).getCoordinates()[0].slice(0, 4)\r\n coords.unshift(coords[3])\r\n }\r\n // Clone and extend\r\n ext = ol_extent_buffer(ext, this.get('buffer'))\r\n this.selection_.forEach(function (f) {\r\n var extendExt = this.getGeometryRotateToZero_(f).getExtent()\r\n ol_extent_extend(ext, extendExt)\r\n }.bind(this))\r\n\r\n var ptRadius = (this.selection_.getLength() === 1 ? this._pointRadius(this.selection_.item(0)) : 0)\r\n if (ptRadius && !(ptRadius instanceof Array))\r\n ptRadius = [ptRadius, ptRadius]\r\n\r\n if (center === true) {\r\n if (!this.ispt_) {\r\n this.overlayLayer_.getSource().addFeature(new ol_Feature({ geometry: new ol_geom_Point(this.center_), handle: 'rotate0' }))\r\n geom = ol_geom_Polygon_fromExtent(ext)\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n geom.rotate(viewRotation, this.getMap().getView().getCenter())\r\n }\r\n f = this.bbox_ = new ol_Feature(geom)\r\n this.overlayLayer_.getSource().addFeature(f)\r\n }\r\n } else {\r\n if (this.ispt_) {\r\n // Calculate extent arround the point\r\n var p = this.getMap().getPixelFromCoordinate(ol_extent_getCenter(ext))\r\n if (p) {\r\n var dx = ptRadius ? ptRadius[0] || 10 : 10\r\n var dy = ptRadius ? ptRadius[1] || 10 : 10\r\n ext = ol_extent_boundingExtent([\r\n this.getMap().getCoordinateFromPixel([p[0] - dx, p[1] - dy]),\r\n this.getMap().getCoordinateFromPixel([p[0] + dx, p[1] + dy])\r\n ])\r\n }\r\n }\r\n geom = keepRectangle ? new ol_geom_Polygon([coords]) : ol_geom_Polygon_fromExtent(ext)\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n geom.rotate(viewRotation, this.getMap().getView().getCenter())\r\n }\r\n f = this.bbox_ = new ol_Feature(geom)\r\n var features = []\r\n var g = geom.getCoordinates()[0]\r\n if (!this.ispt_ || ptRadius) {\r\n features.push(f)\r\n // Middle\r\n if (!this.iscircle_ && !this.ispt_ && this.get('stretch') && this.get('scale'))\r\n for (i = 0; i < g.length - 1; i++) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point([(g[i][0] + g[i + 1][0]) / 2, (g[i][1] + g[i + 1][1]) / 2]), handle: 'scale', constraint: i % 2 ? \"h\" : \"v\", option: i })\r\n features.push(f)\r\n }\r\n // Handles\r\n if (this.get('scale'))\r\n for (i = 0; i < g.length - 1; i++) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point(g[i]), handle: 'scale', option: i })\r\n features.push(f)\r\n }\r\n // Center\r\n if (this.get('translate') && !this.get('translateFeature')) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point([(g[0][0] + g[2][0]) / 2, (g[0][1] + g[2][1]) / 2]), handle: 'translate' })\r\n features.push(f)\r\n }\r\n }\r\n // Rotate\r\n if (!this.iscircle_ && this.get('rotate')) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point(g[3]), handle: 'rotate' })\r\n features.push(f)\r\n }\r\n // Add sketch\r\n this.overlayLayer_.getSource().addFeatures(features)\r\n }\r\n\r\n }\r\n /** Select a feature to transform\r\n * @param {ol.Feature} feature the feature to transform\r\n * @param {boolean} add true to add the feature to the selection, default false\r\n */\r\n select(feature, add) {\r\n if (!feature) {\r\n if (this.selection_) {\r\n this.selection_.clear()\r\n this.drawSketch_()\r\n }\r\n return\r\n }\r\n if (!feature.getGeometry || !feature.getGeometry()) return\r\n // Add to selection\r\n if (add) {\r\n this.selection_.push(feature)\r\n } else {\r\n var index = this.selection_.getArray().indexOf(feature)\r\n this.selection_.removeAt(index)\r\n }\r\n this.ispt_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Point\") : false)\r\n this.iscircle_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Circle\") : false)\r\n this.drawSketch_()\r\n this.watchFeatures_()\r\n // select event\r\n this.dispatchEvent({ type: 'select', feature: feature, features: this.selection_ })\r\n }\r\n /** Update the selection collection.\r\n * @param {ol.Collection} features the features to transform\r\n */\r\n setSelection(features) {\r\n this.selection_.clear()\r\n features.forEach(function (feature) {\r\n this.selection_.push(feature)\r\n }.bind(this))\r\n\r\n this.ispt_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Point\") : false)\r\n this.iscircle_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Circle\") : false)\r\n this.drawSketch_()\r\n this.watchFeatures_()\r\n // select event\r\n this.dispatchEvent({ type: 'select', features: this.selection_ })\r\n }\r\n /** Watch selected features\r\n * @private\r\n */\r\n watchFeatures_() {\r\n // Listen to feature modification\r\n if (this._featureListeners) {\r\n this._featureListeners.forEach(function (l) {\r\n ol_Observable_unByKey(l)\r\n })\r\n }\r\n this._featureListeners = []\r\n this.selection_.forEach(function (f) {\r\n this._featureListeners.push(\r\n f.on('change', function () {\r\n if (!this.isUpdating_) {\r\n this.drawSketch_()\r\n }\r\n }.bind(this))\r\n )\r\n }.bind(this))\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n * @private\r\n */\r\n handleDownEvent_(evt) {\r\n if (!this._handleEvent(evt, this.selection_))\r\n return\r\n var sel = this.getFeatureAtPixel_(evt.pixel)\r\n var feature = sel.feature\r\n if (this.selection_.getLength()\r\n && this.selection_.getArray().indexOf(feature) >= 0\r\n && ((this.ispt_ && this.get('translate')) || this.get('translateFeature'))) {\r\n sel.handle = 'translate'\r\n }\r\n if (sel.handle) {\r\n this.mode_ = sel.handle\r\n this.opt_ = sel.option\r\n this.constraint_ = sel.constraint\r\n // Save info\r\n var viewRotation = this.getMap().getView().getRotation()\r\n // Get coordinate of the handle (for snapping)\r\n this.coordinate_ = feature.get('handle') ? feature.getGeometry().getCoordinates() : evt.coordinate;\r\n this.pixel_ = this.getMap().getCoordinateFromPixel(this.coordinate_) // evt.pixel;\r\n this.geoms_ = []\r\n this.rotatedGeoms_ = []\r\n var extent = ol_extent_createEmpty()\r\n var rotExtent = ol_extent_createEmpty()\r\n for (var i = 0, f; f = this.selection_.item(i); i++) {\r\n this.geoms_.push(f.getGeometry().clone())\r\n extent = ol_extent_extend(extent, f.getGeometry().getExtent())\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n var rotGeom = this.getGeometryRotateToZero_(f, true)\r\n this.rotatedGeoms_.push(rotGeom)\r\n rotExtent = ol_extent_extend(rotExtent, rotGeom.getExtent())\r\n }\r\n }\r\n this.extent_ = (ol_geom_Polygon_fromExtent(extent)).getCoordinates()[0]\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n this.rotatedExtent_ = (ol_geom_Polygon_fromExtent(rotExtent)).getCoordinates()[0]\r\n }\r\n if (this.mode_ === 'rotate') {\r\n this.center_ = this.getCenter() || ol_extent_getCenter(extent)\r\n // we are now rotating (cursor down on rotate mode), so apply the grabbing cursor\r\n var element = evt.map.getTargetElement()\r\n ol_ext_element.setCursor(element, this.Cursors.rotate0)\r\n this.previousCursor_ = element.style.cursor\r\n } else {\r\n this.center_ = ol_extent_getCenter(extent)\r\n }\r\n this.angle_ = Math.atan2(this.center_[1] - evt.coordinate[1], this.center_[0] - evt.coordinate[0])\r\n\r\n this.dispatchEvent({\r\n type: this.mode_ + 'start',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n return true\r\n }\r\n else if (this.get('selection')) {\r\n if (feature) {\r\n if (!this.addFn_(evt))\r\n this.selection_.clear()\r\n var index = this.selection_.getArray().indexOf(feature)\r\n if (index < 0)\r\n this.selection_.push(feature)\r\n else\r\n this.selection_.removeAt(index)\r\n } else {\r\n this.selection_.clear()\r\n }\r\n this.ispt_ = this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Point\") : false\r\n this.iscircle_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Circle\") : false)\r\n this.drawSketch_()\r\n this.watchFeatures_()\r\n this.dispatchEvent({ type: 'select', feature: feature, features: this.selection_, pixel: evt.pixel, coordinate: evt.coordinate })\r\n return false\r\n }\r\n }\r\n /**\r\n * Get the rotation center\r\n * @return {ol.coordinate|undefined}\r\n */\r\n getCenter() {\r\n return this.get('center')\r\n }\r\n /**\r\n * Set the rotation center\r\n * @param {ol.coordinate|undefined} c the center point, default center on the objet\r\n */\r\n setCenter(c) {\r\n return this.set('center', c)\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @private\r\n */\r\n handleDragEvent_(evt) {\r\n if (!this._handleEvent(evt, this.features_))\r\n return\r\n var viewRotation = this.getMap().getView().getRotation()\r\n var i, j, f, geometry\r\n var pt0 = [this.coordinate_[0], this.coordinate_[1]]\r\n var pt = [evt.coordinate[0], evt.coordinate[1]]\r\n this.isUpdating_ = true\r\n switch (this.mode_) {\r\n case 'rotate': {\r\n var a = Math.atan2(this.center_[1] - pt[1], this.center_[0] - pt[0])\r\n if (!this.ispt) {\r\n // var geometry = this.geom_.clone();\r\n // geometry.rotate(a-this.angle_, this.center_);\r\n // this.feature_.setGeometry(geometry);\r\n for (i = 0, f; f = this.selection_.item(i); i++) {\r\n geometry = this.geoms_[i].clone()\r\n geometry.rotate(a - this.angle_, this.center_)\r\n // bug: ol, bad calculation circle geom extent\r\n if (geometry.getType() == 'Circle')\r\n geometry.setCenterAndRadius(geometry.getCenter(), geometry.getRadius())\r\n f.setGeometry(geometry)\r\n }\r\n }\r\n this.drawSketch_(true)\r\n this.dispatchEvent({\r\n type: 'rotating',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n angle: a - this.angle_,\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n break\r\n }\r\n case 'translate': {\r\n var deltaX = pt[0] - pt0[0]\r\n var deltaY = pt[1] - pt0[1]\r\n\r\n //this.feature_.getGeometry().translate(deltaX, deltaY);\r\n for (i = 0, f; f = this.selection_.item(i); i++) {\r\n f.getGeometry().translate(deltaX, deltaY)\r\n }\r\n this.handles_.forEach(function (f) {\r\n f.getGeometry().translate(deltaX, deltaY)\r\n })\r\n\r\n this.coordinate_ = evt.coordinate\r\n this.dispatchEvent({\r\n type: 'translating',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n delta: [deltaX, deltaY],\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n break\r\n }\r\n case 'scale': {\r\n var center = this.center_\r\n if (this.get('modifyCenter')(evt)) {\r\n var extentCoordinates = this.extent_\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n extentCoordinates = this.rotatedExtent_\r\n }\r\n center = extentCoordinates[(Number(this.opt_) + 2) % 4]\r\n }\r\n var keepRectangle = (this.geoms_.length == 1 && this._isRectangle(this.geoms_[0]))\r\n var stretch = this.constraint_\r\n var opt = this.opt_\r\n\r\n var downCoordinate = this.coordinate_\r\n var dragCoordinate = evt.coordinate\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n var downPoint = new ol_geom_Point(this.coordinate_)\r\n downPoint.rotate(viewRotation * -1, center)\r\n downCoordinate = downPoint.getCoordinates()\r\n\r\n var dragPoint = new ol_geom_Point(evt.coordinate)\r\n dragPoint.rotate(viewRotation * -1, center)\r\n dragCoordinate = dragPoint.getCoordinates()\r\n }\r\n\r\n var scx = ((dragCoordinate)[0] - (center)[0]) / (downCoordinate[0] - (center)[0])\r\n var scy = ((dragCoordinate)[1] - (center)[1]) / (downCoordinate[1] - (center)[1])\r\n var displacementVector = [dragCoordinate[0] - downCoordinate[0], (dragCoordinate)[1] - downCoordinate[1]]\r\n\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n var centerPoint = new ol_geom_Point(center)\r\n centerPoint.rotate(viewRotation * -1, this.getMap().getView().getCenter())\r\n center = centerPoint.getCoordinates()\r\n }\r\n\r\n if (this.get('noFlip')) {\r\n if (scx < 0)\r\n scx = -scx\r\n if (scy < 0)\r\n scy = -scy\r\n }\r\n\r\n if (this.constraint_) {\r\n if (this.constraint_ == \"h\")\r\n scx = 1\r\n else\r\n scy = 1\r\n } else {\r\n if (this.get('keepAspectRatio')(evt)) {\r\n scx = scy = Math.min(scx, scy)\r\n }\r\n }\r\n\r\n for (i = 0, f; f = this.selection_.item(i); i++) {\r\n geometry = (viewRotation === 0 || !this.get('enableRotatedTransform')) ? this.geoms_[i].clone() : this.rotatedGeoms_[i].clone()\r\n geometry.applyTransform(function (g1, g2, dim) {\r\n if (dim < 2) return g2\r\n\r\n if (!keepRectangle) {\r\n for (j = 0; j < g1.length; j += dim) {\r\n if (scx != 1)\r\n g2[j] = center[0] + (g1[j] - center[0]) * scx\r\n if (scy != 1)\r\n g2[j + 1] = center[1] + (g1[j + 1] - center[1]) * scy\r\n }\r\n } else {\r\n var pointArray = [[6], [0, 8], [2], [4]]\r\n var pointA = [g1[0], g1[1]]\r\n var pointB = [g1[2], g1[3]]\r\n var pointC = [g1[4], g1[5]]\r\n var pointD = [g1[6], g1[7]]\r\n var pointA1 = [g1[8], g1[9]]\r\n\r\n if (stretch) {\r\n var base = (opt % 2 === 0) ? this._countVector(pointA, pointB) : this._countVector(pointD, pointA)\r\n var projectedVector = this._projectVectorOnVector(displacementVector, base)\r\n var nextIndex = opt + 1 < pointArray.length ? opt + 1 : 0\r\n var coordsToChange = [...pointArray[opt], ...pointArray[nextIndex]]\r\n\r\n for (j = 0; j < g1.length; j += dim) {\r\n g2[j] = coordsToChange.includes(j) ? g1[j] + projectedVector[0] : g1[j]\r\n g2[j + 1] = coordsToChange.includes(j) ? g1[j + 1] + projectedVector[1] : g1[j + 1]\r\n }\r\n } else {\r\n var projectedLeft, projectedRight\r\n switch (opt) {\r\n case 0:\r\n displacementVector = this._countVector(pointD, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointC, pointD))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointA, pointD));\r\n [g2[0], g2[1]] = this._movePoint(pointA, projectedLeft);\r\n [g2[4], g2[5]] = this._movePoint(pointC, projectedRight);\r\n [g2[6], g2[7]] = this._movePoint(pointD, displacementVector);\r\n [g2[8], g2[9]] = this._movePoint(pointA1, projectedLeft)\r\n break\r\n case 1:\r\n displacementVector = this._countVector(pointA, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointD, pointA))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointB, pointA));\r\n [g2[0], g2[1]] = this._movePoint(pointA, displacementVector);\r\n [g2[2], g2[3]] = this._movePoint(pointB, projectedLeft);\r\n [g2[6], g2[7]] = this._movePoint(pointD, projectedRight);\r\n [g2[8], g2[9]] = this._movePoint(pointA1, displacementVector)\r\n break\r\n case 2:\r\n displacementVector = this._countVector(pointB, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointA, pointB))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointC, pointB));\r\n [g2[0], g2[1]] = this._movePoint(pointA, projectedRight);\r\n [g2[2], g2[3]] = this._movePoint(pointB, displacementVector);\r\n [g2[4], g2[5]] = this._movePoint(pointC, projectedLeft);\r\n [g2[8], g2[9]] = this._movePoint(pointA1, projectedRight)\r\n break\r\n case 3:\r\n displacementVector = this._countVector(pointC, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointB, pointC))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointD, pointC));\r\n [g2[2], g2[3]] = this._movePoint(pointB, projectedRight);\r\n [g2[4], g2[5]] = this._movePoint(pointC, displacementVector);\r\n [g2[6], g2[7]] = this._movePoint(pointD, projectedLeft)\r\n break\r\n }\r\n }\r\n }\r\n\r\n // bug: ol, bad calculation circle geom extent\r\n if (geometry.getType() == 'Circle') geometry.setCenterAndRadius(geometry.getCenter(), geometry.getRadius())\r\n return g2\r\n }.bind(this))\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n //geometry.rotate(viewRotation, rotationCenter);\r\n geometry.rotate(viewRotation, this.getMap().getView().getCenter())\r\n }\r\n f.setGeometry(geometry)\r\n }\r\n this.drawSketch_()\r\n this.dispatchEvent({\r\n type: 'scaling',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n scale: [scx, scy],\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n break\r\n }\r\n default: break\r\n }\r\n this.isUpdating_ = false\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n * @private\r\n */\r\n handleMoveEvent_(evt) {\r\n if (!this._handleEvent(evt, this.features_))\r\n return\r\n // console.log(\"handleMoveEvent\");\r\n if (!this.mode_) {\r\n var sel = this.getFeatureAtPixel_(evt.pixel)\r\n var element = evt.map.getTargetElement()\r\n if (sel.feature) {\r\n var c = sel.handle ? this.Cursors[(sel.handle || 'default') + (sel.constraint || '') + (sel.option || '')] : this.Cursors.select\r\n\r\n if (this.previousCursor_ === undefined) {\r\n this.previousCursor_ = element.style.cursor\r\n }\r\n ol_ext_element.setCursor(element, c);\r\n } else {\r\n if (this.previousCursor_ !== undefined) {\r\n ol_ext_element.setCursor(element, this.previousCursor_)\r\n }\r\n this.previousCursor_ = undefined\r\n }\r\n }\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `false` to stop the drag sequence.\r\n */\r\n handleUpEvent_(evt) {\r\n // remove rotate0 cursor on Up event, otherwise it's stuck on grab/grabbing\r\n if (this.mode_ === 'rotate') {\r\n var element = evt.map.getTargetElement()\r\n ol_ext_element.setCursor(element, this.Cursors.default)\r\n this.previousCursor_ = undefined\r\n }\r\n\r\n //dispatchEvent\r\n this.dispatchEvent({\r\n type: this.mode_ + 'end',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n oldgeom: this.geoms_[0],\r\n oldgeoms: this.geoms_\r\n })\r\n\r\n this.drawSketch_()\r\n this.mode_ = null\r\n return false\r\n }\r\n /** Set the point radius to calculate handles on points\r\n * @param {number|Array|function} [pointRadius=0] radius for points or a function that takes a feature and returns the radius (or [radiusX, radiusY]). If not null show handles to transform the points\r\n */\r\n setPointRadius(pointRadius) {\r\n if (typeof (pointRadius) === 'function') {\r\n this._pointRadius = pointRadius\r\n } else {\r\n this._pointRadius = function () { return pointRadius }\r\n }\r\n }\r\n /** Get the features that are selected for transform\r\n * @return ol.Collection\r\n */\r\n getFeatures() {\r\n return this.selection_;\r\n }\r\n /**\r\n * @private\r\n */\r\n _projectVectorOnVector(displacement_vector, base) {\r\n var k = (displacement_vector[0] * base[0] + displacement_vector[1] * base[1]) / (base[0] * base[0] + base[1] * base[1]);\r\n return [base[0] * k, base[1] * k];\r\n }\r\n /**\r\n * @private\r\n */\r\n _countVector(start, end) {\r\n return [end[0] - start[0], end[1] - start[1]];\r\n }\r\n /**\r\n * @private\r\n */\r\n _movePoint(point, displacementVector) {\r\n return [point[0]+displacementVector[0], point[1]+displacementVector[1]];\r\n }\r\n \r\n \r\n}\r\n\r\n/** Cursors for transform\r\n*/\r\nol_interaction_Transform.prototype.Cursors = {\r\n 'default': 'auto',\r\n 'select': 'pointer',\r\n 'translate': 'move',\r\n 'rotate': 'move',\r\n 'rotate0': 'move',\r\n 'scale': 'nesw-resize',\r\n 'scale1': 'nwse-resize',\r\n 'scale2': 'nesw-resize',\r\n 'scale3': 'nwse-resize',\r\n 'scalev': 'ew-resize',\r\n 'scaleh1': 'ns-resize',\r\n 'scalev2': 'ew-resize',\r\n 'scaleh3': 'ns-resize'\r\n};\r\n\r\nexport default ol_interaction_Transform\r\n","import ol_source_Vector from 'ol/source/Vector.js'\r\n\r\n;(function () {\r\n var clear = ol_source_Vector.prototype.clear;\r\n\r\n /** Overwrite ol/source/Vector clear to fire clearstart / clearend event\r\n */\r\n ol_source_Vector.prototype.clear = function(opt_fast) {\r\n this.dispatchEvent({ type: 'clearstart' });\r\n clear.call(this, opt_fast)\r\n this.dispatchEvent({ type: 'clearend' });\r\n };\r\n})();\r\n","import ol_Collection from 'ol/Collection.js'\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport {unByKey as ol_Observable_unByKey} from 'ol/Observable.js'\r\nimport '../source/Vector.js'\r\n\r\n/** Undo/redo interaction\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires undo\r\n * @fires redo\r\n * @fires change:add\r\n * @fires change:remove\r\n * @fires change:clear\r\n * @param {Object} options\r\n * @param {number=} options.maxLength max undo stack length (0=Infinity), default Infinity\r\n * @param {Array} options.layers array of layers to undo/redo\r\n */\r\nvar ol_interaction_UndoRedo = class olinteractionUndoRedo extends ol_interaction_Interaction {\r\n constructor(options) {\r\n options = options || {}\r\n\r\n super({\r\n handleEvent: function () {\r\n return true\r\n }\r\n })\r\n\r\n //array of layers to undo/redo\r\n this._layers = options.layers\r\n\r\n this._undoStack = new ol_Collection()\r\n this._redoStack = new ol_Collection()\r\n // Zero level stack\r\n this._undo = []\r\n this._redo = []\r\n this._undoStack.on('add', function (e) {\r\n if (e.element.level === undefined) {\r\n e.element.level = this._level\r\n if (!e.element.level) {\r\n e.element.view = {\r\n center: this.getMap().getView().getCenter(),\r\n zoom: this.getMap().getView().getZoom()\r\n }\r\n this._undo.push(e.element)\r\n }\r\n } else {\r\n if (!e.element.level)\r\n this._undo.push(this._redo.shift())\r\n }\r\n if (!e.element.level) {\r\n this.dispatchEvent({\r\n type: 'stack:add',\r\n action: e.element\r\n })\r\n }\r\n this._reduce()\r\n }.bind(this))\r\n this._undoStack.on('remove', function (e) {\r\n if (!e.element.level) {\r\n if (this._doShift) {\r\n this._undo.shift()\r\n } else {\r\n if (this._undo.length)\r\n this._redo.push(this._undo.pop())\r\n }\r\n if (!this._doClear) {\r\n this.dispatchEvent({\r\n type: 'stack:remove',\r\n action: e.element,\r\n shift: this._doShift\r\n })\r\n }\r\n }\r\n }.bind(this))\r\n // Block counter\r\n this._block = 0\r\n this._level = 0\r\n // Shift an undo action ?\r\n this._doShift = false\r\n // Start recording\r\n this._record = true\r\n // Custom definitions\r\n this._defs = {}\r\n }\r\n /** Add a custom undo/redo\r\n * @param {string} action the action key name\r\n * @param {function} undoFn function called when undoing\r\n * @param {function} redoFn function called when redoing\r\n * @api\r\n */\r\n define(action, undoFn, redoFn) {\r\n this._defs[action] = { undo: undoFn, redo: redoFn }\r\n }\r\n /** Get first level undo / redo length\r\n * @param {string} [type] get redo stack length, default get undo\r\n * @return {number}\r\n */\r\n length(type) {\r\n return (type === 'redo') ? this._redo.length : this._undo.length\r\n }\r\n /** Set undo stack max length\r\n * @param {number} length\r\n */\r\n setMaxLength(length) {\r\n length = parseInt(length)\r\n if (length && length < 0)\r\n length = 0\r\n this.set('maxLength', length)\r\n this._reduce()\r\n }\r\n /** Get undo / redo size (includes all block levels)\r\n * @param {string} [type] get redo stack length, default get undo\r\n * @return {number}\r\n */\r\n size(type) {\r\n return (type === 'redo') ? this._redoStack.getLength() : this._undoStack.getLength()\r\n }\r\n /** Set undo stack max size\r\n * @param {number} size\r\n */\r\n setMaxSize(size) {\r\n size = parseInt(size)\r\n if (size && size < 0)\r\n size = 0\r\n this.set('maxSize', size)\r\n this._reduce()\r\n }\r\n /** Reduce stack: shift undo to set size\r\n * @private\r\n */\r\n _reduce() {\r\n if (this.get('maxLength')) {\r\n while (this.length() > this.get('maxLength')) {\r\n this.shift()\r\n }\r\n }\r\n if (this.get('maxSize')) {\r\n while (this.length() > 1 && this.size() > this.get('maxSize')) {\r\n this.shift()\r\n }\r\n }\r\n }\r\n /** Get first level undo / redo first level stack\r\n * @param {string} [type] get redo stack, default get undo\r\n * @return {Array<*>}\r\n */\r\n getStack(type) {\r\n return (type === 'redo') ? this._redo : this._undo\r\n }\r\n /** Add a new custom undo/redo\r\n * @param {string} action the action key name\r\n * @param {any} prop an object that will be passed in the undo/redo functions of the action\r\n * @param {string} name action name\r\n * @return {boolean} true if the action is defined\r\n */\r\n push(action, prop, name) {\r\n if (this._defs[action]) {\r\n this._undoStack.push({\r\n type: action,\r\n name: name,\r\n custom: true,\r\n prop: prop\r\n })\r\n return true\r\n } else {\r\n console.warn('[UndoRedoInteraction]: \"' + action + '\" is not defined.')\r\n return false\r\n }\r\n }\r\n /** Remove undo action from the beginning of the stack.\r\n * The action is not returned.\r\n */\r\n shift() {\r\n this._doShift = true\r\n var a = this._undoStack.removeAt(0)\r\n this._doShift = false\r\n // Remove all block\r\n if (a.type === 'blockstart') {\r\n a = this._undoStack.item(0)\r\n while (this._undoStack.getLength() && a.level > 0) {\r\n this._undoStack.removeAt(0)\r\n a = this._undoStack.item(0)\r\n }\r\n }\r\n }\r\n /** Activate or deactivate the interaction, ie. records or not events on the map.\r\n * @param {boolean} active\r\n * @api stable\r\n */\r\n setActive(active) {\r\n super.setActive(active)\r\n this._record = active\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this._mapListener) {\r\n this._mapListener.forEach(function (l) { ol_Observable_unByKey(l) })\r\n }\r\n this._mapListener = []\r\n super.setMap(map)\r\n // Watch blocks\r\n if (map) {\r\n this._mapListener.push(map.on('undoblockstart', this.blockStart.bind(this)))\r\n this._mapListener.push(map.on('undoblockend', this.blockEnd.bind(this)))\r\n }\r\n // Watch sources\r\n this._watchSources()\r\n this._watchInteractions()\r\n }\r\n /** Watch for changes in the map sources\r\n * @private\r\n */\r\n _watchSources() {\r\n var map = this.getMap()\r\n // Clear listeners\r\n if (this._sourceListener) {\r\n this._sourceListener.forEach(function (l) { ol_Observable_unByKey(l) })\r\n }\r\n this._sourceListener = []\r\n\r\n var self = this\r\n\r\n // Ges vector layers \r\n function getVectorLayers(layers, init) {\r\n if (!init) {\r\n init = []\r\n }\r\n layers.forEach(function (l) {\r\n if (l.getSource && l.getSource() instanceof ol_source_Vector) {\r\n if (!self._layers || self._layers.indexOf(l) >= 0) {\r\n init.push(l)\r\n }\r\n } else if (l.getLayers) {\r\n getVectorLayers(l.getLayers(), init)\r\n }\r\n })\r\n return init\r\n }\r\n\r\n if (map) {\r\n // Watch the vector sources in the map \r\n var vectors = getVectorLayers(map.getLayers())\r\n vectors.forEach((function (l) {\r\n var s = l.getSource()\r\n this._sourceListener.push(s.on(['addfeature', 'removefeature'], this._onAddRemove.bind(this)))\r\n this._sourceListener.push(s.on('clearstart', function () {\r\n this.blockStart('clear')\r\n }.bind(this)))\r\n this._sourceListener.push(s.on('clearend', this.blockEnd.bind(this)))\r\n }).bind(this))\r\n\r\n // Watch new inserted/removed\r\n this._sourceListener.push(map.getLayers().on(['add', 'remove'], this._watchSources.bind(this)))\r\n }\r\n }\r\n /** Watch for interactions\r\n * @private\r\n */\r\n _watchInteractions() {\r\n var map = this.getMap()\r\n // Clear listeners\r\n if (this._interactionListener) {\r\n this._interactionListener.forEach(function (l) { ol_Observable_unByKey(l) })\r\n }\r\n this._interactionListener = []\r\n\r\n if (map) {\r\n // Watch the interactions in the map \r\n map.getInteractions().forEach((function (i) {\r\n this._interactionListener.push(i.on(\r\n ['setattributestart', 'modifystart', 'rotatestart', 'translatestart', 'scalestart', 'deletestart', 'deleteend', 'beforesplit', 'aftersplit'],\r\n this._onInteraction.bind(this)\r\n ))\r\n }).bind(this))\r\n\r\n // Watch new inserted / unwatch removed\r\n this._interactionListener.push(map.getInteractions().on(\r\n ['add', 'remove'],\r\n this._watchInteractions.bind(this)\r\n ))\r\n }\r\n }\r\n /** A feature is added / removed\r\n */\r\n _onAddRemove(e) {\r\n if (this._record) {\r\n this._redoStack.clear()\r\n this._redo.length = 0\r\n this._undoStack.push({\r\n type: e.type,\r\n source: e.target,\r\n feature: e.feature\r\n })\r\n }\r\n }\r\n /** Perform an interaction\r\n * @private\r\n */\r\n _onInteraction(e) {\r\n var fn = this._onInteraction[e.type]\r\n if (fn)\r\n fn.call(this, e)\r\n }\r\n /** Start an undo block\r\n * @param {string} [name] name f the action\r\n * @api\r\n */\r\n blockStart(name) {\r\n this._redoStack.clear()\r\n this._redo.length = 0\r\n this._undoStack.push({\r\n type: 'blockstart',\r\n name: name\r\n })\r\n this._level++\r\n }\r\n /** End an undo block\r\n * @api\r\n */\r\n blockEnd() {\r\n this._undoStack.push({ type: 'blockend' })\r\n this._level--\r\n }\r\n /** handle undo/redo\r\n * @private\r\n */\r\n _handleDo(e, undo) {\r\n // Not active\r\n if (!this.getActive())\r\n return\r\n\r\n // Stop recording while undoing\r\n this._record = false\r\n if (e.custom) {\r\n if (this._defs[e.type]) {\r\n if (undo)\r\n this._defs[e.type].undo(e.prop)\r\n else\r\n this._defs[e.type].redo(e.prop)\r\n } else {\r\n console.warn('[UndoRedoInteraction]: \"' + e.type + '\" is not defined.')\r\n }\r\n } else {\r\n switch (e.type) {\r\n case 'addfeature': {\r\n if (undo)\r\n e.source.removeFeature(e.feature)\r\n else\r\n e.source.addFeature(e.feature)\r\n break\r\n }\r\n case 'removefeature': {\r\n if (undo)\r\n e.source.addFeature(e.feature)\r\n else\r\n e.source.removeFeature(e.feature)\r\n break\r\n }\r\n case 'changegeometry': {\r\n var geom = e.feature.getGeometry()\r\n e.feature.setGeometry(e.oldGeom)\r\n e.oldGeom = geom\r\n break\r\n }\r\n case 'changeattribute': {\r\n var newp = e.newProperties\r\n var oldp = e.oldProperties\r\n for (var p in oldp) {\r\n if (oldp === undefined)\r\n e.feature.unset(p)\r\n else\r\n e.feature.set(p, oldp[p])\r\n }\r\n e.oldProperties = newp\r\n e.newProperties = oldp\r\n break\r\n }\r\n case 'blockstart': {\r\n this._block += undo ? -1 : 1\r\n break\r\n }\r\n case 'blockend': {\r\n this._block += undo ? 1 : -1\r\n break\r\n }\r\n default: {\r\n console.warn('[UndoRedoInteraction]: \"' + e.type + '\" is not defined.')\r\n }\r\n }\r\n }\r\n\r\n // Handle block\r\n if (this._block < 0)\r\n this._block = 0\r\n if (this._block) {\r\n if (undo)\r\n this.undo()\r\n else\r\n this.redo()\r\n }\r\n this._record = true\r\n\r\n // Dispatch event\r\n this.dispatchEvent({\r\n type: undo ? 'undo' : 'redo',\r\n action: e\r\n })\r\n }\r\n /** Undo last operation\r\n * @api\r\n */\r\n undo() {\r\n var e = this._undoStack.item(this._undoStack.getLength() - 1)\r\n if (!e)\r\n return\r\n this._redoStack.push(e)\r\n this._undoStack.pop()\r\n this._handleDo(e, true)\r\n }\r\n /** Redo last operation\r\n * @api\r\n */\r\n redo() {\r\n var e = this._redoStack.item(this._redoStack.getLength() - 1)\r\n if (!e)\r\n return\r\n this._undoStack.push(e)\r\n this._redoStack.pop()\r\n this._handleDo(e, false)\r\n }\r\n /** Clear undo stack\r\n * @api\r\n */\r\n clear() {\r\n this._doClear = true\r\n this._undo.length = this._redo.length = 0\r\n this._undoStack.clear()\r\n this._redoStack.clear()\r\n this._doClear = false\r\n this.dispatchEvent({ type: 'stack:clear' })\r\n }\r\n /** Check if undo is avaliable\r\n * @return {number} the number of undo\r\n * @api\r\n */\r\n hasUndo() {\r\n return this._undoStack.getLength()\r\n }\r\n /** Check if redo is avaliable\r\n * @return {number} the number of redo\r\n * @api\r\n */\r\n hasRedo() {\r\n return this._redoStack.getLength()\r\n }\r\n}\r\n\r\n/** Set attribute\r\n * @private\r\n */\r\nol_interaction_UndoRedo.prototype._onInteraction.setattributestart = function(e) {\r\n this.blockStart(e.target.get('name') || 'setattribute');\r\n var newp = Object.assign({}, e.properties);\r\n e.features.forEach(function(f) {\r\n var oldp = {};\r\n for (var p in newp) {\r\n oldp[p] = f.get(p);\r\n }\r\n this._undoStack.push({\r\n type: 'changeattribute', \r\n feature: f,\r\n newProperties: newp,\r\n oldProperties: oldp\r\n });\r\n }.bind(this));\r\n this.blockEnd();\r\n};\r\n\r\nol_interaction_UndoRedo.prototype._onInteraction.rotatestart = \r\nol_interaction_UndoRedo.prototype._onInteraction.translatestart = \r\nol_interaction_UndoRedo.prototype._onInteraction.scalestart = \r\nol_interaction_UndoRedo.prototype._onInteraction.modifystart = function (e) {\r\n this.blockStart(e.type.replace(/start$/,''));\r\n e.features.forEach(function(m) {\r\n this._undoStack.push({ \r\n type: 'changegeometry', \r\n feature: m, \r\n oldGeom: m.getGeometry().clone() \r\n });\r\n }.bind(this));\r\n this.blockEnd();\r\n};\r\n\r\n\r\n/** @private\r\n */\r\nol_interaction_UndoRedo.prototype._onInteraction.beforesplit = function() {\r\n // Check modify before split\r\n var l = this._undoStack.getLength();\r\n if (l>2 \r\n && this._undoStack.item(l-1).type === 'blockend'\r\n && this._undoStack.item(l-2).type === 'changegeometry') {\r\n this._undoStack.pop();\r\n } else {\r\n this.blockStart('split');\r\n }\r\n};\r\nol_interaction_UndoRedo.prototype._onInteraction.deletestart = function() {\r\n this.blockStart('delete');\r\n}\r\n\r\n\r\n/** @private\r\n */\r\nol_interaction_UndoRedo.prototype._onInteraction.aftersplit =\r\nol_interaction_UndoRedo.prototype._onInteraction.deleteend =\r\nol_interaction_UndoRedo.prototype.blockEnd;\r\n\r\nexport default ol_interaction_UndoRedo\r\n","import ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Circle from 'ol/style/Circle.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\n\r\nvar ol_style_Style_defaultStyle;\r\n\r\n(function() {\r\n\r\n// Style\r\nvar white = [255, 255, 255, 1];\r\nvar blue = [0, 153, 255, 1];\r\nvar width = 3;\r\n\r\nvar defaultEditStyle = [\r\n new ol_style_Style({\r\n stroke: new ol_style_Stroke({ color: white, width: width + 2 })\r\n }),\r\n new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: width * 2,\r\n fill: new ol_style_Fill({ color: blue }),\r\n stroke: new ol_style_Stroke({ color: white, width: width / 2 })\r\n }),\r\n stroke: new ol_style_Stroke({ color: blue, width: width }),\r\n fill: new ol_style_Fill({\r\n color: [255, 255, 255, 0.5]\r\n })\r\n })\r\n];\r\n\r\n/**\r\n * Get the default style\r\n * @param {boolean|*} [edit] true to get editing style or a { color, fillColor } object, default get default blue style\r\n * @return {Array}\r\n */\r\nol_style_Style_defaultStyle = function(edit) {\r\n if (edit===true) {\r\n return defaultEditStyle;\r\n } else {\r\n edit = edit || {};\r\n var fill = new ol_style_Fill({\r\n color: edit.fillColor || 'rgba(255,255,255,0.4)'\r\n });\r\n var stroke = new ol_style_Stroke({\r\n color: edit.color || '#3399CC',\r\n width: 1.25\r\n });\r\n var style = new ol_style_Style({\r\n image: new ol_style_Circle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: 5\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n });\r\n return [ style ];\r\n }\r\n};\r\n\r\n})();\r\n\r\nexport default ol_style_Style_defaultStyle\r\n","/**\n * @module ol/geom/Circle\n */\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {createOrUpdate, forEachCorner, intersects} from '../extent.js';\nimport {deflateCoordinate} from './flat/deflate.js';\nimport {rotate} from './flat/transform.js';\n\n/**\n * @classdesc\n * Circle geometry.\n *\n * @api\n */\nclass Circle extends SimpleGeometry {\n /**\n * @param {!import(\"../coordinate.js\").Coordinate} center Center.\n * For internal use, flat coordinates in combination with `layout` and no\n * `radius` are also accepted.\n * @param {number} [radius] Radius in units of the projection.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n constructor(center, radius, layout) {\n super();\n if (layout !== undefined && radius === undefined) {\n this.setFlatCoordinates(layout, center);\n } else {\n radius = radius ? radius : 0;\n this.setCenterAndRadius(center, radius, layout);\n }\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!Circle} Clone.\n * @api\n */\n clone() {\n const circle = new Circle(\n this.flatCoordinates.slice(),\n undefined,\n this.layout,\n );\n circle.applyProperties(this);\n return circle;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n const flatCoordinates = this.flatCoordinates;\n const dx = x - flatCoordinates[0];\n const dy = y - flatCoordinates[1];\n const squaredDistance = dx * dx + dy * dy;\n if (squaredDistance < minSquaredDistance) {\n if (squaredDistance === 0) {\n for (let i = 0; i < this.stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n } else {\n const delta = this.getRadius() / Math.sqrt(squaredDistance);\n closestPoint[0] = flatCoordinates[0] + delta * dx;\n closestPoint[1] = flatCoordinates[1] + delta * dy;\n for (let i = 2; i < this.stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n }\n closestPoint.length = this.stride;\n return squaredDistance;\n }\n return minSquaredDistance;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n containsXY(x, y) {\n const flatCoordinates = this.flatCoordinates;\n const dx = x - flatCoordinates[0];\n const dy = y - flatCoordinates[1];\n return dx * dx + dy * dy <= this.getRadiusSquared_();\n }\n\n /**\n * Return the center of the circle as {@link module:ol/coordinate~Coordinate coordinate}.\n * @return {import(\"../coordinate.js\").Coordinate} Center.\n * @api\n */\n getCenter() {\n return this.flatCoordinates.slice(0, this.stride);\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n const flatCoordinates = this.flatCoordinates;\n const radius = flatCoordinates[this.stride] - flatCoordinates[0];\n return createOrUpdate(\n flatCoordinates[0] - radius,\n flatCoordinates[1] - radius,\n flatCoordinates[0] + radius,\n flatCoordinates[1] + radius,\n extent,\n );\n }\n\n /**\n * Return the radius of the circle.\n * @return {number} Radius.\n * @api\n */\n getRadius() {\n return Math.sqrt(this.getRadiusSquared_());\n }\n\n /**\n * @private\n * @return {number} Radius squared.\n */\n getRadiusSquared_() {\n const dx = this.flatCoordinates[this.stride] - this.flatCoordinates[0];\n const dy = this.flatCoordinates[this.stride + 1] - this.flatCoordinates[1];\n return dx * dx + dy * dy;\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n getType() {\n return 'Circle';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n intersectsExtent(extent) {\n const circleExtent = this.getExtent();\n if (intersects(extent, circleExtent)) {\n const center = this.getCenter();\n\n if (extent[0] <= center[0] && extent[2] >= center[0]) {\n return true;\n }\n if (extent[1] <= center[1] && extent[3] >= center[1]) {\n return true;\n }\n\n return forEachCorner(extent, this.intersectsCoordinate.bind(this));\n }\n return false;\n }\n\n /**\n * Set the center of the circle as {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} center Center.\n * @api\n */\n setCenter(center) {\n const stride = this.stride;\n const radius = this.flatCoordinates[stride] - this.flatCoordinates[0];\n const flatCoordinates = center.slice();\n flatCoordinates[stride] = flatCoordinates[0] + radius;\n for (let i = 1; i < stride; ++i) {\n flatCoordinates[stride + i] = center[i];\n }\n this.setFlatCoordinates(this.layout, flatCoordinates);\n this.changed();\n }\n\n /**\n * Set the center (as {@link module:ol/coordinate~Coordinate coordinate}) and the radius (as\n * number) of the circle.\n * @param {!import(\"../coordinate.js\").Coordinate} center Center.\n * @param {number} radius Radius.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n */\n setCenterAndRadius(center, radius, layout) {\n this.setLayout(layout, center, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n /** @type {Array} */\n const flatCoordinates = this.flatCoordinates;\n let offset = deflateCoordinate(flatCoordinates, 0, center, this.stride);\n flatCoordinates[offset++] = flatCoordinates[0] + radius;\n for (let i = 1, ii = this.stride; i < ii; ++i) {\n flatCoordinates[offset++] = flatCoordinates[i];\n }\n flatCoordinates.length = offset;\n this.changed();\n }\n\n getCoordinates() {\n return null;\n }\n\n setCoordinates(coordinates, layout) {}\n\n /**\n * Set the radius of the circle. The radius is in the units of the projection.\n * @param {number} radius Radius.\n * @api\n */\n setRadius(radius) {\n this.flatCoordinates[this.stride] = this.flatCoordinates[0] + radius;\n this.changed();\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n const center = this.getCenter();\n const stride = this.getStride();\n this.setCenter(\n rotate(center, 0, center.length, stride, angle, anchor, center),\n );\n this.changed();\n }\n}\n\n/**\n * Transform each coordinate of the circle from one coordinate reference system\n * to another. The geometry is modified in place.\n * If you do not want the geometry modified in place, first clone() it and\n * then use this function on the clone.\n *\n * Internally a circle is currently represented by two points: the center of\n * the circle `[cx, cy]`, and the point to the right of the circle\n * `[cx + r, cy]`. This `transform` function just transforms these two points.\n * So the resulting geometry is also a circle, and that circle does not\n * correspond to the shape that would be obtained by transforming every point\n * of the original circle.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Circle} This geometry. Note that original geometry is\n * modified in place.\n * @function\n * @api\n */\nCircle.prototype.transform;\nexport default Circle;\n","/**\n * @module ol/interaction/Draw\n */\nimport Circle from '../geom/Circle.js';\nimport Event from '../events/Event.js';\nimport EventType from '../events/EventType.js';\nimport Feature from '../Feature.js';\nimport GeometryCollection from '../geom/GeometryCollection.js';\nimport InteractionProperty from './Property.js';\nimport LineString from '../geom/LineString.js';\nimport MapBrowserEvent from '../MapBrowserEvent.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport MultiLineString from '../geom/MultiLineString.js';\nimport MultiPoint from '../geom/MultiPoint.js';\nimport MultiPolygon from '../geom/MultiPolygon.js';\nimport Point from '../geom/Point.js';\nimport PointerInteraction from './Pointer.js';\nimport Polygon, {fromCircle, makeRegular} from '../geom/Polygon.js';\nimport VectorLayer from '../layer/Vector.js';\nimport VectorSource from '../source/Vector.js';\nimport {FALSE, TRUE} from '../functions.js';\nimport {\n always,\n never,\n noModifierKeys,\n shiftKeyOnly,\n} from '../events/condition.js';\nimport {\n boundingExtent,\n getBottomLeft,\n getBottomRight,\n getTopLeft,\n getTopRight,\n} from '../extent.js';\nimport {clamp, squaredDistance, toFixed} from '../math.js';\nimport {createEditingStyle} from '../style/Style.js';\nimport {\n distance,\n squaredDistance as squaredCoordinateDistance,\n} from '../coordinate.js';\nimport {fromUserCoordinate, getUserProjection} from '../proj.js';\nimport {getStrideForLayout} from '../geom/SimpleGeometry.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../geom/Geometry.js\").Type} type Geometry type of\n * the geometries being drawn with this instance.\n * @property {number} [clickTolerance=6] The maximum distance in pixels between\n * \"down\" and \"up\" for a \"up\" event to be considered a \"click\" event and\n * actually add a point/vertex to the geometry being drawn. The default of `6`\n * was chosen for the draw interaction to behave correctly on mouse as well as\n * on touch devices.\n * @property {import(\"../Collection.js\").default} [features]\n * Destination collection for the drawn features.\n * @property {VectorSource} [source] Destination source for\n * the drawn features.\n * @property {number} [dragVertexDelay=500] Delay in milliseconds after pointerdown\n * before the current vertex can be dragged to its exact position.\n * @property {number} [snapTolerance=12] Pixel distance for snapping to the\n * drawing finish. Must be greater than `0`.\n * @property {boolean} [stopClick=false] Stop click, singleclick, and\n * doubleclick events from firing during drawing.\n * @property {number} [maxPoints] The number of points that can be drawn before\n * a polygon ring or line string is finished. By default there is no\n * restriction.\n * @property {number} [minPoints] The number of points that must be drawn\n * before a polygon ring or line string can be finished. Default is `3` for\n * polygon rings and `2` for line strings.\n * @property {import(\"../events/condition.js\").Condition} [finishCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether the drawing can be finished. Not used when drawing\n * POINT or MULTI_POINT geometries.\n * @property {import(\"../style/Style.js\").StyleLike|import(\"../style/flat.js\").FlatStyleLike} [style]\n * Style for sketch features. The draw interaction can have up to three sketch features, depending on the mode.\n * It will always contain a feature with a `Point` geometry that corresponds to the current cursor position.\n * If the mode is `LineString` or `Polygon`, and there is at least one drawn point, it will also contain a feature with\n * a `LineString` geometry that corresponds to the line between the already drawn points and the current cursor position.\n * If the mode is `Polygon`, and there is at least one drawn point, it will also contain a feature with a `Polygon`\n * geometry that corresponds to the polygon between the already drawn points and the current cursor position\n * (note that this polygon has only two points if only one point is drawn).\n * If the mode is `Circle`, and there is one point drawn, it will also contain a feature with a `Circle` geometry whose\n * center is the drawn point and the radius is determined by the distance between the drawn point and the cursor.\n * @property {GeometryFunction} [geometryFunction]\n * Function that is called when a geometry's coordinates are updated.\n * @property {string} [geometryName] Geometry name to use for features created\n * by the draw interaction.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default {@link module:ol/events/condition.noModifierKeys}, i.e. a click,\n * adds a vertex or deactivates freehand drawing.\n * @property {boolean} [freehand=false] Operate in freehand mode for lines,\n * polygons, and circles. This makes the interaction always operate in freehand\n * mode and takes precedence over any `freehandCondition` option.\n * @property {import(\"../events/condition.js\").Condition} [freehandCondition]\n * Condition that activates freehand drawing for lines and polygons. This\n * function takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and\n * returns a boolean to indicate whether that event should be handled. The\n * default is {@link module:ol/events/condition.shiftKeyOnly}, meaning that the\n * Shift key activates freehand drawing.\n * @property {boolean|import(\"../events/condition.js\").Condition} [trace=false] Trace a portion of another geometry.\n * Ignored when in freehand mode.\n * @property {VectorSource} [traceSource] Source for features to trace. If tracing is active and a `traceSource` is\n * not provided, the interaction's `source` will be used. Tracing requires that the interaction is configured with\n * either a `traceSource` or a `source`.\n * @property {boolean} [wrapX=false] Wrap the world horizontally on the sketch\n * overlay.\n * @property {import(\"../geom/Geometry.js\").GeometryLayout} [geometryLayout='XY'] Layout of the\n * feature geometries created by the draw interaction.\n */\n\n/**\n * Coordinate type when drawing points.\n * @typedef {import(\"../coordinate.js\").Coordinate} PointCoordType\n */\n\n/**\n * Coordinate type when drawing lines.\n * @typedef {Array} LineCoordType\n */\n\n/**\n * Coordinate type when drawing polygons.\n * @typedef {Array>} PolyCoordType\n */\n\n/**\n * Types used for drawing coordinates.\n * @typedef {PointCoordType|LineCoordType|PolyCoordType} SketchCoordType\n */\n\n/**\n * @typedef {Object} TraceState\n * @property {boolean} active Tracing active.\n * @property {import(\"../pixel.js\").Pixel} [startPx] The initially clicked pixel location.\n * @property {Array} [targets] Targets available for tracing.\n * @property {number} [targetIndex] The index of the currently traced target. A value of -1 indicates\n * that no trace target is active.\n */\n\n/**\n * @typedef {Object} TraceTarget\n * @property {Array} coordinates Target coordinates.\n * @property {boolean} ring The target coordinates are a linear ring.\n * @property {number} startIndex The index of first traced coordinate. A fractional index represents an\n * edge intersection. Index values for rings will wrap (may be negative or larger than coordinates length).\n * @property {number} endIndex The index of last traced coordinate. Details from startIndex also apply here.\n */\n\n/**\n * Function that takes an array of coordinates and an optional existing geometry\n * and a projection as arguments, and returns a geometry. The optional existing\n * geometry is the geometry that is returned when the function is called without\n * a second argument.\n * @typedef {function(!SketchCoordType, import(\"../geom/SimpleGeometry.js\").default,\n * import(\"../proj/Projection.js\").default):\n * import(\"../geom/SimpleGeometry.js\").default} GeometryFunction\n */\n\n/**\n * @typedef {'Point' | 'LineString' | 'Polygon' | 'Circle'} Mode\n * Draw mode. This collapses multi-part geometry types with their single-part\n * cousins.\n */\n\n/**\n * @enum {string}\n */\nconst DrawEventType = {\n /**\n * Triggered upon feature draw start\n * @event DrawEvent#drawstart\n * @api\n */\n DRAWSTART: 'drawstart',\n /**\n * Triggered upon feature draw end\n * @event DrawEvent#drawend\n * @api\n */\n DRAWEND: 'drawend',\n /**\n * Triggered upon feature draw abortion\n * @event DrawEvent#drawabort\n * @api\n */\n DRAWABORT: 'drawabort',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Draw~Draw} instances are\n * instances of this type.\n */\nexport class DrawEvent extends Event {\n /**\n * @param {DrawEventType} type Type.\n * @param {Feature} feature The feature drawn.\n */\n constructor(type, feature) {\n super(type);\n\n /**\n * The feature being drawn.\n * @type {Feature}\n * @api\n */\n this.feature = feature;\n }\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The coordinate.\n * @param {Array} features The candidate features.\n * @return {Array} The trace targets.\n */\nfunction getTraceTargets(coordinate, features) {\n /**\n * @type {Array}\n */\n const targets = [];\n\n for (let i = 0; i < features.length; ++i) {\n const feature = features[i];\n const geometry = feature.getGeometry();\n appendGeometryTraceTargets(coordinate, geometry, targets);\n }\n\n return targets;\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} a One coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b Another coordinate.\n * @return {number} The squared distance between the two coordinates.\n */\nfunction getSquaredDistance(a, b) {\n return squaredDistance(a[0], a[1], b[0], b[1]);\n}\n\n/**\n * @param {LineCoordType} coordinates The ring coordinates.\n * @param {number} index The index. May be wrapped.\n * @return {import(\"../coordinate.js\").Coordinate} The coordinate.\n */\nfunction getCoordinate(coordinates, index) {\n const count = coordinates.length;\n if (index < 0) {\n return coordinates[index + count];\n }\n if (index >= count) {\n return coordinates[index - count];\n }\n return coordinates[index];\n}\n\n/**\n * Get the cumulative squared distance along a ring path. The end index index may be \"wrapped\" and it may\n * be less than the start index to indicate the direction of travel. The start and end index may have\n * a fractional part to indicate a point between two coordinates.\n * @param {LineCoordType} coordinates Ring coordinates.\n * @param {number} startIndex The start index.\n * @param {number} endIndex The end index.\n * @return {number} The cumulative squared distance along the ring path.\n */\nfunction getCumulativeSquaredDistance(coordinates, startIndex, endIndex) {\n let lowIndex, highIndex;\n if (startIndex < endIndex) {\n lowIndex = startIndex;\n highIndex = endIndex;\n } else {\n lowIndex = endIndex;\n highIndex = startIndex;\n }\n const lowWholeIndex = Math.ceil(lowIndex);\n const highWholeIndex = Math.floor(highIndex);\n\n if (lowWholeIndex > highWholeIndex) {\n // both start and end are on the same segment\n const start = interpolateCoordinate(coordinates, lowIndex);\n const end = interpolateCoordinate(coordinates, highIndex);\n return getSquaredDistance(start, end);\n }\n\n let sd = 0;\n\n if (lowIndex < lowWholeIndex) {\n const start = interpolateCoordinate(coordinates, lowIndex);\n const end = getCoordinate(coordinates, lowWholeIndex);\n sd += getSquaredDistance(start, end);\n }\n\n if (highWholeIndex < highIndex) {\n const start = getCoordinate(coordinates, highWholeIndex);\n const end = interpolateCoordinate(coordinates, highIndex);\n sd += getSquaredDistance(start, end);\n }\n\n for (let i = lowWholeIndex; i < highWholeIndex - 1; ++i) {\n const start = getCoordinate(coordinates, i);\n const end = getCoordinate(coordinates, i + 1);\n sd += getSquaredDistance(start, end);\n }\n\n return sd;\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The coordinate.\n * @param {import(\"../geom/Geometry.js\").default} geometry The candidate geometry.\n * @param {Array} targets The trace targets.\n */\nfunction appendGeometryTraceTargets(coordinate, geometry, targets) {\n if (geometry instanceof LineString) {\n appendTraceTarget(coordinate, geometry.getCoordinates(), false, targets);\n return;\n }\n if (geometry instanceof MultiLineString) {\n const coordinates = geometry.getCoordinates();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n appendTraceTarget(coordinate, coordinates[i], false, targets);\n }\n return;\n }\n if (geometry instanceof Polygon) {\n const coordinates = geometry.getCoordinates();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n appendTraceTarget(coordinate, coordinates[i], true, targets);\n }\n return;\n }\n if (geometry instanceof MultiPolygon) {\n const polys = geometry.getCoordinates();\n for (let i = 0, ii = polys.length; i < ii; ++i) {\n const coordinates = polys[i];\n for (let j = 0, jj = coordinates.length; j < jj; ++j) {\n appendTraceTarget(coordinate, coordinates[j], true, targets);\n }\n }\n return;\n }\n if (geometry instanceof GeometryCollection) {\n const geometries = geometry.getGeometries();\n for (let i = 0; i < geometries.length; ++i) {\n appendGeometryTraceTargets(coordinate, geometries[i], targets);\n }\n return;\n }\n // other types cannot be traced\n}\n\n/**\n * @typedef {Object} TraceTargetUpdateInfo\n * @property {number} index The new target index.\n * @property {number} endIndex The new segment end index.\n */\n\n/**\n * @type {TraceTargetUpdateInfo}\n */\nconst sharedUpdateInfo = {index: -1, endIndex: NaN};\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The coordinate.\n * @param {TraceState} traceState The trace state.\n * @param {import(\"../Map.js\").default} map The map.\n * @param {number} snapTolerance The snap tolerance.\n * @return {TraceTargetUpdateInfo} Information about the new trace target. The returned\n * object is reused between calls and must not be modified by the caller.\n */\nfunction getTraceTargetUpdate(coordinate, traceState, map, snapTolerance) {\n const x = coordinate[0];\n const y = coordinate[1];\n\n let closestTargetDistance = Infinity;\n\n let newTargetIndex = -1;\n let newEndIndex = NaN;\n\n for (\n let targetIndex = 0;\n targetIndex < traceState.targets.length;\n ++targetIndex\n ) {\n const target = traceState.targets[targetIndex];\n const coordinates = target.coordinates;\n\n let minSegmentDistance = Infinity;\n let endIndex;\n for (\n let coordinateIndex = 0;\n coordinateIndex < coordinates.length - 1;\n ++coordinateIndex\n ) {\n const start = coordinates[coordinateIndex];\n const end = coordinates[coordinateIndex + 1];\n const rel = getPointSegmentRelationship(x, y, start, end);\n if (rel.squaredDistance < minSegmentDistance) {\n minSegmentDistance = rel.squaredDistance;\n endIndex = coordinateIndex + rel.along;\n }\n }\n\n if (minSegmentDistance < closestTargetDistance) {\n closestTargetDistance = minSegmentDistance;\n if (target.ring && traceState.targetIndex === targetIndex) {\n // same target, maintain the same trace direction\n if (target.endIndex > target.startIndex) {\n // forward trace\n if (endIndex < target.startIndex) {\n endIndex += coordinates.length;\n }\n } else if (target.endIndex < target.startIndex) {\n // reverse trace\n if (endIndex > target.startIndex) {\n endIndex -= coordinates.length;\n }\n }\n }\n newEndIndex = endIndex;\n newTargetIndex = targetIndex;\n }\n }\n\n const newTarget = traceState.targets[newTargetIndex];\n let considerBothDirections = newTarget.ring;\n if (traceState.targetIndex === newTargetIndex && considerBothDirections) {\n // only consider switching trace direction if close to the start\n const newCoordinate = interpolateCoordinate(\n newTarget.coordinates,\n newEndIndex,\n );\n const pixel = map.getPixelFromCoordinate(newCoordinate);\n if (distance(pixel, traceState.startPx) > snapTolerance) {\n considerBothDirections = false;\n }\n }\n\n if (considerBothDirections) {\n const coordinates = newTarget.coordinates;\n const count = coordinates.length;\n const startIndex = newTarget.startIndex;\n const endIndex = newEndIndex;\n if (startIndex < endIndex) {\n const forwardDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex,\n );\n const reverseDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex - count,\n );\n if (reverseDistance < forwardDistance) {\n newEndIndex -= count;\n }\n } else {\n const reverseDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex,\n );\n const forwardDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex + count,\n );\n if (forwardDistance < reverseDistance) {\n newEndIndex += count;\n }\n }\n }\n\n sharedUpdateInfo.index = newTargetIndex;\n sharedUpdateInfo.endIndex = newEndIndex;\n return sharedUpdateInfo;\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The clicked coordinate.\n * @param {Array} coordinates The geometry component coordinates.\n * @param {boolean} ring The coordinates represent a linear ring.\n * @param {Array} targets The trace targets.\n */\nfunction appendTraceTarget(coordinate, coordinates, ring, targets) {\n const x = coordinate[0];\n const y = coordinate[1];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n const start = coordinates[i];\n const end = coordinates[i + 1];\n const rel = getPointSegmentRelationship(x, y, start, end);\n if (rel.squaredDistance === 0) {\n const index = i + rel.along;\n targets.push({\n coordinates: coordinates,\n ring: ring,\n startIndex: index,\n endIndex: index,\n });\n return;\n }\n }\n}\n\n/**\n * @typedef {Object} PointSegmentRelationship\n * @property {number} along The closest point expressed as a fraction along the segment length.\n * @property {number} squaredDistance The squared distance of the point to the segment.\n */\n\n/**\n * @type {PointSegmentRelationship}\n */\nconst sharedRel = {along: 0, squaredDistance: 0};\n\n/**\n * @param {number} x The point x.\n * @param {number} y The point y.\n * @param {import(\"../coordinate.js\").Coordinate} start The segment start.\n * @param {import(\"../coordinate.js\").Coordinate} end The segment end.\n * @return {PointSegmentRelationship} The point segment relationship. The returned object is\n * shared between calls and must not be modified by the caller.\n */\nfunction getPointSegmentRelationship(x, y, start, end) {\n const x1 = start[0];\n const y1 = start[1];\n const x2 = end[0];\n const y2 = end[1];\n const dx = x2 - x1;\n const dy = y2 - y1;\n let along = 0;\n let px = x1;\n let py = y1;\n if (dx !== 0 || dy !== 0) {\n along = clamp(((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy), 0, 1);\n px += dx * along;\n py += dy * along;\n }\n\n sharedRel.along = along;\n sharedRel.squaredDistance = toFixed(squaredDistance(x, y, px, py), 10);\n return sharedRel;\n}\n\n/**\n * @param {LineCoordType} coordinates The coordinates.\n * @param {number} index The index. May be fractional and may wrap.\n * @return {import(\"../coordinate.js\").Coordinate} The interpolated coordinate.\n */\nfunction interpolateCoordinate(coordinates, index) {\n const count = coordinates.length;\n\n let startIndex = Math.floor(index);\n const along = index - startIndex;\n if (startIndex >= count) {\n startIndex -= count;\n } else if (startIndex < 0) {\n startIndex += count;\n }\n\n let endIndex = startIndex + 1;\n if (endIndex >= count) {\n endIndex -= count;\n }\n\n const start = coordinates[startIndex];\n const x0 = start[0];\n const y0 = start[1];\n const end = coordinates[endIndex];\n const dx = end[0] - x0;\n const dy = end[1] - y0;\n\n return [x0 + dx * along, y0 + dy * along];\n}\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'drawabort'|'drawend'|'drawstart', DrawEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} DrawOnSignature\n */\n\n/**\n * @classdesc\n * Interaction for drawing feature geometries.\n *\n * @fires DrawEvent\n * @api\n */\nclass Draw extends PointerInteraction {\n /**\n * @param {Options} options Options.\n */\n constructor(options) {\n const pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (\n options\n );\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n\n super(pointerOptions);\n\n /***\n * @type {DrawOnSignature}\n */\n this.on;\n\n /***\n * @type {DrawOnSignature}\n */\n this.once;\n\n /***\n * @type {DrawOnSignature}\n */\n this.un;\n\n /**\n * @type {boolean}\n * @private\n */\n this.shouldHandle_ = false;\n\n /**\n * @type {import(\"../pixel.js\").Pixel}\n * @private\n */\n this.downPx_ = null;\n\n /**\n * @type {ReturnType}\n * @private\n */\n this.downTimeout_;\n\n /**\n * @type {number|undefined}\n * @private\n */\n this.lastDragTime_;\n\n /**\n * Pointer type of the last pointermove event\n * @type {string}\n * @private\n */\n this.pointerType_;\n\n /**\n * @type {boolean}\n * @private\n */\n this.freehand_ = false;\n\n /**\n * Target source for drawn features.\n * @type {VectorSource|null}\n * @private\n */\n this.source_ = options.source ? options.source : null;\n\n /**\n * Target collection for drawn features.\n * @type {import(\"../Collection.js\").default|null}\n * @private\n */\n this.features_ = options.features ? options.features : null;\n\n /**\n * Pixel distance for snapping.\n * @type {number}\n * @private\n */\n this.snapTolerance_ = options.snapTolerance ? options.snapTolerance : 12;\n\n /**\n * Geometry type.\n * @type {import(\"../geom/Geometry.js\").Type}\n * @private\n */\n this.type_ = /** @type {import(\"../geom/Geometry.js\").Type} */ (\n options.type\n );\n\n /**\n * Drawing mode (derived from geometry type.\n * @type {Mode}\n * @private\n */\n this.mode_ = getMode(this.type_);\n\n /**\n * Stop click, singleclick, and doubleclick events from firing during drawing.\n * Default is `false`.\n * @type {boolean}\n * @private\n */\n this.stopClick_ = !!options.stopClick;\n\n /**\n * The number of points that must be drawn before a polygon ring or line\n * string can be finished. The default is 3 for polygon rings and 2 for\n * line strings.\n * @type {number}\n * @private\n */\n this.minPoints_ = options.minPoints\n ? options.minPoints\n : this.mode_ === 'Polygon'\n ? 3\n : 2;\n\n /**\n * The number of points that can be drawn before a polygon ring or line string\n * is finished. The default is no restriction.\n * @type {number}\n * @private\n */\n this.maxPoints_ =\n this.mode_ === 'Circle'\n ? 2\n : options.maxPoints\n ? options.maxPoints\n : Infinity;\n\n /**\n * A function to decide if a potential finish coordinate is permissible\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n this.finishCondition_ = options.finishCondition\n ? options.finishCondition\n : TRUE;\n\n /**\n * @private\n * @type {import(\"../geom/Geometry.js\").GeometryLayout}\n */\n this.geometryLayout_ = options.geometryLayout\n ? options.geometryLayout\n : 'XY';\n\n let geometryFunction = options.geometryFunction;\n if (!geometryFunction) {\n const mode = this.mode_;\n if (mode === 'Circle') {\n /**\n * @param {!LineCoordType} coordinates The coordinates.\n * @param {import(\"../geom/SimpleGeometry.js\").default|undefined} geometry Optional geometry.\n * @param {import(\"../proj/Projection.js\").default} projection The view projection.\n * @return {import(\"../geom/SimpleGeometry.js\").default} A geometry.\n */\n geometryFunction = function (coordinates, geometry, projection) {\n const circle = geometry\n ? /** @type {Circle} */ (geometry)\n : new Circle([NaN, NaN]);\n const center = fromUserCoordinate(coordinates[0], projection);\n const squaredLength = squaredCoordinateDistance(\n center,\n fromUserCoordinate(coordinates[coordinates.length - 1], projection),\n );\n circle.setCenterAndRadius(\n center,\n Math.sqrt(squaredLength),\n this.geometryLayout_,\n );\n const userProjection = getUserProjection();\n if (userProjection) {\n circle.transform(projection, userProjection);\n }\n return circle;\n };\n } else {\n let Constructor;\n if (mode === 'Point') {\n Constructor = Point;\n } else if (mode === 'LineString') {\n Constructor = LineString;\n } else if (mode === 'Polygon') {\n Constructor = Polygon;\n }\n /**\n * @param {!LineCoordType} coordinates The coordinates.\n * @param {import(\"../geom/SimpleGeometry.js\").default|undefined} geometry Optional geometry.\n * @param {import(\"../proj/Projection.js\").default} projection The view projection.\n * @return {import(\"../geom/SimpleGeometry.js\").default} A geometry.\n */\n geometryFunction = function (coordinates, geometry, projection) {\n if (geometry) {\n if (mode === 'Polygon') {\n if (coordinates[0].length) {\n // Add a closing coordinate to match the first\n geometry.setCoordinates(\n [coordinates[0].concat([coordinates[0][0]])],\n this.geometryLayout_,\n );\n } else {\n geometry.setCoordinates([], this.geometryLayout_);\n }\n } else {\n geometry.setCoordinates(coordinates, this.geometryLayout_);\n }\n } else {\n geometry = new Constructor(coordinates, this.geometryLayout_);\n }\n return geometry;\n };\n }\n }\n\n /**\n * @type {GeometryFunction}\n * @private\n */\n this.geometryFunction_ = geometryFunction;\n\n /**\n * @type {number}\n * @private\n */\n this.dragVertexDelay_ =\n options.dragVertexDelay !== undefined ? options.dragVertexDelay : 500;\n\n /**\n * Finish coordinate for the feature (first point for polygons, last point for\n * linestrings).\n * @type {import(\"../coordinate.js\").Coordinate}\n * @private\n */\n this.finishCoordinate_ = null;\n\n /**\n * Sketch feature.\n * @type {Feature}\n * @private\n */\n this.sketchFeature_ = null;\n\n /**\n * Sketch point.\n * @type {Feature}\n * @private\n */\n this.sketchPoint_ = null;\n\n /**\n * Sketch coordinates. Used when drawing a line or polygon.\n * @type {SketchCoordType}\n * @private\n */\n this.sketchCoords_ = null;\n\n /**\n * Sketch line. Used when drawing polygon.\n * @type {Feature}\n * @private\n */\n this.sketchLine_ = null;\n\n /**\n * Sketch line coordinates. Used when drawing a polygon or circle.\n * @type {LineCoordType}\n * @private\n */\n this.sketchLineCoords_ = null;\n\n /**\n * Squared tolerance for handling up events. If the squared distance\n * between a down and up event is greater than this tolerance, up events\n * will not be handled.\n * @type {number}\n * @private\n */\n this.squaredClickTolerance_ = options.clickTolerance\n ? options.clickTolerance * options.clickTolerance\n : 36;\n\n /**\n * Draw overlay where our sketch features are drawn.\n * @type {VectorLayer}\n * @private\n */\n this.overlay_ = new VectorLayer({\n source: new VectorSource({\n useSpatialIndex: false,\n wrapX: options.wrapX ? options.wrapX : false,\n }),\n style: options.style ? options.style : getDefaultStyleFunction(),\n updateWhileInteracting: true,\n });\n\n /**\n * Name of the geometry attribute for newly created features.\n * @type {string|undefined}\n * @private\n */\n this.geometryName_ = options.geometryName;\n\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n this.condition_ = options.condition ? options.condition : noModifierKeys;\n\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n this.freehandCondition_;\n if (options.freehand) {\n this.freehandCondition_ = always;\n } else {\n this.freehandCondition_ = options.freehandCondition\n ? options.freehandCondition\n : shiftKeyOnly;\n }\n\n /**\n * @type {import(\"../events/condition.js\").Condition}\n * @private\n */\n this.traceCondition_;\n this.setTrace(options.trace || false);\n\n /**\n * @type {TraceState}\n * @private\n */\n this.traceState_ = {active: false};\n\n /**\n * @type {VectorSource|null}\n * @private\n */\n this.traceSource_ = options.traceSource || options.source || null;\n\n this.addChangeListener(InteractionProperty.ACTIVE, this.updateState_);\n }\n\n /**\n * Toggle tracing mode or set a tracing condition.\n *\n * @param {boolean|import(\"../events/condition.js\").Condition} trace A boolean to toggle tracing mode or an event\n * condition that will be checked when a feature is clicked to determine if tracing should be active.\n */\n setTrace(trace) {\n let condition;\n if (!trace) {\n condition = never;\n } else if (trace === true) {\n condition = always;\n } else {\n condition = trace;\n }\n this.traceCondition_ = condition;\n }\n\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../Map.js\").default} map Map.\n */\n setMap(map) {\n super.setMap(map);\n this.updateState_();\n }\n\n /**\n * Get the overlay layer that this interaction renders sketch features to.\n * @return {VectorLayer} Overlay layer.\n * @api\n */\n getOverlay() {\n return this.overlay_;\n }\n\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} and may actually draw or finish the drawing.\n * @param {import(\"../MapBrowserEvent.js\").default} event Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n handleEvent(event) {\n if (event.originalEvent.type === EventType.CONTEXTMENU) {\n // Avoid context menu for long taps when drawing on mobile\n event.originalEvent.preventDefault();\n }\n this.freehand_ = this.mode_ !== 'Point' && this.freehandCondition_(event);\n let move = event.type === MapBrowserEventType.POINTERMOVE;\n let pass = true;\n if (\n !this.freehand_ &&\n this.lastDragTime_ &&\n event.type === MapBrowserEventType.POINTERDRAG\n ) {\n const now = Date.now();\n if (now - this.lastDragTime_ >= this.dragVertexDelay_) {\n this.downPx_ = event.pixel;\n this.shouldHandle_ = !this.freehand_;\n move = true;\n } else {\n this.lastDragTime_ = undefined;\n }\n if (this.shouldHandle_ && this.downTimeout_ !== undefined) {\n clearTimeout(this.downTimeout_);\n this.downTimeout_ = undefined;\n }\n }\n if (\n this.freehand_ &&\n event.type === MapBrowserEventType.POINTERDRAG &&\n this.sketchFeature_ !== null\n ) {\n this.addToDrawing_(event.coordinate);\n pass = false;\n } else if (\n this.freehand_ &&\n event.type === MapBrowserEventType.POINTERDOWN\n ) {\n pass = false;\n } else if (move && this.getPointerCount() < 2) {\n pass = event.type === MapBrowserEventType.POINTERMOVE;\n if (pass && this.freehand_) {\n this.handlePointerMove_(event);\n if (this.shouldHandle_) {\n // Avoid page scrolling when freehand drawing on mobile\n event.originalEvent.preventDefault();\n }\n } else if (\n event.originalEvent.pointerType === 'mouse' ||\n (event.type === MapBrowserEventType.POINTERDRAG &&\n this.downTimeout_ === undefined)\n ) {\n this.handlePointerMove_(event);\n }\n } else if (event.type === MapBrowserEventType.DBLCLICK) {\n pass = false;\n }\n\n return super.handleEvent(event) && pass;\n }\n\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @return {boolean} If the event was consumed.\n */\n handleDownEvent(event) {\n this.shouldHandle_ = !this.freehand_;\n\n if (this.freehand_) {\n this.downPx_ = event.pixel;\n if (!this.finishCoordinate_) {\n this.startDrawing_(event.coordinate);\n }\n return true;\n }\n\n if (!this.condition_(event)) {\n this.lastDragTime_ = undefined;\n return false;\n }\n\n this.lastDragTime_ = Date.now();\n this.downTimeout_ = setTimeout(() => {\n this.handlePointerMove_(\n new MapBrowserEvent(\n MapBrowserEventType.POINTERMOVE,\n event.map,\n event.originalEvent,\n false,\n event.frameState,\n ),\n );\n }, this.dragVertexDelay_);\n this.downPx_ = event.pixel;\n return true;\n }\n\n /**\n * @private\n */\n deactivateTrace_() {\n this.traceState_ = {active: false};\n }\n\n /**\n * Activate or deactivate trace state based on a browser event.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @private\n */\n toggleTraceState_(event) {\n if (!this.traceSource_ || !this.traceCondition_(event)) {\n return;\n }\n\n if (this.traceState_.active) {\n this.deactivateTrace_();\n return;\n }\n\n const map = this.getMap();\n const lowerLeft = map.getCoordinateFromPixel([\n event.pixel[0] - this.snapTolerance_,\n event.pixel[1] + this.snapTolerance_,\n ]);\n const upperRight = map.getCoordinateFromPixel([\n event.pixel[0] + this.snapTolerance_,\n event.pixel[1] - this.snapTolerance_,\n ]);\n const extent = boundingExtent([lowerLeft, upperRight]);\n const features = this.traceSource_.getFeaturesInExtent(extent);\n if (features.length === 0) {\n return;\n }\n\n const targets = getTraceTargets(event.coordinate, features);\n if (targets.length) {\n this.traceState_ = {\n active: true,\n startPx: event.pixel.slice(),\n targets: targets,\n targetIndex: -1,\n };\n }\n }\n\n /**\n * @param {TraceTarget} target The trace target.\n * @param {number} endIndex The new end index of the trace.\n * @private\n */\n addOrRemoveTracedCoordinates_(target, endIndex) {\n // three cases to handle:\n // 1. traced in the same direction and points need adding\n // 2. traced in the same direction and points need removing\n // 3. traced in a new direction\n const previouslyForward = target.startIndex <= target.endIndex;\n const currentlyForward = target.startIndex <= endIndex;\n if (previouslyForward === currentlyForward) {\n // same direction\n if (\n (previouslyForward && endIndex > target.endIndex) ||\n (!previouslyForward && endIndex < target.endIndex)\n ) {\n // case 1 - add new points\n this.addTracedCoordinates_(target, target.endIndex, endIndex);\n } else if (\n (previouslyForward && endIndex < target.endIndex) ||\n (!previouslyForward && endIndex > target.endIndex)\n ) {\n // case 2 - remove old points\n this.removeTracedCoordinates_(endIndex, target.endIndex);\n }\n } else {\n // case 3 - remove old points, add new points\n this.removeTracedCoordinates_(target.startIndex, target.endIndex);\n this.addTracedCoordinates_(target, target.startIndex, endIndex);\n }\n }\n\n /**\n * @param {number} fromIndex The start index.\n * @param {number} toIndex The end index.\n * @private\n */\n removeTracedCoordinates_(fromIndex, toIndex) {\n if (fromIndex === toIndex) {\n return;\n }\n\n let remove = 0;\n if (fromIndex < toIndex) {\n const start = Math.ceil(fromIndex);\n let end = Math.floor(toIndex);\n if (end === toIndex) {\n end -= 1;\n }\n remove = end - start + 1;\n } else {\n const start = Math.floor(fromIndex);\n let end = Math.ceil(toIndex);\n if (end === toIndex) {\n end += 1;\n }\n remove = start - end + 1;\n }\n\n if (remove > 0) {\n this.removeLastPoints_(remove);\n }\n }\n\n /**\n * @param {TraceTarget} target The trace target.\n * @param {number} fromIndex The start index.\n * @param {number} toIndex The end index.\n * @private\n */\n addTracedCoordinates_(target, fromIndex, toIndex) {\n if (fromIndex === toIndex) {\n return;\n }\n\n const coordinates = [];\n if (fromIndex < toIndex) {\n // forward trace\n const start = Math.ceil(fromIndex);\n let end = Math.floor(toIndex);\n if (end === toIndex) {\n // if end is snapped to a vertex, it will be added later\n end -= 1;\n }\n for (let i = start; i <= end; ++i) {\n coordinates.push(getCoordinate(target.coordinates, i));\n }\n } else {\n // reverse trace\n const start = Math.floor(fromIndex);\n let end = Math.ceil(toIndex);\n if (end === toIndex) {\n end += 1;\n }\n for (let i = start; i >= end; --i) {\n coordinates.push(getCoordinate(target.coordinates, i));\n }\n }\n if (coordinates.length) {\n this.appendCoordinates(coordinates);\n }\n }\n\n /**\n * Update the trace.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @private\n */\n updateTrace_(event) {\n const traceState = this.traceState_;\n if (!traceState.active) {\n return;\n }\n\n if (traceState.targetIndex === -1) {\n // check if we are ready to pick a target\n if (distance(traceState.startPx, event.pixel) < this.snapTolerance_) {\n return;\n }\n }\n\n const updatedTraceTarget = getTraceTargetUpdate(\n event.coordinate,\n traceState,\n this.getMap(),\n this.snapTolerance_,\n );\n\n if (traceState.targetIndex !== updatedTraceTarget.index) {\n // target changed\n if (traceState.targetIndex !== -1) {\n // remove points added during previous trace\n const oldTarget = traceState.targets[traceState.targetIndex];\n this.removeTracedCoordinates_(oldTarget.startIndex, oldTarget.endIndex);\n }\n // add points for the new target\n const newTarget = traceState.targets[updatedTraceTarget.index];\n this.addTracedCoordinates_(\n newTarget,\n newTarget.startIndex,\n updatedTraceTarget.endIndex,\n );\n } else {\n // target stayed the same\n const target = traceState.targets[traceState.targetIndex];\n this.addOrRemoveTracedCoordinates_(target, updatedTraceTarget.endIndex);\n }\n\n // modify the state with updated info\n traceState.targetIndex = updatedTraceTarget.index;\n const target = traceState.targets[traceState.targetIndex];\n target.endIndex = updatedTraceTarget.endIndex;\n\n // update event coordinate and pixel to match end point of final segment\n const coordinate = interpolateCoordinate(\n target.coordinates,\n target.endIndex,\n );\n const pixel = this.getMap().getPixelFromCoordinate(coordinate);\n event.coordinate = coordinate;\n event.pixel = [Math.round(pixel[0]), Math.round(pixel[1])];\n }\n\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @return {boolean} If the event was consumed.\n */\n handleUpEvent(event) {\n let pass = true;\n\n if (this.getPointerCount() === 0) {\n if (this.downTimeout_) {\n clearTimeout(this.downTimeout_);\n this.downTimeout_ = undefined;\n }\n\n this.handlePointerMove_(event);\n const tracing = this.traceState_.active;\n this.toggleTraceState_(event);\n\n if (this.shouldHandle_) {\n const startingToDraw = !this.finishCoordinate_;\n if (startingToDraw) {\n this.startDrawing_(event.coordinate);\n }\n if (!startingToDraw && this.freehand_) {\n this.finishDrawing();\n } else if (\n !this.freehand_ &&\n (!startingToDraw || this.mode_ === 'Point')\n ) {\n if (this.atFinish_(event.pixel, tracing)) {\n if (this.finishCondition_(event)) {\n this.finishDrawing();\n }\n } else {\n this.addToDrawing_(event.coordinate);\n }\n }\n pass = false;\n } else if (this.freehand_) {\n this.abortDrawing();\n }\n }\n\n if (!pass && this.stopClick_) {\n event.preventDefault();\n }\n return pass;\n }\n\n /**\n * Handle move events.\n * @param {import(\"../MapBrowserEvent.js\").default} event A move event.\n * @private\n */\n handlePointerMove_(event) {\n this.pointerType_ = event.originalEvent.pointerType;\n if (\n this.downPx_ &&\n ((!this.freehand_ && this.shouldHandle_) ||\n (this.freehand_ && !this.shouldHandle_))\n ) {\n const downPx = this.downPx_;\n const clickPx = event.pixel;\n const dx = downPx[0] - clickPx[0];\n const dy = downPx[1] - clickPx[1];\n const squaredDistance = dx * dx + dy * dy;\n this.shouldHandle_ = this.freehand_\n ? squaredDistance > this.squaredClickTolerance_\n : squaredDistance <= this.squaredClickTolerance_;\n if (!this.shouldHandle_) {\n return;\n }\n }\n\n if (!this.finishCoordinate_) {\n this.createOrUpdateSketchPoint_(event.coordinate.slice());\n return;\n }\n\n this.updateTrace_(event);\n this.modifyDrawing_(event.coordinate);\n }\n\n /**\n * Determine if an event is within the snapping tolerance of the start coord.\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @param {boolean} [tracing] Drawing in trace mode (only stop if at the starting point).\n * @return {boolean} The event is within the snapping tolerance of the start.\n * @private\n */\n atFinish_(pixel, tracing) {\n let at = false;\n if (this.sketchFeature_) {\n let potentiallyDone = false;\n let potentiallyFinishCoordinates = [this.finishCoordinate_];\n const mode = this.mode_;\n if (mode === 'Point') {\n at = true;\n } else if (mode === 'Circle') {\n at = this.sketchCoords_.length === 2;\n } else if (mode === 'LineString') {\n potentiallyDone =\n !tracing && this.sketchCoords_.length > this.minPoints_;\n } else if (mode === 'Polygon') {\n const sketchCoords = /** @type {PolyCoordType} */ (this.sketchCoords_);\n potentiallyDone = sketchCoords[0].length > this.minPoints_;\n potentiallyFinishCoordinates = [\n sketchCoords[0][0],\n sketchCoords[0][sketchCoords[0].length - 2],\n ];\n if (tracing) {\n potentiallyFinishCoordinates = [sketchCoords[0][0]];\n } else {\n potentiallyFinishCoordinates = [\n sketchCoords[0][0],\n sketchCoords[0][sketchCoords[0].length - 2],\n ];\n }\n }\n if (potentiallyDone) {\n const map = this.getMap();\n for (let i = 0, ii = potentiallyFinishCoordinates.length; i < ii; i++) {\n const finishCoordinate = potentiallyFinishCoordinates[i];\n const finishPixel = map.getPixelFromCoordinate(finishCoordinate);\n const dx = pixel[0] - finishPixel[0];\n const dy = pixel[1] - finishPixel[1];\n const snapTolerance = this.freehand_ ? 1 : this.snapTolerance_;\n at = Math.sqrt(dx * dx + dy * dy) <= snapTolerance;\n if (at) {\n this.finishCoordinate_ = finishCoordinate;\n break;\n }\n }\n }\n }\n return at;\n }\n\n /**\n * @param {import(\"../coordinate\").Coordinate} coordinates Coordinate.\n * @private\n */\n createOrUpdateSketchPoint_(coordinates) {\n if (!this.sketchPoint_) {\n this.sketchPoint_ = new Feature(new Point(coordinates));\n this.updateSketchFeatures_();\n } else {\n const sketchPointGeom = this.sketchPoint_.getGeometry();\n sketchPointGeom.setCoordinates(coordinates);\n }\n }\n\n /**\n * @param {import(\"../geom/Polygon.js\").default} geometry Polygon geometry.\n * @private\n */\n createOrUpdateCustomSketchLine_(geometry) {\n if (!this.sketchLine_) {\n this.sketchLine_ = new Feature();\n }\n const ring = geometry.getLinearRing(0);\n let sketchLineGeom = this.sketchLine_.getGeometry();\n if (!sketchLineGeom) {\n sketchLineGeom = new LineString(\n ring.getFlatCoordinates(),\n ring.getLayout(),\n );\n this.sketchLine_.setGeometry(sketchLineGeom);\n } else {\n sketchLineGeom.setFlatCoordinates(\n ring.getLayout(),\n ring.getFlatCoordinates(),\n );\n sketchLineGeom.changed();\n }\n }\n\n /**\n * Start the drawing.\n * @param {import(\"../coordinate.js\").Coordinate} start Start coordinate.\n * @private\n */\n startDrawing_(start) {\n const projection = this.getMap().getView().getProjection();\n const stride = getStrideForLayout(this.geometryLayout_);\n while (start.length < stride) {\n start.push(0);\n }\n this.finishCoordinate_ = start;\n if (this.mode_ === 'Point') {\n this.sketchCoords_ = start.slice();\n } else if (this.mode_ === 'Polygon') {\n this.sketchCoords_ = [[start.slice(), start.slice()]];\n this.sketchLineCoords_ = this.sketchCoords_[0];\n } else {\n this.sketchCoords_ = [start.slice(), start.slice()];\n }\n if (this.sketchLineCoords_) {\n this.sketchLine_ = new Feature(new LineString(this.sketchLineCoords_));\n }\n const geometry = this.geometryFunction_(\n this.sketchCoords_,\n undefined,\n projection,\n );\n this.sketchFeature_ = new Feature();\n if (this.geometryName_) {\n this.sketchFeature_.setGeometryName(this.geometryName_);\n }\n this.sketchFeature_.setGeometry(geometry);\n this.updateSketchFeatures_();\n this.dispatchEvent(\n new DrawEvent(DrawEventType.DRAWSTART, this.sketchFeature_),\n );\n }\n\n /**\n * Modify the drawing.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @private\n */\n modifyDrawing_(coordinate) {\n const map = this.getMap();\n const geometry = this.sketchFeature_.getGeometry();\n const projection = map.getView().getProjection();\n const stride = getStrideForLayout(this.geometryLayout_);\n let coordinates, last;\n while (coordinate.length < stride) {\n coordinate.push(0);\n }\n if (this.mode_ === 'Point') {\n last = this.sketchCoords_;\n } else if (this.mode_ === 'Polygon') {\n coordinates = /** @type {PolyCoordType} */ (this.sketchCoords_)[0];\n last = coordinates[coordinates.length - 1];\n if (this.atFinish_(map.getPixelFromCoordinate(coordinate))) {\n // snap to finish\n coordinate = this.finishCoordinate_.slice();\n }\n } else {\n coordinates = this.sketchCoords_;\n last = coordinates[coordinates.length - 1];\n }\n last[0] = coordinate[0];\n last[1] = coordinate[1];\n this.geometryFunction_(\n /** @type {!LineCoordType} */ (this.sketchCoords_),\n geometry,\n projection,\n );\n if (this.sketchPoint_) {\n const sketchPointGeom = this.sketchPoint_.getGeometry();\n sketchPointGeom.setCoordinates(coordinate);\n }\n if (geometry.getType() === 'Polygon' && this.mode_ !== 'Polygon') {\n this.createOrUpdateCustomSketchLine_(/** @type {Polygon} */ (geometry));\n } else if (this.sketchLineCoords_) {\n const sketchLineGeom = this.sketchLine_.getGeometry();\n sketchLineGeom.setCoordinates(this.sketchLineCoords_);\n }\n this.updateSketchFeatures_();\n }\n\n /**\n * Add a new coordinate to the drawing.\n * @param {!PointCoordType} coordinate Coordinate\n * @return {Feature} The sketch feature.\n * @private\n */\n addToDrawing_(coordinate) {\n const geometry = this.sketchFeature_.getGeometry();\n const projection = this.getMap().getView().getProjection();\n let done;\n let coordinates;\n const mode = this.mode_;\n if (mode === 'LineString' || mode === 'Circle') {\n this.finishCoordinate_ = coordinate.slice();\n coordinates = /** @type {LineCoordType} */ (this.sketchCoords_);\n if (coordinates.length >= this.maxPoints_) {\n if (this.freehand_) {\n coordinates.pop();\n } else {\n done = true;\n }\n }\n coordinates.push(coordinate.slice());\n this.geometryFunction_(coordinates, geometry, projection);\n } else if (mode === 'Polygon') {\n coordinates = /** @type {PolyCoordType} */ (this.sketchCoords_)[0];\n if (coordinates.length >= this.maxPoints_) {\n if (this.freehand_) {\n coordinates.pop();\n } else {\n done = true;\n }\n }\n coordinates.push(coordinate.slice());\n if (done) {\n this.finishCoordinate_ = coordinates[0];\n }\n this.geometryFunction_(this.sketchCoords_, geometry, projection);\n }\n this.createOrUpdateSketchPoint_(coordinate.slice());\n this.updateSketchFeatures_();\n if (done) {\n return this.finishDrawing();\n }\n return this.sketchFeature_;\n }\n\n /**\n * @param {number} n The number of points to remove.\n */\n removeLastPoints_(n) {\n if (!this.sketchFeature_) {\n return;\n }\n const geometry = this.sketchFeature_.getGeometry();\n const projection = this.getMap().getView().getProjection();\n const mode = this.mode_;\n for (let i = 0; i < n; ++i) {\n let coordinates;\n if (mode === 'LineString' || mode === 'Circle') {\n coordinates = /** @type {LineCoordType} */ (this.sketchCoords_);\n coordinates.splice(-2, 1);\n if (coordinates.length >= 2) {\n this.finishCoordinate_ = coordinates[coordinates.length - 2].slice();\n const finishCoordinate = this.finishCoordinate_.slice();\n coordinates[coordinates.length - 1] = finishCoordinate;\n this.createOrUpdateSketchPoint_(finishCoordinate);\n }\n this.geometryFunction_(coordinates, geometry, projection);\n if (geometry.getType() === 'Polygon' && this.sketchLine_) {\n this.createOrUpdateCustomSketchLine_(\n /** @type {Polygon} */ (geometry),\n );\n }\n } else if (mode === 'Polygon') {\n coordinates = /** @type {PolyCoordType} */ (this.sketchCoords_)[0];\n coordinates.splice(-2, 1);\n const sketchLineGeom = this.sketchLine_.getGeometry();\n if (coordinates.length >= 2) {\n const finishCoordinate = coordinates[coordinates.length - 2].slice();\n coordinates[coordinates.length - 1] = finishCoordinate;\n this.createOrUpdateSketchPoint_(finishCoordinate);\n }\n sketchLineGeom.setCoordinates(coordinates);\n this.geometryFunction_(this.sketchCoords_, geometry, projection);\n }\n\n if (coordinates.length === 1) {\n this.abortDrawing();\n break;\n }\n }\n\n this.updateSketchFeatures_();\n }\n\n /**\n * Remove last point of the feature currently being drawn. Does not do anything when\n * drawing POINT or MULTI_POINT geometries.\n * @api\n */\n removeLastPoint() {\n this.removeLastPoints_(1);\n }\n\n /**\n * Stop drawing and add the sketch feature to the target layer.\n * The {@link module:ol/interaction/Draw~DrawEventType.DRAWEND} event is\n * dispatched before inserting the feature.\n * @return {Feature|null} The drawn feature.\n * @api\n */\n finishDrawing() {\n const sketchFeature = this.abortDrawing_();\n if (!sketchFeature) {\n return null;\n }\n let coordinates = this.sketchCoords_;\n const geometry = sketchFeature.getGeometry();\n const projection = this.getMap().getView().getProjection();\n if (this.mode_ === 'LineString') {\n // remove the redundant last point\n coordinates.pop();\n this.geometryFunction_(coordinates, geometry, projection);\n } else if (this.mode_ === 'Polygon') {\n // remove the redundant last point in ring\n /** @type {PolyCoordType} */ (coordinates)[0].pop();\n this.geometryFunction_(coordinates, geometry, projection);\n coordinates = geometry.getCoordinates();\n }\n\n // cast multi-part geometries\n if (this.type_ === 'MultiPoint') {\n sketchFeature.setGeometry(\n new MultiPoint([/** @type {PointCoordType} */ (coordinates)]),\n );\n } else if (this.type_ === 'MultiLineString') {\n sketchFeature.setGeometry(\n new MultiLineString([/** @type {LineCoordType} */ (coordinates)]),\n );\n } else if (this.type_ === 'MultiPolygon') {\n sketchFeature.setGeometry(\n new MultiPolygon([/** @type {PolyCoordType} */ (coordinates)]),\n );\n }\n\n // First dispatch event to allow full set up of feature\n this.dispatchEvent(new DrawEvent(DrawEventType.DRAWEND, sketchFeature));\n\n // Then insert feature\n if (this.features_) {\n this.features_.push(sketchFeature);\n }\n if (this.source_) {\n this.source_.addFeature(sketchFeature);\n }\n return sketchFeature;\n }\n\n /**\n * Stop drawing without adding the sketch feature to the target layer.\n * @return {Feature|null} The sketch feature (or null if none).\n * @private\n */\n abortDrawing_() {\n this.finishCoordinate_ = null;\n const sketchFeature = this.sketchFeature_;\n this.sketchFeature_ = null;\n this.sketchPoint_ = null;\n this.sketchLine_ = null;\n this.overlay_.getSource().clear(true);\n this.deactivateTrace_();\n return sketchFeature;\n }\n\n /**\n * Stop drawing without adding the sketch feature to the target layer.\n * @api\n */\n abortDrawing() {\n const sketchFeature = this.abortDrawing_();\n if (sketchFeature) {\n this.dispatchEvent(new DrawEvent(DrawEventType.DRAWABORT, sketchFeature));\n }\n }\n\n /**\n * Append coordinates to the end of the geometry that is currently being drawn.\n * This can be used when drawing LineStrings or Polygons. Coordinates will\n * either be appended to the current LineString or the outer ring of the current\n * Polygon. If no geometry is being drawn, a new one will be created.\n * @param {!LineCoordType} coordinates Linear coordinates to be appended to\n * the coordinate array.\n * @api\n */\n appendCoordinates(coordinates) {\n const mode = this.mode_;\n const newDrawing = !this.sketchFeature_;\n if (newDrawing) {\n this.startDrawing_(coordinates[0]);\n }\n /** @type {LineCoordType} */\n let sketchCoords;\n if (mode === 'LineString' || mode === 'Circle') {\n sketchCoords = /** @type {LineCoordType} */ (this.sketchCoords_);\n } else if (mode === 'Polygon') {\n sketchCoords =\n this.sketchCoords_ && this.sketchCoords_.length\n ? /** @type {PolyCoordType} */ (this.sketchCoords_)[0]\n : [];\n } else {\n return;\n }\n\n if (newDrawing) {\n sketchCoords.shift();\n }\n\n // Remove last coordinate from sketch drawing (this coordinate follows cursor position)\n sketchCoords.pop();\n\n // Append coordinate list\n for (let i = 0; i < coordinates.length; i++) {\n this.addToDrawing_(coordinates[i]);\n }\n\n const ending = coordinates[coordinates.length - 1];\n // Duplicate last coordinate for sketch drawing (cursor position)\n this.sketchFeature_ = this.addToDrawing_(ending);\n this.modifyDrawing_(ending);\n }\n\n /**\n * Initiate draw mode by starting from an existing geometry which will\n * receive new additional points. This only works on features with\n * `LineString` geometries, where the interaction will extend lines by adding\n * points to the end of the coordinates array.\n * This will change the original feature, instead of drawing a copy.\n *\n * The function will dispatch a `drawstart` event.\n *\n * @param {!Feature} feature Feature to be extended.\n * @api\n */\n extend(feature) {\n const geometry = feature.getGeometry();\n const lineString = geometry;\n this.sketchFeature_ = feature;\n this.sketchCoords_ = lineString.getCoordinates();\n const last = this.sketchCoords_[this.sketchCoords_.length - 1];\n this.finishCoordinate_ = last.slice();\n this.sketchCoords_.push(last.slice());\n this.sketchPoint_ = new Feature(new Point(last));\n this.updateSketchFeatures_();\n this.dispatchEvent(\n new DrawEvent(DrawEventType.DRAWSTART, this.sketchFeature_),\n );\n }\n\n /**\n * Redraw the sketch features.\n * @private\n */\n updateSketchFeatures_() {\n const sketchFeatures = [];\n if (this.sketchFeature_) {\n sketchFeatures.push(this.sketchFeature_);\n }\n if (this.sketchLine_) {\n sketchFeatures.push(this.sketchLine_);\n }\n if (this.sketchPoint_) {\n sketchFeatures.push(this.sketchPoint_);\n }\n const overlaySource = this.overlay_.getSource();\n overlaySource.clear(true);\n overlaySource.addFeatures(sketchFeatures);\n }\n\n /**\n * @private\n */\n updateState_() {\n const map = this.getMap();\n const active = this.getActive();\n if (!map || !active) {\n this.abortDrawing();\n }\n this.overlay_.setMap(active ? map : null);\n }\n}\n\n/**\n * @return {import(\"../style/Style.js\").StyleFunction} Styles.\n */\nfunction getDefaultStyleFunction() {\n const styles = createEditingStyle();\n return function (feature, resolution) {\n return styles[feature.getGeometry().getType()];\n };\n}\n\n/**\n * Create a `geometryFunction` for `type: 'Circle'` that will create a regular\n * polygon with a user specified number of sides and start angle instead of a\n * {@link import(\"../geom/Circle.js\").Circle} geometry.\n * @param {number} [sides] Number of sides of the regular polygon.\n * Default is 32.\n * @param {number} [angle] Angle of the first point in counter-clockwise\n * radians. 0 means East.\n * Default is the angle defined by the heading from the center of the\n * regular polygon to the current pointer position.\n * @return {GeometryFunction} Function that draws a polygon.\n * @api\n */\nexport function createRegularPolygon(sides, angle) {\n return function (coordinates, geometry, projection) {\n const center = fromUserCoordinate(\n /** @type {LineCoordType} */ (coordinates)[0],\n projection,\n );\n const end = fromUserCoordinate(\n /** @type {LineCoordType} */ (coordinates)[coordinates.length - 1],\n projection,\n );\n const radius = Math.sqrt(squaredCoordinateDistance(center, end));\n geometry = geometry || fromCircle(new Circle(center), sides);\n\n let internalAngle = angle;\n if (!angle && angle !== 0) {\n const x = end[0] - center[0];\n const y = end[1] - center[1];\n internalAngle = Math.atan2(y, x);\n }\n makeRegular(\n /** @type {Polygon} */ (geometry),\n center,\n radius,\n internalAngle,\n );\n\n const userProjection = getUserProjection();\n if (userProjection) {\n geometry.transform(projection, userProjection);\n }\n return geometry;\n };\n}\n\n/**\n * Create a `geometryFunction` that will create a box-shaped polygon (aligned\n * with the coordinate system axes). Use this with the draw interaction and\n * `type: 'Circle'` to return a box instead of a circle geometry.\n * @return {GeometryFunction} Function that draws a box-shaped polygon.\n * @api\n */\nexport function createBox() {\n return function (coordinates, geometry, projection) {\n const extent = boundingExtent(\n /** @type {LineCoordType} */ ([\n coordinates[0],\n coordinates[coordinates.length - 1],\n ]).map(function (coordinate) {\n return fromUserCoordinate(coordinate, projection);\n }),\n );\n const boxCoordinates = [\n [\n getBottomLeft(extent),\n getBottomRight(extent),\n getTopRight(extent),\n getTopLeft(extent),\n getBottomLeft(extent),\n ],\n ];\n if (geometry) {\n geometry.setCoordinates(boxCoordinates);\n } else {\n geometry = new Polygon(boxCoordinates);\n }\n const userProjection = getUserProjection();\n if (userProjection) {\n geometry.transform(projection, userProjection);\n }\n return geometry;\n };\n}\n\n/**\n * Get the drawing mode. The mode for multi-part geometries is the same as for\n * their single-part cousins.\n * @param {import(\"../geom/Geometry.js\").Type} type Geometry type.\n * @return {Mode} Drawing mode.\n */\nfunction getMode(type) {\n switch (type) {\n case 'Point':\n case 'MultiPoint':\n return 'Point';\n case 'LineString':\n case 'MultiLineString':\n return 'LineString';\n case 'Polygon':\n case 'MultiPolygon':\n return 'Polygon';\n case 'Circle':\n return 'Circle';\n default:\n throw new Error('Invalid type: ' + type);\n }\n}\n\nexport default Draw;\n","/**\n * @module ol/interaction/Extent\n */\nimport Event from '../events/Event.js';\nimport Feature from '../Feature.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport Point from '../geom/Point.js';\nimport PointerInteraction from './Pointer.js';\nimport VectorLayer from '../layer/Vector.js';\nimport VectorSource from '../source/Vector.js';\nimport {always} from '../events/condition.js';\nimport {boundingExtent, getArea} from '../extent.js';\nimport {\n closestOnSegment,\n distance as coordinateDistance,\n squaredDistance as squaredCoordinateDistance,\n squaredDistanceToSegment,\n} from '../coordinate.js';\nimport {createEditingStyle} from '../style/Style.js';\nimport {fromExtent as polygonFromExtent} from '../geom/Polygon.js';\nimport {toUserExtent} from '../proj.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.always}.\n * @property {import(\"../extent.js\").Extent} [extent] Initial extent. Defaults to no\n * initial extent.\n * @property {import(\"../style/Style.js\").StyleLike} [boxStyle]\n * Style for the drawn extent box. Defaults to the `Polygon` editing style\n * documented in {@link module:ol/style/Style~Style}\n * @property {number} [pixelTolerance=10] Pixel tolerance for considering the\n * pointer close enough to a segment or vertex for editing.\n * @property {import(\"../style/Style.js\").StyleLike} [pointerStyle]\n * Style for the cursor used to draw the extent. Defaults to the `Point` editing style\n * documented in {@link module:ol/style/Style~Style}\n * @property {boolean} [wrapX=false] Wrap the drawn extent across multiple maps\n * in the X direction? Only affects visuals, not functionality.\n */\n\n/**\n * @enum {string}\n */\nconst ExtentEventType = {\n /**\n * Triggered after the extent is changed\n * @event ExtentEvent#extentchanged\n * @api\n */\n EXTENTCHANGED: 'extentchanged',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Extent~Extent} instances are\n * instances of this type.\n */\nexport class ExtentEvent extends Event {\n /**\n * @param {import(\"../extent.js\").Extent} extent the new extent\n */\n constructor(extent) {\n super(ExtentEventType.EXTENTCHANGED);\n\n /**\n * The current extent.\n * @type {import(\"../extent.js\").Extent}\n * @api\n */\n this.extent = extent;\n }\n}\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'extentchanged', ExtentEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} ExtentOnSignature\n */\n\n/**\n * @classdesc\n * Allows the user to draw a vector box by clicking and dragging on the map.\n * Once drawn, the vector box can be modified by dragging its vertices or edges.\n * This interaction is only supported for mouse devices.\n *\n * @fires ExtentEvent\n * @api\n */\nclass Extent extends PointerInteraction {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options || {};\n\n super(/** @type {import(\"./Pointer.js\").Options} */ (options));\n\n /***\n * @type {ExtentOnSignature}\n */\n this.on;\n\n /***\n * @type {ExtentOnSignature}\n */\n this.once;\n\n /***\n * @type {ExtentOnSignature}\n */\n this.un;\n\n /**\n * Condition\n * @type {import(\"../events/condition.js\").Condition}\n * @private\n */\n this.condition_ = options.condition ? options.condition : always;\n\n /**\n * Extent of the drawn box\n * @type {import(\"../extent.js\").Extent}\n * @private\n */\n this.extent_ = null;\n\n /**\n * Handler for pointer move events\n * @type {function (import(\"../coordinate.js\").Coordinate): import(\"../extent.js\").Extent|null}\n * @private\n */\n this.pointerHandler_ = null;\n\n /**\n * Pixel threshold to snap to extent\n * @type {number}\n * @private\n */\n this.pixelTolerance_ =\n options.pixelTolerance !== undefined ? options.pixelTolerance : 10;\n\n /**\n * Is the pointer snapped to an extent vertex\n * @type {boolean}\n * @private\n */\n this.snappedToVertex_ = false;\n\n /**\n * Feature for displaying the visible extent\n * @type {Feature}\n * @private\n */\n this.extentFeature_ = null;\n\n /**\n * Feature for displaying the visible pointer\n * @type {Feature}\n * @private\n */\n this.vertexFeature_ = null;\n\n if (!options) {\n options = {};\n }\n\n /**\n * Layer for the extentFeature\n * @type {VectorLayer}\n * @private\n */\n this.extentOverlay_ = new VectorLayer({\n source: new VectorSource({\n useSpatialIndex: false,\n wrapX: !!options.wrapX,\n }),\n style: options.boxStyle\n ? options.boxStyle\n : getDefaultExtentStyleFunction(),\n updateWhileAnimating: true,\n updateWhileInteracting: true,\n });\n\n /**\n * Layer for the vertexFeature\n * @type {VectorLayer}\n * @private\n */\n this.vertexOverlay_ = new VectorLayer({\n source: new VectorSource({\n useSpatialIndex: false,\n wrapX: !!options.wrapX,\n }),\n style: options.pointerStyle\n ? options.pointerStyle\n : getDefaultPointerStyleFunction(),\n updateWhileAnimating: true,\n updateWhileInteracting: true,\n });\n\n if (options.extent) {\n this.setExtent(options.extent);\n }\n }\n\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel cursor location\n * @param {import(\"../Map.js\").default} map map\n * @return {import(\"../coordinate.js\").Coordinate|null} snapped vertex on extent\n * @private\n */\n snapToVertex_(pixel, map) {\n const pixelCoordinate = map.getCoordinateFromPixelInternal(pixel);\n const sortByDistance = function (a, b) {\n return (\n squaredDistanceToSegment(pixelCoordinate, a) -\n squaredDistanceToSegment(pixelCoordinate, b)\n );\n };\n const extent = this.getExtentInternal();\n if (extent) {\n //convert extents to line segments and find the segment closest to pixelCoordinate\n const segments = getSegments(extent);\n segments.sort(sortByDistance);\n const closestSegment = segments[0];\n\n let vertex = closestOnSegment(pixelCoordinate, closestSegment);\n const vertexPixel = map.getPixelFromCoordinateInternal(vertex);\n\n //if the distance is within tolerance, snap to the segment\n if (coordinateDistance(pixel, vertexPixel) <= this.pixelTolerance_) {\n //test if we should further snap to a vertex\n const pixel1 = map.getPixelFromCoordinateInternal(closestSegment[0]);\n const pixel2 = map.getPixelFromCoordinateInternal(closestSegment[1]);\n const squaredDist1 = squaredCoordinateDistance(vertexPixel, pixel1);\n const squaredDist2 = squaredCoordinateDistance(vertexPixel, pixel2);\n const dist = Math.sqrt(Math.min(squaredDist1, squaredDist2));\n this.snappedToVertex_ = dist <= this.pixelTolerance_;\n if (this.snappedToVertex_) {\n vertex =\n squaredDist1 > squaredDist2 ? closestSegment[1] : closestSegment[0];\n }\n return vertex;\n }\n }\n return null;\n }\n\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent pointer move event\n * @private\n */\n handlePointerMove_(mapBrowserEvent) {\n const pixel = mapBrowserEvent.pixel;\n const map = mapBrowserEvent.map;\n\n let vertex = this.snapToVertex_(pixel, map);\n if (!vertex) {\n vertex = map.getCoordinateFromPixelInternal(pixel);\n }\n this.createOrUpdatePointerFeature_(vertex);\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent extent\n * @return {Feature} extent as featrue\n * @private\n */\n createOrUpdateExtentFeature_(extent) {\n let extentFeature = this.extentFeature_;\n\n if (!extentFeature) {\n if (!extent) {\n extentFeature = new Feature({});\n } else {\n extentFeature = new Feature(polygonFromExtent(extent));\n }\n this.extentFeature_ = extentFeature;\n this.extentOverlay_.getSource().addFeature(extentFeature);\n } else {\n if (!extent) {\n extentFeature.setGeometry(undefined);\n } else {\n extentFeature.setGeometry(polygonFromExtent(extent));\n }\n }\n return extentFeature;\n }\n\n /**\n * @param {import(\"../coordinate.js\").Coordinate} vertex location of feature\n * @return {Feature} vertex as feature\n * @private\n */\n createOrUpdatePointerFeature_(vertex) {\n let vertexFeature = this.vertexFeature_;\n if (!vertexFeature) {\n vertexFeature = new Feature(new Point(vertex));\n this.vertexFeature_ = vertexFeature;\n this.vertexOverlay_.getSource().addFeature(vertexFeature);\n } else {\n const geometry = vertexFeature.getGeometry();\n geometry.setCoordinates(vertex);\n }\n return vertexFeature;\n }\n\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n */\n handleEvent(mapBrowserEvent) {\n if (!mapBrowserEvent.originalEvent || !this.condition_(mapBrowserEvent)) {\n return true;\n }\n //display pointer (if not dragging)\n if (\n mapBrowserEvent.type == MapBrowserEventType.POINTERMOVE &&\n !this.handlingDownUpSequence\n ) {\n this.handlePointerMove_(mapBrowserEvent);\n }\n //call pointer to determine up/down/drag\n super.handleEvent(mapBrowserEvent);\n //return false to stop propagation\n return false;\n }\n\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n handleDownEvent(mapBrowserEvent) {\n const pixel = mapBrowserEvent.pixel;\n const map = mapBrowserEvent.map;\n\n const extent = this.getExtentInternal();\n let vertex = this.snapToVertex_(pixel, map);\n\n //find the extent corner opposite the passed corner\n const getOpposingPoint = function (point) {\n let x_ = null;\n let y_ = null;\n if (point[0] == extent[0]) {\n x_ = extent[2];\n } else if (point[0] == extent[2]) {\n x_ = extent[0];\n }\n if (point[1] == extent[1]) {\n y_ = extent[3];\n } else if (point[1] == extent[3]) {\n y_ = extent[1];\n }\n if (x_ !== null && y_ !== null) {\n return [x_, y_];\n }\n return null;\n };\n if (vertex && extent) {\n const x =\n vertex[0] == extent[0] || vertex[0] == extent[2] ? vertex[0] : null;\n const y =\n vertex[1] == extent[1] || vertex[1] == extent[3] ? vertex[1] : null;\n\n //snap to point\n if (x !== null && y !== null) {\n this.pointerHandler_ = getPointHandler(getOpposingPoint(vertex));\n //snap to edge\n } else if (x !== null) {\n this.pointerHandler_ = getEdgeHandler(\n getOpposingPoint([x, extent[1]]),\n getOpposingPoint([x, extent[3]]),\n );\n } else if (y !== null) {\n this.pointerHandler_ = getEdgeHandler(\n getOpposingPoint([extent[0], y]),\n getOpposingPoint([extent[2], y]),\n );\n }\n //no snap - new bbox\n } else {\n vertex = map.getCoordinateFromPixelInternal(pixel);\n this.setExtent([vertex[0], vertex[1], vertex[0], vertex[1]]);\n this.pointerHandler_ = getPointHandler(vertex);\n }\n return true; //event handled; start downup sequence\n }\n\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n handleDragEvent(mapBrowserEvent) {\n if (this.pointerHandler_) {\n const pixelCoordinate = mapBrowserEvent.coordinate;\n this.setExtent(this.pointerHandler_(pixelCoordinate));\n this.createOrUpdatePointerFeature_(pixelCoordinate);\n }\n }\n\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n handleUpEvent(mapBrowserEvent) {\n this.pointerHandler_ = null;\n //If bbox is zero area, set to null;\n const extent = this.getExtentInternal();\n if (!extent || getArea(extent) === 0) {\n this.setExtent(null);\n }\n return false; //Stop handling downup sequence\n }\n\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../Map.js\").default} map Map.\n */\n setMap(map) {\n this.extentOverlay_.setMap(map);\n this.vertexOverlay_.setMap(map);\n super.setMap(map);\n }\n\n /**\n * Returns the current drawn extent in the view projection (or user projection if set)\n *\n * @return {import(\"../extent.js\").Extent} Drawn extent in the view projection.\n * @api\n */\n getExtent() {\n return toUserExtent(\n this.getExtentInternal(),\n this.getMap().getView().getProjection(),\n );\n }\n\n /**\n * Returns the current drawn extent in the view projection\n *\n * @return {import(\"../extent.js\").Extent} Drawn extent in the view projection.\n * @api\n */\n getExtentInternal() {\n return this.extent_;\n }\n\n /**\n * Manually sets the drawn extent, using the view projection.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent\n * @api\n */\n setExtent(extent) {\n //Null extent means no bbox\n this.extent_ = extent ? extent : null;\n this.createOrUpdateExtentFeature_(extent);\n this.dispatchEvent(new ExtentEvent(this.extent_));\n }\n}\n\n/**\n * Returns the default style for the drawn bbox\n *\n * @return {import(\"../style/Style.js\").StyleFunction} Default Extent style\n */\nfunction getDefaultExtentStyleFunction() {\n const style = createEditingStyle();\n return function (feature, resolution) {\n return style['Polygon'];\n };\n}\n\n/**\n * Returns the default style for the pointer\n *\n * @return {import(\"../style/Style.js\").StyleFunction} Default pointer style\n */\nfunction getDefaultPointerStyleFunction() {\n const style = createEditingStyle();\n return function (feature, resolution) {\n return style['Point'];\n };\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} fixedPoint corner that will be unchanged in the new extent\n * @return {function (import(\"../coordinate.js\").Coordinate): import(\"../extent.js\").Extent} event handler\n */\nfunction getPointHandler(fixedPoint) {\n return function (point) {\n return boundingExtent([fixedPoint, point]);\n };\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} fixedP1 first corner that will be unchanged in the new extent\n * @param {import(\"../coordinate.js\").Coordinate} fixedP2 second corner that will be unchanged in the new extent\n * @return {function (import(\"../coordinate.js\").Coordinate): import(\"../extent.js\").Extent|null} event handler\n */\nfunction getEdgeHandler(fixedP1, fixedP2) {\n if (fixedP1[0] == fixedP2[0]) {\n return function (point) {\n return boundingExtent([fixedP1, [point[0], fixedP2[1]]]);\n };\n }\n if (fixedP1[1] == fixedP2[1]) {\n return function (point) {\n return boundingExtent([fixedP1, [fixedP2[0], point[1]]]);\n };\n }\n return null;\n}\n\n/**\n * @param {import(\"../extent.js\").Extent} extent extent\n * @return {Array>} extent line segments\n */\nfunction getSegments(extent) {\n return [\n [\n [extent[0], extent[1]],\n [extent[0], extent[3]],\n ],\n [\n [extent[0], extent[3]],\n [extent[2], extent[3]],\n ],\n [\n [extent[2], extent[3]],\n [extent[2], extent[1]],\n ],\n [\n [extent[2], extent[1]],\n [extent[0], extent[1]],\n ],\n ];\n}\n\nexport default Extent;\n","/**\n * @module ol/events/SnapEvent\n */\nimport Event from './Event.js';\n\n/**\n * @enum {string}\n */\nexport const SnapEventType = {\n /**\n * Triggered upon snapping to vertex or edge\n * @event SnapEvent#snap\n * @api\n */\n SNAP: 'snap',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Snap~Snap} instances are instances of this\n */\nexport class SnapEvent extends Event {\n /**\n * @param {SnapEventType} type Type.\n * @param {Object} options Options.\n * @param {import(\"../coordinate.js\").Coordinate} options.vertex The snapped vertex.\n * @param {import(\"../coordinate.js\").Coordinate} options.vertexPixel The pixel of the snapped vertex.\n * @param {import(\"../Feature.js\").default} options.feature The feature being snapped.\n * @param {Array|null} options.segment Segment, or `null` if snapped to a vertex.\n */\n constructor(type, options) {\n super(type);\n /**\n * The Map coordinate of the snapped point.\n * @type {import(\"../coordinate.js\").Coordinate}\n * @api\n */\n this.vertex = options.vertex;\n /**\n * The Map pixel of the snapped point.\n * @type {Array&Array}\n * @api\n */\n this.vertexPixel = options.vertexPixel;\n /**\n * The feature closest to the snapped point.\n * @type {import(\"../Feature.js\").default}\n * @api\n */\n this.feature = options.feature;\n /**\n * The segment closest to the snapped point, if snapped to a segment.\n * @type {Array|null}\n * @api\n */\n this.segment = options.segment;\n }\n}\n","/**\n * @module ol/interaction/Snap\n */\nimport CollectionEventType from '../CollectionEventType.js';\nimport EventType from '../events/EventType.js';\nimport PointerInteraction from './Pointer.js';\nimport RBush from '../structs/RBush.js';\nimport VectorEventType from '../source/VectorEventType.js';\nimport {FALSE, TRUE} from '../functions.js';\nimport {SnapEvent, SnapEventType} from '../events/SnapEvent.js';\nimport {boundingExtent, buffer, createEmpty} from '../extent.js';\nimport {\n closestOnCircle,\n closestOnSegment,\n squaredDistance,\n} from '../coordinate.js';\nimport {fromCircle} from '../geom/Polygon.js';\nimport {\n fromUserCoordinate,\n getUserProjection,\n toUserCoordinate,\n toUserExtent,\n} from '../proj.js';\nimport {getUid} from '../util.js';\nimport {listen, unlistenByKey} from '../events.js';\n\n/**\n * @typedef {Object} Result\n * @property {import(\"../coordinate.js\").Coordinate|null} vertex Vertex.\n * @property {import(\"../pixel.js\").Pixel|null} vertexPixel VertexPixel.\n * @property {import(\"../Feature.js\").default|null} feature Feature.\n * @property {Array|null} segment Segment, or `null` if snapped to a vertex.\n */\n\n/**\n * @typedef {Object} SegmentData\n * @property {import(\"../Feature.js\").default} feature Feature.\n * @property {Array} segment Segment.\n */\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../Collection.js\").default} [features] Snap to these features. Either this option or source should be provided.\n * @property {boolean} [edge=true] Snap to edges.\n * @property {boolean} [vertex=true] Snap to vertices.\n * @property {number} [pixelTolerance=10] Pixel tolerance for considering the pointer close enough to a segment or\n * vertex for snapping.\n * @property {import(\"../source/Vector.js\").default} [source] Snap to features from this source. Either this option or features should be provided\n */\n\n/**\n * @param {import(\"../source/Vector.js\").VectorSourceEvent|import(\"../Collection.js\").CollectionEvent} evt Event.\n * @return {import(\"../Feature.js\").default|null} Feature.\n */\nfunction getFeatureFromEvent(evt) {\n if (\n /** @type {import(\"../source/Vector.js\").VectorSourceEvent} */ (evt).feature\n ) {\n return /** @type {import(\"../source/Vector.js\").VectorSourceEvent} */ (evt)\n .feature;\n }\n if (\n /** @type {import(\"../Collection.js\").CollectionEvent} */ (\n evt\n ).element\n ) {\n return /** @type {import(\"../Collection.js\").CollectionEvent} */ (\n evt\n ).element;\n }\n return null;\n}\n\nconst tempSegment = [];\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'snap', SnapEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} SnapOnSignature\n */\n\n/**\n * @classdesc\n * Handles snapping of vector features while modifying or drawing them. The\n * features can come from a {@link module:ol/source/Vector~VectorSource} or {@link module:ol/Collection~Collection}\n * Any interaction object that allows the user to interact\n * with the features using the mouse can benefit from the snapping, as long\n * as it is added before.\n *\n * The snap interaction modifies map browser event `coordinate` and `pixel`\n * properties to force the snap to occur to any interaction that them.\n *\n * Example:\n *\n * import Snap from 'ol/interaction/Snap.js';\n *\n * const snap = new Snap({\n * source: source\n * });\n *\n * map.addInteraction(snap);\n *\n * @fires SnapEvent\n * @api\n */\nclass Snap extends PointerInteraction {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options ? options : {};\n\n const pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (\n options\n );\n\n if (!pointerOptions.handleDownEvent) {\n pointerOptions.handleDownEvent = TRUE;\n }\n\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n\n super(pointerOptions);\n\n /***\n * @type {SnapOnSignature}\n */\n this.on;\n\n /***\n * @type {SnapOnSignature}\n */\n this.once;\n\n /***\n * @type {SnapOnSignature}\n */\n this.un;\n\n /**\n * @type {import(\"../source/Vector.js\").default|null}\n * @private\n */\n this.source_ = options.source ? options.source : null;\n\n /**\n * @private\n * @type {boolean}\n */\n this.vertex_ = options.vertex !== undefined ? options.vertex : true;\n\n /**\n * @private\n * @type {boolean}\n */\n this.edge_ = options.edge !== undefined ? options.edge : true;\n\n /**\n * @type {import(\"../Collection.js\").default|null}\n * @private\n */\n this.features_ = options.features ? options.features : null;\n\n /**\n * @type {Array}\n * @private\n */\n this.featuresListenerKeys_ = [];\n\n /**\n * @type {Object}\n * @private\n */\n this.featureChangeListenerKeys_ = {};\n\n /**\n * Extents are preserved so indexed segment can be quickly removed\n * when its feature geometry changes\n * @type {Object}\n * @private\n */\n this.indexedFeaturesExtents_ = {};\n\n /**\n * If a feature geometry changes while a pointer drag|move event occurs, the\n * feature doesn't get updated right away. It will be at the next 'pointerup'\n * event fired.\n * @type {!Object}\n * @private\n */\n this.pendingFeatures_ = {};\n\n /**\n * @type {number}\n * @private\n */\n this.pixelTolerance_ =\n options.pixelTolerance !== undefined ? options.pixelTolerance : 10;\n\n /**\n * Segment RTree for each layer\n * @type {import(\"../structs/RBush.js\").default}\n * @private\n */\n this.rBush_ = new RBush();\n\n /**\n * @const\n * @private\n * @type {Object>, import(\"../geom/Geometry.js\").default): void>}\n */\n this.GEOMETRY_SEGMENTERS_ = {\n 'Point': this.segmentPointGeometry_.bind(this),\n 'LineString': this.segmentLineStringGeometry_.bind(this),\n 'LinearRing': this.segmentLineStringGeometry_.bind(this),\n 'Polygon': this.segmentPolygonGeometry_.bind(this),\n 'MultiPoint': this.segmentMultiPointGeometry_.bind(this),\n 'MultiLineString': this.segmentMultiLineStringGeometry_.bind(this),\n 'MultiPolygon': this.segmentMultiPolygonGeometry_.bind(this),\n 'GeometryCollection': this.segmentGeometryCollectionGeometry_.bind(this),\n 'Circle': this.segmentCircleGeometry_.bind(this),\n };\n }\n\n /**\n * Add a feature to the collection of features that we may snap to.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {boolean} [register] Whether to listen to the feature change or not\n * Defaults to `true`.\n * @api\n */\n addFeature(feature, register) {\n register = register !== undefined ? register : true;\n const feature_uid = getUid(feature);\n const geometry = feature.getGeometry();\n if (geometry) {\n const segmenter = this.GEOMETRY_SEGMENTERS_[geometry.getType()];\n if (segmenter) {\n this.indexedFeaturesExtents_[feature_uid] =\n geometry.getExtent(createEmpty());\n const segments =\n /** @type {Array>} */ ([]);\n segmenter(segments, geometry);\n if (segments.length === 1) {\n this.rBush_.insert(boundingExtent(segments[0]), {\n feature: feature,\n segment: segments[0],\n });\n } else if (segments.length > 1) {\n const extents = segments.map((s) => boundingExtent(s));\n const segmentsData = segments.map((segment) => ({\n feature: feature,\n segment: segment,\n }));\n this.rBush_.load(extents, segmentsData);\n }\n }\n }\n\n if (register) {\n this.featureChangeListenerKeys_[feature_uid] = listen(\n feature,\n EventType.CHANGE,\n this.handleFeatureChange_,\n this,\n );\n }\n }\n\n /**\n * @return {import(\"../Collection.js\").default|Array} Features.\n * @private\n */\n getFeatures_() {\n /** @type {import(\"../Collection.js\").default|Array} */\n let features;\n if (this.features_) {\n features = this.features_;\n } else if (this.source_) {\n features = this.source_.getFeatures();\n }\n return features;\n }\n\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} evt Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n handleEvent(evt) {\n const result = this.snapTo(evt.pixel, evt.coordinate, evt.map);\n if (result) {\n evt.coordinate = result.vertex.slice(0, 2);\n evt.pixel = result.vertexPixel;\n this.dispatchEvent(\n new SnapEvent(SnapEventType.SNAP, {\n vertex: evt.coordinate,\n vertexPixel: evt.pixel,\n feature: result.feature,\n segment: result.segment,\n }),\n );\n }\n return super.handleEvent(evt);\n }\n\n /**\n * @param {import(\"../source/Vector.js\").VectorSourceEvent|import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n handleFeatureAdd_(evt) {\n const feature = getFeatureFromEvent(evt);\n if (feature) {\n this.addFeature(feature);\n }\n }\n\n /**\n * @param {import(\"../source/Vector.js\").VectorSourceEvent|import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n handleFeatureRemove_(evt) {\n const feature = getFeatureFromEvent(evt);\n if (feature) {\n this.removeFeature(feature);\n }\n }\n\n /**\n * @param {import(\"../events/Event.js\").default} evt Event.\n * @private\n */\n handleFeatureChange_(evt) {\n const feature = /** @type {import(\"../Feature.js\").default} */ (evt.target);\n if (this.handlingDownUpSequence) {\n const uid = getUid(feature);\n if (!(uid in this.pendingFeatures_)) {\n this.pendingFeatures_[uid] = feature;\n }\n } else {\n this.updateFeature_(feature);\n }\n }\n\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} evt Event.\n * @return {boolean} If the event was consumed.\n */\n handleUpEvent(evt) {\n const featuresToUpdate = Object.values(this.pendingFeatures_);\n if (featuresToUpdate.length) {\n featuresToUpdate.forEach(this.updateFeature_.bind(this));\n this.pendingFeatures_ = {};\n }\n return false;\n }\n\n /**\n * Remove a feature from the collection of features that we may snap to.\n * @param {import(\"../Feature.js\").default} feature Feature\n * @param {boolean} [unlisten] Whether to unlisten to the feature change\n * or not. Defaults to `true`.\n * @api\n */\n removeFeature(feature, unlisten) {\n const unregister = unlisten !== undefined ? unlisten : true;\n const feature_uid = getUid(feature);\n const extent = this.indexedFeaturesExtents_[feature_uid];\n if (extent) {\n const rBush = this.rBush_;\n const nodesToRemove = [];\n rBush.forEachInExtent(extent, function (node) {\n if (feature === node.feature) {\n nodesToRemove.push(node);\n }\n });\n for (let i = nodesToRemove.length - 1; i >= 0; --i) {\n rBush.remove(nodesToRemove[i]);\n }\n }\n\n if (unregister) {\n unlistenByKey(this.featureChangeListenerKeys_[feature_uid]);\n delete this.featureChangeListenerKeys_[feature_uid];\n }\n }\n\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../Map.js\").default} map Map.\n */\n setMap(map) {\n const currentMap = this.getMap();\n const keys = this.featuresListenerKeys_;\n const features = /** @type {Array} */ (\n this.getFeatures_()\n );\n\n if (currentMap) {\n keys.forEach(unlistenByKey);\n keys.length = 0;\n this.rBush_.clear();\n Object.values(this.featureChangeListenerKeys_).forEach(unlistenByKey);\n this.featureChangeListenerKeys_ = {};\n }\n super.setMap(map);\n\n if (map) {\n if (this.features_) {\n keys.push(\n listen(\n this.features_,\n CollectionEventType.ADD,\n this.handleFeatureAdd_,\n this,\n ),\n listen(\n this.features_,\n CollectionEventType.REMOVE,\n this.handleFeatureRemove_,\n this,\n ),\n );\n } else if (this.source_) {\n keys.push(\n listen(\n this.source_,\n VectorEventType.ADDFEATURE,\n this.handleFeatureAdd_,\n this,\n ),\n listen(\n this.source_,\n VectorEventType.REMOVEFEATURE,\n this.handleFeatureRemove_,\n this,\n ),\n );\n }\n features.forEach((feature) => this.addFeature(feature));\n }\n }\n\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel\n * @param {import(\"../coordinate.js\").Coordinate} pixelCoordinate Coordinate\n * @param {import(\"../Map.js\").default} map Map.\n * @return {Result|null} Snap result\n */\n snapTo(pixel, pixelCoordinate, map) {\n const projection = map.getView().getProjection();\n const projectedCoordinate = fromUserCoordinate(pixelCoordinate, projection);\n\n const box = toUserExtent(\n buffer(\n boundingExtent([projectedCoordinate]),\n map.getView().getResolution() * this.pixelTolerance_,\n ),\n projection,\n );\n\n const segments = this.rBush_.getInExtent(box);\n const segmentsLength = segments.length;\n if (segmentsLength === 0) {\n return null;\n }\n\n let closestVertex;\n let minSquaredDistance = Infinity;\n let closestFeature;\n let closestSegment = null;\n\n const squaredPixelTolerance = this.pixelTolerance_ * this.pixelTolerance_;\n const getResult = () => {\n if (closestVertex) {\n const vertexPixel = map.getPixelFromCoordinate(closestVertex);\n const squaredPixelDistance = squaredDistance(pixel, vertexPixel);\n if (squaredPixelDistance <= squaredPixelTolerance) {\n return {\n vertex: closestVertex,\n vertexPixel: [\n Math.round(vertexPixel[0]),\n Math.round(vertexPixel[1]),\n ],\n feature: closestFeature,\n segment: closestSegment,\n };\n }\n }\n return null;\n };\n\n if (this.vertex_) {\n for (let i = 0; i < segmentsLength; ++i) {\n const segmentData = segments[i];\n if (segmentData.feature.getGeometry().getType() !== 'Circle') {\n segmentData.segment.forEach((vertex) => {\n const tempVertexCoord = fromUserCoordinate(vertex, projection);\n const delta = squaredDistance(projectedCoordinate, tempVertexCoord);\n if (delta < minSquaredDistance) {\n closestVertex = vertex;\n minSquaredDistance = delta;\n closestFeature = segmentData.feature;\n }\n });\n }\n }\n const result = getResult();\n if (result) {\n return result;\n }\n }\n\n if (this.edge_) {\n for (let i = 0; i < segmentsLength; ++i) {\n let vertex = null;\n const segmentData = segments[i];\n if (segmentData.feature.getGeometry().getType() === 'Circle') {\n let circleGeometry = segmentData.feature.getGeometry();\n const userProjection = getUserProjection();\n if (userProjection) {\n circleGeometry = circleGeometry\n .clone()\n .transform(userProjection, projection);\n }\n vertex = closestOnCircle(\n projectedCoordinate,\n /** @type {import(\"../geom/Circle.js\").default} */ (circleGeometry),\n );\n } else {\n const [segmentStart, segmentEnd] = segmentData.segment;\n // points have only one coordinate\n if (segmentEnd) {\n tempSegment[0] = fromUserCoordinate(segmentStart, projection);\n tempSegment[1] = fromUserCoordinate(segmentEnd, projection);\n vertex = closestOnSegment(projectedCoordinate, tempSegment);\n }\n }\n if (vertex) {\n const delta = squaredDistance(projectedCoordinate, vertex);\n if (delta < minSquaredDistance) {\n closestVertex = toUserCoordinate(vertex, projection);\n closestSegment =\n segmentData.feature.getGeometry().getType() === 'Circle'\n ? null\n : segmentData.segment;\n minSquaredDistance = delta;\n closestFeature = segmentData.feature;\n }\n }\n }\n\n const result = getResult();\n if (result) {\n return result;\n }\n }\n\n return null;\n }\n\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n updateFeature_(feature) {\n this.removeFeature(feature, false);\n this.addFeature(feature, false);\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/Circle.js\").default} geometry Geometry.\n * @private\n */\n segmentCircleGeometry_(segments, geometry) {\n const projection = this.getMap().getView().getProjection();\n let circleGeometry = geometry;\n const userProjection = getUserProjection();\n if (userProjection) {\n circleGeometry = circleGeometry\n .clone()\n .transform(userProjection, projection);\n }\n const polygon = fromCircle(circleGeometry);\n if (userProjection) {\n polygon.transform(projection, userProjection);\n }\n const coordinates = polygon.getCoordinates()[0];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/GeometryCollection.js\").default} geometry Geometry.\n * @private\n */\n segmentGeometryCollectionGeometry_(segments, geometry) {\n const geometries = geometry.getGeometriesArray();\n for (let i = 0; i < geometries.length; ++i) {\n const segmenter = this.GEOMETRY_SEGMENTERS_[geometries[i].getType()];\n if (segmenter) {\n segmenter(segments, geometries[i]);\n }\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/LineString.js\").default} geometry Geometry.\n * @private\n */\n segmentLineStringGeometry_(segments, geometry) {\n const coordinates = geometry.getCoordinates();\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/MultiLineString.js\").default} geometry Geometry.\n * @private\n */\n segmentMultiLineStringGeometry_(segments, geometry) {\n const lines = geometry.getCoordinates();\n for (let j = 0, jj = lines.length; j < jj; ++j) {\n const coordinates = lines[j];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/MultiPoint.js\").default} geometry Geometry.\n * @private\n */\n segmentMultiPointGeometry_(segments, geometry) {\n geometry.getCoordinates().forEach((point) => {\n segments.push([point]);\n });\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/MultiPolygon.js\").default} geometry Geometry.\n * @private\n */\n segmentMultiPolygonGeometry_(segments, geometry) {\n const polygons = geometry.getCoordinates();\n for (let k = 0, kk = polygons.length; k < kk; ++k) {\n const rings = polygons[k];\n for (let j = 0, jj = rings.length; j < jj; ++j) {\n const coordinates = rings[j];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/Point.js\").default} geometry Geometry.\n * @private\n */\n segmentPointGeometry_(segments, geometry) {\n segments.push([geometry.getCoordinates()]);\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/Polygon.js\").default} geometry Geometry.\n * @private\n */\n segmentPolygonGeometry_(segments, geometry) {\n const rings = geometry.getCoordinates();\n for (let j = 0, jj = rings.length; j < jj; ++j) {\n const coordinates = rings[j];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n }\n}\n\nexport default Snap;\n"],"names":["ol_control_TextButton","constructor","options","className","super","ol_control_Toggle","toggleFn","onToggle","handleClick","self","toggle","call","getActive","this","interaction_","interaction","setActive","active","on","set","title","autoActivate","bar","setSubBar","setDisable","disable","setMap","map","getMap","removeInteraction","subbar_","removeControl","addInteraction","addControl","getSubBar","setTarget","element","classList","add","getDisable","button","querySelector","disabled","b","dispatchEvent","type","key","oldValue","contains","remove","setInteraction","i","getInteraction","ol_extent_intersection","ol_coordinate_dist2d","p1","p2","dx","dy","Math","sqrt","ol_coordinate_equal","ol_coordinate_offsetCoords","coords","offset","mi","mi1","li","li1","ri","ri1","si","si1","Xi1","Yi1","p0","path","N","length","max","isClosed","push","abs","pop","ol_coordinate_findSegment","pt","index","segment","d0","v0","d1","v1","splitX","pts","x","splice","splitY","y","extent","polygon","poly","getType","geom","getCoordinates","forEach","g","c","p","ol_coordinate_sampleAt","d","start","dl","nb","round","prototype","sampleAt","line","result","concat","lines","l","res","mpoly","a","intersection","resolution","ext","getCenter","getRadius","simplify","r","hasout","ring","console","warn","splitAt","tol","k","getFirstCoordinate","getLastCoordinate","c0","ci","d2","split","ol_interaction_Delete","e","getFeatures","clear","delete","selected","bind","_getSources","layers","getLayers","sources","getSource","features","getLength","delFeatures","source","f","removeFeature","ol_interaction_DrawHole","_geometryFn","coordinates","geometry","coord","getPolygon","intersectsCoordinate","lastOKCoord","setCoordinates","geomFn","geometryFunction","_select","style","layers_","indexOf","_features","featureFilter","item","getArray","_startDrawing","_finishDrawing","removeLastPoint","_feature","getGeometry","_polygon","feature","_current","forEachFeatureAtPixel","getPixelFromCoordinate","layer","_polygonIndex","layerFilter","hole","pi","newGeom","appendLinearRing","appendPolygon","setGeometry","ol_interaction_DrawRegular","handleEvent","handleEvent_","squaredClickTolerance_","clickTolerance","maxCircleCoordinates_","maxCircleCoordinates","features_","source_","conditionFn_","condition","squareFn_","squareCondition","centeredFn_","centerCondition","canRotate_","canRotate","geometryName_","geometryName","setSides","sides","defaultStyle","sketch_","overlayLayer_","useSpatialIndex","name","displayInLayerSwitcher","removeLayer","reset","started_","parseInt","sides_","getSides","getGeom_","center_","coord_","dmax","circle","centerPx","center","square_","centered_","coordPx_","min","hasrotation","dm","atan2","startAngle","getExtent","scx","scy","sc","sign","t","applyTransform","g1","g2","dim","drawSketch_","evt","originalEvent","shiftKey","metaKey","ctrlKey","feature_","addFeature","drawPoint_","noclear","_eventTime","Date","downPx_","pixel","start_","dt","_longTouch","setTimeout","handleMoveEvent_","lastEvent","end_","upPx_","coordinate","finishDrawing","startCoordinate","square","centered","setGeometryName","PI","ol_interaction_ModifyFeature","dragging","modifying","handleDownEvent","_deleteCondition","handleUpEvent","handleDragEvent","handleMoveEvent","snapDistance_","pixelTolerance","tolerance_","cursor_","cursor","sources_","Array","filterSplit_","filter","_condition","deleteCondition","_insertVertexCondition","insertVertexCondition","sketchStyle","image","radius","fill","color","stroke","width","wrapX","setFilter","undefined","getClosestFeature","getClosestFeatureToCoordinate","getClosestPoint","di","frameState","viewState","currentFeature","deselected","getNearestCoord","dist","Number","MAX_VALUE","lstring","getLineStrings","lring","getLinearRings","getPolygons","getGeometries","getArcs","s","arcs","coord1","coord2","node","shift","c1","nbpt","closed","end","typeg","error","current","getFeaturesInExtent","_modifiedFeatures","_removePoint","getModifiedFeatures","removePoint","_getModification","geoms","found","setGeometries","setArcCoordinates","getTargetElement","previousCursor_","setCursor","getCurrentFeature","ol_interaction_Offset","handleDownEvent_","handleDragEvent_","handleUpEvent_","_filter","duplicate","_style","getFeatureAtPixel_","typeGeom","test","hit","clone","geomType","hitTolerance","current_","currentStyle_","getStyle","get","setStyle","_modifystart","seg","v2","ol_interaction_Split","snapDistance","tolerance","setSources","white","blue","featureStyle","_sketch_","getSources","getVisible","unshift","fi","gi","link","tosplit","original","linkGeometry","ol_interaction_Transform","selection_","handles_","updateWhileAnimating","updateWhileInteracting","_handleEvent","addFn_","addCondition","setPointRadius","pointRadius","translateFeature","translate","translateBBox","stretch","scale","rotate","keepAspectRatio","modifyCenter","noFlip","selection","enableRotatedTransform","keepRectangle","buffer","setDefaultStyle","oldMap","select","isTouch","getViewport","setVisible","pointStroke","strokedash","lineDash","fill0","pointFill","displacement","points","setDisplacement","getAnchor","bigpt","angle","smallpt","createStyle","img","olstyle","im","getImage","setScale","tx","getText","setOffsetX","bbox_","handle","constraint","option","some","getGeometryRotateToZero_","origGeom","viewRotation","getView","getRotation","rotGeom","_isRectangle","slice","extendExt","ptRadius","_pointRadius","ispt_","getCoordinateFromPixel","iscircle_","addFeatures","removeAt","watchFeatures_","setSelection","_featureListeners","isUpdating_","sel","mode_","opt_","constraint_","coordinate_","pixel_","geoms_","rotatedGeoms_","rotExtent","extent_","rotatedExtent_","Cursors","rotate0","angle_","setCenter","j","pt0","ispt","setCenterAndRadius","deltaX","deltaY","delta","extentCoordinates","opt","downCoordinate","dragCoordinate","downPoint","dragPoint","displacementVector","centerPoint","pointArray","pointA","pointB","pointC","pointD","pointA1","base","_countVector","projectedVector","_projectVectorOnVector","nextIndex","coordsToChange","includes","projectedLeft","projectedRight","_movePoint","default","oldgeom","oldgeoms","displacement_vector","point","opt_fast","ol_interaction_UndoRedo","_layers","_undoStack","_redoStack","_undo","_redo","level","_level","view","zoom","getZoom","action","_reduce","_doShift","_doClear","_block","_record","_defs","define","undoFn","redoFn","undo","redo","setMaxLength","size","setMaxSize","getStack","prop","custom","_mapListener","blockStart","blockEnd","_watchSources","_watchInteractions","_sourceListener","getVectorLayers","init","vectors","_onAddRemove","_interactionListener","getInteractions","_onInteraction","target","fn","_handleDo","oldGeom","newp","newProperties","oldp","oldProperties","unset","hasUndo","hasRedo","setattributestart","Object","assign","properties","rotatestart","translatestart","scalestart","modifystart","replace","m","beforesplit","deletestart","aftersplit","deleteend","ol_style_Style_defaultStyle","defaultEditStyle","edit","fillColor","Circle","layout","setFlatCoordinates","flatCoordinates","applyProperties","closestPointXY","closestPoint","minSquaredDistance","squaredDistance","stride","containsXY","getRadiusSquared_","computeExtent","intersectsExtent","circleExtent","changed","setLayout","ii","setRadius","anchor","getStride","transform","DrawEventType","DRAWSTART","DRAWEND","DRAWABORT","DrawEvent","getTraceTargets","targets","appendGeometryTraceTargets","getSquaredDistance","getCoordinate","count","getCumulativeSquaredDistance","startIndex","endIndex","lowIndex","highIndex","lowWholeIndex","ceil","highWholeIndex","floor","interpolateCoordinate","sd","appendTraceTarget","polys","jj","geometries","sharedUpdateInfo","NaN","getTraceTargetUpdate","traceState","snapTolerance","closestTargetDistance","Infinity","newTargetIndex","newEndIndex","targetIndex","minSegmentDistance","coordinateIndex","rel","getPointSegmentRelationship","along","newTarget","considerBothDirections","newCoordinate","startPx","forwardDistance","reverseDistance","sharedRel","x1","y1","x2","y2","px","py","x0","y0","Draw","pointerOptions","stopDown","once","un","shouldHandle_","downTimeout_","lastDragTime_","pointerType_","freehand_","snapTolerance_","type_","getMode","stopClick_","stopClick","minPoints_","minPoints","maxPoints_","maxPoints","finishCondition_","finishCondition","geometryLayout_","geometryLayout","mode","projection","fromUserCoordinate","squaredLength","userProjection","getUserProjection","Constructor","geometryFunction_","dragVertexDelay_","dragVertexDelay","finishCoordinate_","sketchFeature_","sketchPoint_","sketchCoords_","sketchLine_","sketchLineCoords_","overlay_","getDefaultStyleFunction","condition_","freehandCondition_","freehand","freehandCondition","traceCondition_","setTrace","trace","traceState_","traceSource_","traceSource","addChangeListener","ACTIVE","updateState_","getOverlay","event","CONTEXTMENU","preventDefault","move","POINTERMOVE","pass","POINTERDRAG","now","clearTimeout","addToDrawing_","POINTERDOWN","getPointerCount","handlePointerMove_","pointerType","DBLCLICK","startDrawing_","deactivateTrace_","toggleTraceState_","lowerLeft","upperRight","addOrRemoveTracedCoordinates_","previouslyForward","currentlyForward","addTracedCoordinates_","removeTracedCoordinates_","fromIndex","toIndex","removeLastPoints_","appendCoordinates","updateTrace_","updatedTraceTarget","oldTarget","tracing","startingToDraw","atFinish_","abortDrawing","downPx","clickPx","modifyDrawing_","createOrUpdateSketchPoint_","at","potentiallyDone","potentiallyFinishCoordinates","sketchCoords","finishCoordinate","finishPixel","sketchPointGeom","updateSketchFeatures_","createOrUpdateCustomSketchLine_","getLinearRing","sketchLineGeom","getLayout","getFlatCoordinates","getProjection","last","done","n","sketchFeature","abortDrawing_","newDrawing","ending","extend","lineString","sketchFeatures","overlaySource","styles","createEditingStyle","Error","ExtentEventType","EXTENTCHANGED","ExtentEvent","Extent","pointerHandler_","pixelTolerance_","snappedToVertex_","extentFeature_","vertexFeature_","extentOverlay_","boxStyle","getDefaultExtentStyleFunction","vertexOverlay_","pointerStyle","getDefaultPointerStyleFunction","setExtent","snapToVertex_","pixelCoordinate","getCoordinateFromPixelInternal","sortByDistance","getExtentInternal","segments","getSegments","sort","closestSegment","vertex","vertexPixel","getPixelFromCoordinateInternal","pixel1","pixel2","squaredDist1","squaredDist2","mapBrowserEvent","createOrUpdatePointerFeature_","createOrUpdateExtentFeature_","extentFeature","vertexFeature","handlingDownUpSequence","getOpposingPoint","x_","y_","getPointHandler","getEdgeHandler","toUserExtent","fixedPoint","fixedP1","fixedP2","SnapEventType","SNAP","SnapEvent","Event","getFeatureFromEvent","tempSegment","Snap","Pointer","vertex_","edge_","edge","featuresListenerKeys_","featureChangeListenerKeys_","indexedFeaturesExtents_","pendingFeatures_","rBush_","RBush","GEOMETRY_SEGMENTERS_","segmentPointGeometry_","segmentLineStringGeometry_","segmentPolygonGeometry_","segmentMultiPointGeometry_","segmentMultiLineStringGeometry_","segmentMultiPolygonGeometry_","segmentGeometryCollectionGeometry_","segmentCircleGeometry_","register","feature_uid","segmenter","insert","extents","segmentsData","load","EventType","CHANGE","handleFeatureChange_","getFeatures_","snapTo","handleFeatureAdd_","handleFeatureRemove_","uid","updateFeature_","featuresToUpdate","values","unlisten","unregister","rBush","nodesToRemove","forEachInExtent","currentMap","keys","CollectionEventType","ADD","REMOVE","VectorEventType","ADDFEATURE","REMOVEFEATURE","projectedCoordinate","box","getResolution","getInExtent","segmentsLength","closestVertex","closestFeature","squaredPixelTolerance","getResult","squaredPixelDistance","segmentData","tempVertexCoord","circleGeometry","segmentStart","segmentEnd","toUserCoordinate","getGeometriesArray","polygons","kk","rings"],"sourceRoot":""} \ No newline at end of file diff --git a/js/4394.f147b645.js b/js/4394.f147b645.js deleted file mode 100644 index a839351d..00000000 --- a/js/4394.f147b645.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[4394],{35124:(e,t,s)=>{s.d(t,{A:()=>n});var i=s(7683),r=class extends i.A{constructor(e){e=e||{},e.className=(e.className||"")+" ol-text-button",super(e)}};const n=r},52659:(e,t,s)=>{s.d(t,{A:()=>n});var i=s(7683),r=class extends i.A{constructor(e){e=e||{},e.toggleFn&&(e.onToggle=e.toggleFn),e.handleClick=function(){t.toggle(),e.onToggle&&e.onToggle.call(t,t.getActive())},e.className=(e.className||"")+" ol-toggle",super(e);var t=this;this.interaction_=e.interaction,this.interaction_&&(this.interaction_.setActive(e.active),this.interaction_.on("change:active",(function(){t.setActive(t.interaction_.getActive())}))),this.set("title",e.title),this.set("autoActivate",e.autoActivate),e.bar&&this.setSubBar(e.bar),this.setActive(e.active),this.setDisable(e.disable)}setMap(e){!e&&this.getMap()&&(this.interaction_&&this.getMap().removeInteraction(this.interaction_),this.subbar_&&this.getMap().removeControl(this.subbar_)),super.setMap(e),e&&(this.interaction_&&e.addInteraction(this.interaction_),this.subbar_&&e.addControl(this.subbar_))}getSubBar(){return this.subbar_}setSubBar(e){var t=this.getMap();t&&this.subbar_&&t.removeControl(this.subbar_),this.subbar_=e,e&&(this.subbar_.setTarget(this.element),this.subbar_.element.classList.add("ol-option-bar"),t&&t.addControl(this.subbar_))}getDisable(){var e=this.element.querySelector("button");return e&&e.disabled}setDisable(e){this.getDisable()!=e&&(this.element.querySelector("button").disabled=e,e&&this.getActive()&&this.setActive(!1),this.dispatchEvent({type:"change:disable",key:"disable",oldValue:!e,disable:e}))}getActive(){return this.element.classList.contains("ol-active")}toggle(){this.getActive()?this.setActive(!1):this.setActive(!0)}setActive(e){this.interaction_&&this.interaction_.setActive(e),this.subbar_&&this.subbar_.setActive(e),this.getActive()!==e&&(e?this.element.classList.add("ol-active"):this.element.classList.remove("ol-active"),this.dispatchEvent({type:"change:active",key:"active",oldValue:!e,active:e}))}setInteraction(e){this.interaction_=e}getInteraction(){return this.interaction_}};const n=r},13039:(e,t,s)=>{s.d(t,{AE:()=>_,OX:()=>d,of:()=>l,xh:()=>u});var i,r=s(11217),n=s(96702),o=s(2871),a=s(34142),h=s(94974),c=s(70915),l=function(e,t){var s=e[0]-t[0],i=e[1]-t[1];return Math.sqrt(s*s+i*i)},d=function(e,t){return e[0]==t[0]&&e[1]==t[1]},u=function(e,t){var s,i,r,n,o,a,h,c,u,_,g,f,p,y=[],v=e.length-1,m=v,C=d(e[0],e[v]);C||(g=e[0],f=e[1],p=[g[0]+(f[1]-g[1])/l(g,f)*t,g[1]-(f[0]-g[0])/l(g,f)*t],y.push(p),e.push(e[v]),v++,m--);for(var x=0;x1e-10&&(r=Math.sqrt((f[0]-g[0])*(f[0]-g[0])+(f[1]-g[1])*(f[1]-g[1])),n=Math.sqrt((p[0]-f[0])*(p[0]-f[0])+(p[1]-f[1])*(p[1]-f[1])),o=g[0]+t*(f[1]-g[1])/r,a=f[0]+t*(p[1]-f[1])/n,h=g[1]-t*(f[0]-g[0])/r,c=f[1]-t*(p[0]-f[0])/n,u=(i*a-s*o+h-c)/(i-s),_=(s*i*(a-o)+i*h-s*c)/(i-s),f[0]-g[0]==0&&(u=f[0]+t*(f[1]-g[1])/Math.abs(f[1]-g[1]),_=i*u-i*a+c),p[0]-f[0]==0&&(u=p[0]+t*(p[1]-f[1])/Math.abs(p[1]-f[1]),_=s*u-s*o+h),y.push([u,_]));return C?y.push(y[0]):(e.pop(),g=e[e.length-1],f=e[e.length-2],p=[g[0]-(f[1]-g[1])/l(g,f)*t,g[1]+(f[0]-g[0])/l(g,f)*t],y.push(p)),y},_=function(e,t){for(var s=0;s0;i--)(e[i][0]>t&&e[i-1][0]t)&&(s=[t,(t-e[i][0])/(e[i-1][0]-e[i][0])*(e[i-1][1]-e[i][1])+e[i][1]],e.splice(i,0,s))}function t(e,t){var s;for(let i=e.length-1;i>0;i--)(e[i][1]>t&&e[i-1][1]t)&&(s=[(t-e[i][1])/(e[i-1][1]-e[i][1])*(e[i-1][0]-e[i][0])+e[i][0],t],e.splice(i,0,s))}i=function(s,i){var r="Polygon"===i.getType();if(!r&&"MultiPolygon"!==i.getType())return null;var n=i.getCoordinates();return r&&(n=[n]),n.forEach((function(i){i.forEach((function(i){e(i,s[0]),e(i,s[2]),t(i,s[1]),t(i,s[3])}))})),n.forEach((function(e){e.forEach((function(e){e.forEach((function(e){e[0]s[2]&&(e[0]=s[2]),e[1]s[3]&&(e[1]=s[3])}))}))})),r?new a.Ay(n[0]):new o.A(n)}})();var g=function(e,t,s,i){var r=[];!1!==i&&r.push(e);var n=l(e,t);if(n){var o=Math.round(n/s);if(o>1)for(var a=(t[0]-e[0])/o,h=(t[1]-e[1])/o,c=1;cn?(d=!0,s.push([r[0]+n/t*(e[0]-r[0]),r[1]+n/t*(e[1]-r[1])])):s.push(e)}))}))})),d?"Polygon"===e.getType()?new a.Ay(u[0]):new o.A(u):e}}else console.warn("[ol/geom/Circle~intersection] Unsupported geometry type: "+e.getType());return e}},81502:(e,t,s)=>{var i=s(13039),r=s(11217);r.A.prototype.splitAt=function(e,t){var s;if(!e)return[this];if(t||(t=1e-10),e.length&&e[0].length){var n=[this];for(s=0;s1&&d.push(new r.A(l)),d.length?d:[this]}},30379:(e,t,s)=>{s.d(t,{A:()=>o});var i=s(42770),r=s(54602),n=class extends i.A{constructor(e){super(e),this.on("select",function(e){this.getFeatures().clear(),this.delete(e.selected)}.bind(this))}_getSources(e){if(!this.getMap())return[];e||(e=this.getMap().getLayers());var t=[];return e.forEach(function(e){e.getLayers?t=t.concat(this._getSources(e.getLayers())):e.getSource&&e.getSource()instanceof r["default"]&&t.push(e.getSource())}.bind(this)),t}delete(e){if(e&&(e.length||e.getLength())){this.dispatchEvent({type:"deletestart",features:e});var t=[];this._getSources().forEach((function(s){try{e.forEach((function(e){s.removeFeature(e),t.push(e)}))}catch(i){}})),this.dispatchEvent({type:"deleteend",features:t})}}};const o=n},8616:(e,t,s)=>{s.d(t,{A:()=>c});var i=s(34142),r=s(2871),n=s(22809),o=s(54620),a=s(42770),h=class extends o.Ay{constructor(e){e=e||{};var t=function(e,t){var s=e[0].pop();return this.getPolygon()&&!this.getPolygon().intersectsCoordinate(s)||(this.lastOKCoord=[s[0],s[1]]),e[0].push([this.lastOKCoord[0],this.lastOKCoord[1]]),t?t.setCoordinates([e[0].concat([e[0][0]])]):t=new i.Ay(e),t},s=e.geometryFunction;if(e.geometryFunction=s?function(e,i,r){return i=t.bind(this)(e,i),s.bind(this)(e,i,r)}:t,e.type="Polygon",super(e),this._select=new a.A({style:e.style}),this._select.setActive(!1),e.layers&&("function"===typeof e.layers?this.layers_=e.layers:e.layers.indexOf&&(this.layers_=function(t){return e.layers.indexOf(t)>=0})),"function"===typeof e.featureFilter)this._features=e.featureFilter;else if(e.featureFilter){var r=e.featureFilter;this._features=function(e){return r.indexOf?!!r[r.indexOf(e)]:!!r.item(r.getArray().indexOf(e))}}else this._features=function(){return!0};this.on("drawstart",this._startDrawing.bind(this)),this.on("drawend",this._finishDrawing.bind(this))}setMap(e){this.getMap()&&this.getMap().removeInteraction(this._select),e&&e.addInteraction(this._select),super.setMap.call(this,e)}setActive(e){this._select&&this._select.getFeatures().clear(),super.setActive.call(this,e)}removeLastPoint(){this._feature&&this._feature.getGeometry().getCoordinates()[0].length>2&&super.removeLastPoint.call(this)}getPolygon(){return this._polygon}_startDrawing(e){var t=this.getMap();this._feature=e.feature;var s=e.feature.getGeometry().getCoordinates()[0][0];this._current=null,t.forEachFeatureAtPixel(t.getPixelFromCoordinate(s),function(e,t){if(!this._current&&this._features(e,t)){var i=e.getGeometry();if("Polygon"===i.getType()&&i.intersectsCoordinate(s))this._polygonIndex=!1,this._polygon=i,this._current=e;else if("MultiPolygon"===i.getType()&&i.intersectsCoordinate(s))for(var r,n=0;r=i.getPolygon(n);n++)if(r.intersectsCoordinate(s)){this._polygonIndex=n,this._polygon=r,this._current=e;break}}}.bind(this),{layerFilter:this.layers_}),this._select.getFeatures().clear(),this._current?this._select.getFeatures().push(this._current):(this.setActive(!1),this.setActive(!0))}_finishDrawing(e){e.hole=e.feature,e.feature=this._select.getFeatures().item(0),this.dispatchEvent({type:"modifystart",features:[this._current]});var t=e.hole.getGeometry().getCoordinates()[0];if(t.length>3)if(!1!==this._polygonIndex){for(var s,i=e.feature.getGeometry(),o=new r.A([]),a=0;s=i.getPolygon(a);a++)a===this._polygonIndex?(s.appendLinearRing(new n.A(t)),o.appendPolygon(s)):o.appendPolygon(s);e.feature.setGeometry(o)}else this.getPolygon().appendLinearRing(new n.A(t));this.dispatchEvent({type:"modifyend",features:[this._current]}),this._feature=null,this._select.getFeatures().clear()}_geometryFn(e,t){var s=e[0].pop();return this.getPolygon()&&!this.getPolygon().intersectsCoordinate(s)||(this.lastOKCoord=[s[0],s[1]]),e[0].push([this.lastOKCoord[0],this.lastOKCoord[1]]),t?t.setCoordinates([e[0].concat([e[0][0]])]):t=new i.Ay(e),t}};const c=h},41452:(e,t,s)=>{s.d(t,{A:()=>g});var i=s(6292),r=s(25937),n=s(50071),o=s(82986),a=s(54602),h=s(94974),c=s(34142),l=s(44294),d=s(11217),u=s(86717),_=class extends i.Ay{constructor(e){e=e||{},super({handleEvent:function(e){return t.handleEvent_(e)}});var t=this;this.squaredClickTolerance_=e.clickTolerance?e.clickTolerance*e.clickTolerance:36,this.maxCircleCoordinates_=e.maxCircleCoordinates||100,this.features_=e.features,this.source_=e.source,this.conditionFn_=e.condition,this.squareFn_=e.squareCondition,this.centeredFn_=e.centerCondition,this.canRotate_=!1!==e.canRotate,this.geometryName_=e.geometryName||"geometry",this.setSides(e.sides);var s=(0,r.A)(!0);this.sketch_=new n.A,this.overlayLayer_=new o["default"]({source:new a["default"]({features:this.sketch_,useSpatialIndex:!1}),name:"DrawRegular overlay",displayInLayerSwitcher:!1,style:e.style||s})}setMap(e){this.getMap()&&this.getMap().removeLayer(this.overlayLayer_),super.setMap(e),this.overlayLayer_.setMap(e)}setActive(e){this.reset(),super.setActive(e)}reset(){this.overlayLayer_&&this.overlayLayer_.getSource().clear(),this.started_=!1}setSides(e){e=parseInt(e),this.sides_=e>2?e:0}canRotate(e){return!0!==e&&!1!==e||(this.canRotate_=e),this.canRotate_}getSides(){return this.sides_}getGeom_(){if(this.overlayLayer_.getSource().clear(),!this.center_)return!1;var e;if(this.coord_){var t,s,i,r,n,o=this.center_,a=this.coord_;if(!this.sides_&&this.square_&&!this.centered_)return o=[(a[0]+o[0])/2,(a[1]+o[1])/2],t=[a[0]-o[0],a[1]-o[1]],i=Math.sqrt(t[0]*t[0]+t[1]*t[1]),r=new h.A(o,i,"XY"),n=this.getMap().getPixelFromCoordinate(o),s=Math.max(100,Math.abs(n[0]-this.coordPx_[0]),Math.abs(n[1]-this.coordPx_[1])),s=Math.min(this.maxCircleCoordinates_,Math.round(s/3)),(0,c.nD)(r,s,0);var d=this.canRotate_&&this.centered_&&this.square_;if(t=[a[0]-o[0],a[1]-o[1]],this.square_&&!d){var u=Math.max(Math.abs(t[0]),Math.abs(t[1]));a=[o[0]+(t[0]>0?u:-u),o[1]+(t[1]>0?u:-u)]}if(i=Math.sqrt(t[0]*t[0]+t[1]*t[1]),i>0){var _;if(r=new h.A(o,i,"XY"),_=d?Math.atan2(t[1],t[0]):this.startAngle[this.sides_]||this.startAngle["default"],this.sides_?e=(0,c.nD)(r,this.sides_,_):(n=this.getMap().getPixelFromCoordinate(this.center_),s=Math.max(100,Math.abs(n[0]-this.coordPx_[0]),Math.abs(n[1]-this.coordPx_[1])),s=Math.min(this.maxCircleCoordinates_,Math.round(s/(this.centered_?3:5))),e=(0,c.nD)(r,s,0)),d)return e;var g=e.getExtent();o=this.centered_?[2*this.center_[0]-this.coord_[0],2*this.center_[1]-this.coord_[1]]:this.center_;var f=(o[0]-a[0])/(g[0]-g[2]),p=(o[1]-a[1])/(g[1]-g[3]);if(this.square_){var y=Math.min(Math.abs(f),Math.abs(p));f=Math.sign(f)*y,p=Math.sign(p)*y}var v=[o[0]-g[0]*f,o[1]-g[1]*p];return e.applyTransform((function(e,t,s){for(var i=0;i.9*i,this._longTouch&&this.handleMoveEvent_(e)}.bind(this),i);break;case"pointerup":this.started_&&this.coord_&&(t=this.downPx_[0]-e.pixel[0],s=this.downPx_[1]-e.pixel[1],t*t+s*s<=this.squaredClickTolerance_&&("pointermove"==this.lastEvent||"keydown"==this.lastEvent?this.end_(e):(t=this.upPx_[0]-e.pixel[0],s=this.upPx_[1]-e.pixel[1],t*t+s*s<=this.squaredClickTolerance_?this.end_(e):(this.handleMoveEvent_(e),this.drawPoint_(e.coordinate,!0))))),this.upPx_=e.pixel;break;case"pointerdrag":if(this.started_){var r=this.getMap().getPixelFromCoordinate(this.center_);t=r[0]-e.pixel[0],s=r[1]-e.pixel[1],t*t+s*s<=this.squaredClickTolerance_&&this.reset()}return!this._longTouch;case"pointermove":this.started_&&(t=this.downPx_[0]-e.pixel[0],s=this.downPx_[1]-e.pixel[1],t*t+s*s>this.squaredClickTolerance_&&(this.handleMoveEvent_(e),this.lastEvent=e.type));break;default:if(this.lastEvent=e.type,this.started_&&"dblclick"===e.type)return!1;break}return!0}finishDrawing(){this.started_&&this.coord_&&this.end_({pixel:this.upPx_,coordinate:this.coord_})}handleMoveEvent_(e){if(this.started_){this.coord_=e.coordinate,this.coordPx_=e.pixel;var t=this.drawSketch_(e);this.dispatchEvent({type:"drawing",feature:t,pixel:e.pixel,startCoordinate:this.center_,coordinate:e.coordinate,square:this.square_,centered:this.centered_})}else this.drawPoint_(e.coordinate)}start_(e){if(this.started_)this.coord_=e.coordinate;else{this.started_=!0,this.center_=e.coordinate,this.coord_=null;var t=this.feature_=new u["default"]({});t.setGeometryName(this.geometryName_||"geometry"),t.setGeometry(new c.Ay([[e.coordinate,e.coordinate,e.coordinate]])),this.drawSketch_(e),this.dispatchEvent({type:"drawstart",feature:t,pixel:e.pixel,coordinate:e.coordinate})}}end_(e){if(this.coord_=e.coordinate,this.started_=!1,!this.coord_||this.center_[0]===this.coord_[0]&&this.center_[1]===this.coord_[1])this.dispatchEvent({type:"drawcancel",feature:null,pixel:e.pixel,coordinate:e.coordinate,square:this.square_,centered:this.centered_});else{var t=this.feature_;t.setGeometry(this.getGeom_()),this.source_?this.source_.addFeature(t):this.features_&&this.features_.push(t),this.dispatchEvent({type:"drawend",feature:t,pixel:e.pixel,coordinate:e.coordinate,square:this.square_,centered:this.centered_})}this.center_=this.coord_=null,this.drawSketch_()}};_.prototype.startAngle={default:Math.PI/2,3:-Math.PI/2,4:Math.PI/4};const g=_},2230:(e,t,s)=>{s.d(t,{A:()=>v});var i=s(29276),r=s(953),n=s(54602),o=s(13628),a=s(27733),h=s(82986),c=s(44294),l=s(86717),d=s(11217),u=s(6292),_=s(13039),g=s(70915),f=s(58704),p=s(16452),y=(s(81502),class extends u.Ay{constructor(e){var t,s;e=e||{},super({handleEvent:function(e){switch(e.type){case"pointerdown":return t=this.handleDownEvent(e),s=t||this._deleteCondition(e),!t;case"pointerup":return t=!1,this.handleUpEvent(e);case"pointerdrag":return!t||this.handleDragEvent(e);case"pointermove":return!t&&this.handleMoveEvent(e);case"singleclick":case"click":return!s;default:return!0}}}),this.snapDistance_=e.pixelTolerance||10,this.tolerance_=1e-10,this.cursor_=e.cursor,this.sources_=e.sources?e.sources instanceof Array?e.sources:[e.sources]:[],e.source&&this.sources_.push(e.source),e.features&&this.sources_.push(new n["default"]({features:e.features})),this.filterSplit_=e.filter||function(){return!0},this._condition=e.condition||f.fs,this._deleteCondition=e.deleteCondition||f.Js,this._insertVertexCondition=e.insertVertexCondition||f.Gk;var c=function(){return[new i["default"]({image:new a.A({radius:6,fill:new o.A({color:[0,153,255,1]}),stroke:new r.A({color:"#FFF",width:1.25})})})]};e.style&&(c="function"===typeof e.style?e.style:function(){return e.style}),this.overlayLayer_=new h["default"]({source:new n["default"]({useSpatialIndex:!1}),name:"Modify overlay",displayInLayerSwitcher:!1,style:c,wrapX:e.wrapX})}setMap(e){this.getMap()&&this.getMap().removeLayer(this.overlayLayer_),super.setMap(e),this.overlayLayer_.setMap(e)}setActive(e){super.setActive(e),this.overlayLayer_&&this.overlayLayer_.getSource().clear()}setFilter(e){"function"===typeof e?this.filterSplit_=e:void 0===e&&(this.filterSplit_=function(){return!0})}getClosestFeature(e){for(var t,s,i=this.snapDistance_+1,r=0;rthis.snapDistance_)return this.currentFeature&&this.dispatchEvent({type:"select",selected:[],deselected:[this.currentFeature]}),this.currentFeature=null,!1;var h=this.getNearestCoord(s,t.getGeometry());if(h){h=h.coord;var c=this.getMap().getPixelFromCoordinate(h);return(0,_.of)(e.pixel,c)2){for(s=c[1].getCoordinates(),i=2;r=c[i];i++){var l=r.getCoordinates();l.shift(),s=s.concat(l)}c=[c[0],new d.A(s)]}if(2===c.length){var u=c[0].getCoordinates(),g=c[1].getCoordinates(),f=u.length+g.length-1;u.pop(),g.shift(),a={geom:e,type:e.getType(),coord1:u,coord2:g,node:e.getCoordinates().length===f,closed:!1}}else if(1===c.length){r=c[0].getCoordinates();var p=(0,_.OX)(r[0],t),y=(0,_.OX)(r[r.length-1],t);p?(r.shift(),y&&r.pop(),a={geom:e,type:e.getType(),coord1:[],coord2:r,node:!0,closed:y}):y&&(r.pop(),a={geom:e,type:e.getType(),coord1:r,coord2:[],node:!0,closed:!1})}}break;case"MultiLineString":var v=e.getLineStrings();for(i=0;n=v[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.type=e.getType(),a.lstring=i;break}break;case"Polygon":var m=e.getLinearRings();for(i=0;n=m[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.type=e.getType(),a.index=i;break}break;case"MultiPolygon":var C=e.getPolygons();for(i=0;n=C[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.type=e.getType(),a.poly=i;break}break;case"GeometryCollection":for(o=e.getGeometries(),i=0;n=o[i];i++)if(a=this.getArcs(n,t),a){a.geom=e,a.g=i,a.typeg=a.type,a.type=e.getType();break}break;default:console.error("ol/interaction/ModifyFeature "+e.getType()+" not supported!");break}return a}handleDownEvent(e){if(!this.getActive())return!1;var t=this.getClosestFeature(e);if(t&&(this._condition(e)||this._deleteCondition(e))){var s=[];return this.arcs=[],this.sources_.forEach(function(e){var i=(0,g.r)((0,g.Tr)([t.coord]),this.tolerance_);s=s.concat(s,e.getFeaturesInExtent(i))}.bind(this)),this._modifiedFeatures=[],s.forEach(function(s){var i=this.getArcs(s.getGeometry(),t.coord);i&&(this._insertVertexCondition(e)||i.node)&&(i.feature=s,this._modifiedFeatures.push(s),this.arcs.push(i))}.bind(this)),!this._modifiedFeatures.length||(this._deleteCondition(e)?!this._removePoint(t,e):(this.dispatchEvent({type:"modifystart",coordinate:t.coord,originalEvent:e.originalEvent,features:this._modifiedFeatures}),this.handleDragEvent({coordinate:t.coord,originalEvent:e.originalEvent}),!0))}return!1}getModifiedFeatures(){return this._modifiedFeatures||[]}removePoint(){this._removePoint({},{})}_getModification(e){var t=e.coord1.concat(e.coord2);switch(e.type){case"LineString":if(e.closed&&t.push(t[0]),t.length>1&&e.geom.getCoordinates().length!=t.length)return e.coords=t,!0;break;case"MultiLineString":if(e.closed&&t.push(t[0]),t.length>1){var s=e.geom.getCoordinates();if(s[e.lstring].length!=t.length)return s[e.lstring]=t,e.coords=s,!0}break;case"Polygon":if(e.closed&&t.push(t[0]),t.length>3&&(s=e.geom.getCoordinates(),s[e.index].length!=t.length))return s[e.index]=t,e.coords=s,!0;break;case"MultiPolygon":if(e.closed&&t.push(t[0]),t.length>3&&(s=e.geom.getCoordinates(),s[e.poly][e.index].length!=t.length))return s[e.poly][e.index]=t,e.coords=s,!0;break;case"GeometryCollection":e.type=e.typeg;var i=e.geom,r=i.getGeometries();e.geom=r[e.g];var n=this._getModification(e);return i.setGeometries(r),e.geom=i,e.type="GeometryCollection",n;default:break}return!1}_removePoint(e,t){if(!this.arcs)return!1;this.overlayLayer_.getSource().clear();var s=!1;return this.arcs.forEach(function(e){s=s||this._getModification(e)}.bind(this)),s&&(this.dispatchEvent({type:"modifystart",coordinate:e.coord,originalEvent:t.originalEvent,features:this._modifiedFeatures}),this.arcs.forEach(function(e){if("GeometryCollection"===e.geom.getType()){if(e.coords){var t=e.geom.getGeometries();t[e.g].setCoordinates(e.coords),e.geom.setGeometries(t)}}else e.coords&&e.geom.setCoordinates(e.coords)}.bind(this)),this.dispatchEvent({type:"modifyend",coordinate:e.coord,originalEvent:t.originalEvent,features:this._modifiedFeatures})),this.arcs=[],s}handleUpEvent(e){return!!this.getActive()&&(!this.arcs||!this.arcs.length||(this.overlayLayer_.getSource().clear(),this.dispatchEvent({type:"modifyend",coordinate:e.coordinate,originalEvent:e.originalEvent,features:this._modifiedFeatures}),this.arcs=[],!0))}setArcCoordinates(e,t){var s;switch(e.type){case"Point":e.geom.setCoordinates(t[0]);break;case"MultiPoint":s=e.geom.getCoordinates(),s[e.index]=t[0],e.geom.setCoordinates(s);break;case"LineString":e.geom.setCoordinates(t);break;case"MultiLineString":s=e.geom.getCoordinates(),s[e.lstring]=t,e.geom.setCoordinates(s);break;case"Polygon":s=e.geom.getCoordinates(),s[e.index]=t,e.geom.setCoordinates(s);break;case"MultiPolygon":s=e.geom.getCoordinates(),s[e.poly][e.index]=t,e.geom.setCoordinates(s);break;case"GeometryCollection":e.type=e.typeg;var i=e.geom,r=i.getGeometries();e.geom=r[e.g],this.setArcCoordinates(e,t),i.setGeometries(r),e.geom=i,e.type="GeometryCollection";break}}handleDragEvent(e){if(!this.getActive())return!1;if(!this.arcs)return!0;this.overlayLayer_.getSource().clear();var t=new l["default"](new c["default"](e.coordinate));return this.overlayLayer_.getSource().addFeature(t),!this.arcs.length||(this.arcs.forEach(function(t){var s=t.coord1.concat([e.coordinate],t.coord2);t.closed&&s.push(e.coordinate),this.setArcCoordinates(t,s)}.bind(this)),this.dispatchEvent({type:"modifying",coordinate:e.coordinate,originalEvent:e.originalEvent,features:this._modifiedFeatures}),!0)}handleMoveEvent(e){if(!this.getActive())return!0;this.overlayLayer_.getSource().clear();var t=this.getClosestFeature(e);if(t){var s=new l["default"](new c["default"](t.coord));this.overlayLayer_.getSource().addFeature(s)}var i=e.map.getTargetElement();return this.cursor_&&(t?i.style.cursor!=this.cursor_&&(this.previousCursor_=i.style.cursor,p.A.setCursor(i,this.cursor_)):void 0!==this.previousCursor_&&(p.A.setCursor(i,this.previousCursor_),this.previousCursor_=void 0)),!0}getCurrentFeature(){return this.currentFeature}});const v=y},67355:(e,t,s)=>{s.d(t,{A:()=>l});var i=s(21409),r=s(11217),n=s(34142),o=s(13039),a=s(25937),h=s(16452),c=class extends i.A{constructor(e){e=e||{},super({handleDownEvent:function(e){return t.handleDownEvent_(e)},handleDragEvent:function(e){return t.handleDragEvent_(e)},handleMoveEvent:function(e){return t.handleMoveEvent_(e)},handleUpEvent:function(e){return t.handleUpEvent_(e)}});var t=this;this._filter=e.filter,this.features_=e.features,this.layers_=e.layers?e.layers instanceof Array?e.layers:[e.layers]:null,this.set("duplicate",e.duplicate),this.source_=e.source,this._style="function"===typeof e.style?e.style:function(){return e.style?e.style:(0,a.A)(!0)},this.previousCursor_=!1}getFeatureAtPixel_(e){var t=this;return this.getMap().forEachFeatureAtPixel(e.pixel,(function(s,i){var r;if(t._filter&&!t._filter(s,i))return!1;if(t.layers_){for(var n=0;n1)return!1;var a=r.getGeometry().getClosestPoint(e.coordinate),h=a[0]-e.coordinate[0],c=a[1]-e.coordinate[1],l=Math.sqrt(h*h+c*c)/e.frameState.viewState.resolution;return l<5&&{feature:r,hit:a,coordinates:r.getGeometry().getCoordinates(),geom:r.getGeometry().clone(),geomType:o}}return!1}),{hitTolerance:5})}handleDownEvent_(e){return this.current_=this.getFeatureAtPixel_(e),!!this.current_&&(this.currentStyle_=this.current_.feature.getStyle(),this.source_&&(this.get("duplicate")||e.originalEvent.ctrlKey)?(this.current_.feature=this.current_.feature.clone(),this.current_.feature.setStyle(this._style(this.current_.feature)),this.source_.addFeature(this.current_.feature)):(this.current_.feature.setStyle(this._style(this.current_.feature)),this._modifystart=!0),this.dispatchEvent({type:"offsetstart",feature:this.current_.feature,offset:0}),!0)}handleDragEvent_(e){this._modifystart&&(this.dispatchEvent({type:"modifystart",features:[this.current_.feature]}),this._modifystart=!1);var t,s,i,a,h=this.current_.geom.getClosestPoint(e.coordinate),c=(0,o.of)(h,e.coordinate);switch(this.current_.geomType){case"Polygon":if(t=(0,o.AE)(h,this.current_.coordinates[0]).segment,t){s=[t[1][0]-t[0][0],t[1][1]-t[0][1]],i=[e.coordinate[0]-h[0],e.coordinate[1]-h[1]],s[0]*i[1]-s[1]*i[0]>0&&(c=-c),a=[];for(var l=0;l0&&(c=-c),a=(0,o.xh)(this.current_.coordinates,c),this.current_.feature.setGeometry(new r.A(a)));break;default:break}this.dispatchEvent({type:"offsetting",feature:this.current_.feature,offset:c,segment:[h,e.coordinate],coordinate:e.coordinate})}handleUpEvent_(e){this._modifystart||this.dispatchEvent({type:"offsetend",feature:this.current_.feature,coordinate:e.coordinate}),this.current_.feature.setStyle(this.currentStyle_),this.current_=!1}handleMoveEvent_(e){var t=this.getFeatureAtPixel_(e);t?(!1===this.previousCursor_&&(this.previousCursor_=e.map.getTargetElement().style.cursor),h.A.setCursor(e.map,"pointer")):(h.A.setCursor(e.map,this.previousCursor_),this.previousCursor_=!1)}};const l=c},54158:(e,t,s)=>{s.d(t,{A:()=>p});var i=s(6292),r=s(29276),n=s(953),o=s(54602),a=s(13628),h=s(27733),c=s(82986),l=s(44294),d=s(86717),u=s(11217),_=s(13039),g=(s(81502),s(16452)),f=class extends i.Ay{constructor(e){e||(e={}),super({handleEvent:function(e){switch(e.type){case"singleclick":return this.handleDownEvent(e);case"pointermove":return this.handleMoveEvent(e);default:return!0}}}),this.snapDistance_=e.snapDistance||25,this.tolerance_=e.tolerance||1e-10,this.cursor_=e.cursor,this.setSources(e.sources),e.features&&(this.sources_||(this.sources_=[]),this.sources_.push(new o["default"]({features:e.features}))),this.filterSplit_=e.filter||function(){return!0};var t=[255,255,255,1],s=[0,153,255,1],i=3,l=new a.A({color:"rgba(255,255,255,0.4)"}),d=new n.A({color:"#3399CC",width:1.25}),u=[new r["default"]({image:new h.A({fill:l,stroke:d,radius:5}),fill:l,stroke:d})],_=[new r["default"]({stroke:new n.A({color:t,width:i+2})}),new r["default"]({image:new h.A({radius:2*i,fill:new a.A({color:s}),stroke:new n.A({color:t,width:i/2})}),stroke:new n.A({color:s,width:i})})];e.sketchStyle&&(u=e.sketchStyle instanceof Array?e.sketchStyle:[e.sketchStyle]),e.featureStyle&&(_=e.featureStyle instanceof Array?e.featureStyle:[e.featureStyle]),this.overlayLayer_=new c["default"]({source:new o["default"]({useSpatialIndex:!1}),name:"Split overlay",displayInLayerSwitcher:!1,style:function(e){return e._sketch_?u:_}})}setMap(e){this.getMap()&&this.getMap().removeLayer(this.overlayLayer_),super.setMap(e),this.overlayLayer_.setMap(e)}getSources(){if(!this.sources_&&this.getMap()){var e=[],t=function(s){s.forEach((function(s){s.getVisible()&&(s.getSource&&s.getSource()instanceof o["default"]?e.unshift(s.getSource()):s.getLayers&&t(s.getLayers()))}))};return t(this.getMap().getLayers()),e}return this.sources_||[]}setSources(e){this.sources_=!!e&&(e instanceof Array?e||!1:[e])}getClosestFeature(e){var t,s,i,r,n=this.snapDistance_+1;if(this.getSources().forEach((function(o){var a=o.getClosestFeatureToCoordinate(e.coordinate);if(a&&a.getGeometry().splitAt){var h=a.getGeometry().getClosestPoint(e.coordinate),c=new u.A([e.coordinate,h]),l=c.getLength()/e.frameState.viewState.resolution;lthis.snapDistance_)return!1;var o=this.getNearestCoord(i,s.getGeometry().getCoordinates()),a=this.getMap().getPixelFromCoordinate(o);return(0,_.of)(e.pixel,a)1){var n=[];for(i=0;i{s.d(t,{A:()=>v});var i=s(29276),r=s(953),n=s(54602),o=s(13628),a=s(82986),h=s(44294),c=s(86717),l=s(50071),d=s(21409),u=s(86936),_=s(34142),g=s(70915),f=s(11854),p=s(16452),y=class extends d.A{constructor(e){e=e||{},super({handleDownEvent:function(e){return t.handleDownEvent_(e)},handleDragEvent:function(e){return this.handleDragEvent_(e)},handleMoveEvent:function(e){return this.handleMoveEvent_(e)},handleUpEvent:function(e){return this.handleUpEvent_(e)}});var t=this;this.selection_=new l.A,this.handles_=new l.A,this.overlayLayer_=new a["default"]({source:new n["default"]({features:this.handles_,useSpatialIndex:!1,wrapX:!1}),name:"Transform overlay",displayInLayerSwitcher:!1,style:function(e){return t.style[(e.get("handle")||"default")+(e.get("constraint")||"")+(e.get("option")||"")]},updateWhileAnimating:!0,updateWhileInteracting:!0}),this.features_=e.features,"function"===typeof e.filter&&(this._filter=e.filter),this.layers_=e.layers?e.layers instanceof Array?e.layers:[e.layers]:null,this._handleEvent=e.condition||function(){return!0},this.addFn_=e.addCondition||function(){return!1},this.setPointRadius(e.pointRadius),this.set("translateFeature",!1!==e.translateFeature),this.set("translate",!1!==e.translate),this.set("translateBBox",!0===e.translateBBox),this.set("stretch",!1!==e.stretch),this.set("scale",!1!==e.scale),this.set("rotate",!1!==e.rotate),this.set("keepAspectRatio",e.keepAspectRatio||function(e){return e.originalEvent.shiftKey}),this.set("modifyCenter",e.modifyCenter||function(e){return e.originalEvent.metaKey||e.originalEvent.ctrlKey}),this.set("noFlip",e.noFlip||!1),this.set("selection",!1!==e.selection),this.set("hitTolerance",e.hitTolerance||0),this.set("enableRotatedTransform",e.enableRotatedTransform||!1),this.set("keepRectangle",e.keepRectangle||!1),this.set("buffer",e.buffer||0),this.on("propertychange",(function(){this.drawSketch_()})),this.setDefaultStyle()}setMap(e){var t=this.getMap();t&&(t.removeLayer(this.overlayLayer_),this.previousCursor_&&p.A.setCursor(t,this.previousCursor_),this.previousCursor_=void 0),super.setMap(e),this.overlayLayer_.setMap(e),null===e&&this.select(null),null!==e&&(this.isTouch=/touch/.test(e.getViewport().className),this.setDefaultStyle())}setActive(e){this.select(null),this.overlayLayer_&&this.overlayLayer_.setVisible(e),super.setActive(e)}setDefaultStyle(e){e=e||{};var t=e.pointStroke||new r.A({color:[255,0,0,1],width:1}),s=e.stroke||new r.A({color:[255,0,0,1],width:1,lineDash:[4,4]}),n=e.fill||new o.A({color:[255,0,0,.01]}),a=e.pointFill||new o.A({color:[255,255,255,.8]}),h=new u.A({fill:a,stroke:t,radius:this.isTouch?12:6,displacement:this.isTouch?[24,-24]:[12,-12],points:15});h.setDisplacement||(h.getAnchor()[0]=this.isTouch?-10:-5);var c=new u.A({fill:a,stroke:t,radius:this.isTouch?16:8,points:4,angle:Math.PI/4}),l=new u.A({fill:a,stroke:t,radius:this.isTouch?12:6,points:4,angle:Math.PI/4});function d(e,t,s){return[new i["default"]({image:e,stroke:t,fill:s})]}this.style={default:d(c,s,n),translate:d(c,t,a),rotate:d(h,t,a),rotate0:d(c,t,a),scale:d(c,t,a),scale1:d(c,t,a),scale2:d(c,t,a),scale3:d(c,t,a),scalev:d(l,t,a),scaleh1:d(l,t,a),scalev2:d(l,t,a),scaleh3:d(l,t,a)},this.drawSketch_()}setStyle(e,t){if(t){this.style[e]=t instanceof Array?t:[t];for(var s=0;s=0&&(this.ispt_&&this.get("translate")||this.get("translateFeature"))&&(t.handle="translate"),t.handle){this.mode_=t.handle,this.opt_=t.option,this.constraint_=t.constraint;var i=this.getMap().getView().getRotation();this.coordinate_=s.get("handle")?s.getGeometry().getCoordinates():e.coordinate,this.pixel_=this.getMap().getCoordinateFromPixel(this.coordinate_),this.geoms_=[],this.rotatedGeoms_=[];for(var r,n=(0,g.S5)(),o=(0,g.S5)(),a=0;r=this.selection_.item(a);a++)if(this.geoms_.push(r.getGeometry().clone()),n=(0,g.X$)(n,r.getGeometry().getExtent()),this.get("enableRotatedTransform")&&0!==i){var h=this.getGeometryRotateToZero_(r,!0);this.rotatedGeoms_.push(h),o=(0,g.X$)(o,h.getExtent())}if(this.extent_=(0,_.VY)(n).getCoordinates()[0],this.get("enableRotatedTransform")&&0!==i&&(this.rotatedExtent_=(0,_.VY)(o).getCoordinates()[0]),"rotate"===this.mode_){this.center_=this.getCenter()||(0,g.q1)(n);var c=e.map.getTargetElement();p.A.setCursor(c,this.Cursors.rotate0),this.previousCursor_=c.style.cursor}else this.center_=(0,g.q1)(n);return this.angle_=Math.atan2(this.center_[1]-e.coordinate[1],this.center_[0]-e.coordinate[0]),this.dispatchEvent({type:this.mode_+"start",feature:this.selection_.item(0),features:this.selection_,pixel:e.pixel,coordinate:e.coordinate}),!0}if(this.get("selection")){if(s){this.addFn_(e)||this.selection_.clear();var l=this.selection_.getArray().indexOf(s);l<0?this.selection_.push(s):this.selection_.removeAt(l)}else this.selection_.clear();return this.ispt_=1===this.selection_.getLength()&&"Point"==this.selection_.item(0).getGeometry().getType(),this.iscircle_=1===this.selection_.getLength()&&"Circle"==this.selection_.item(0).getGeometry().getType(),this.drawSketch_(),this.watchFeatures_(),this.dispatchEvent({type:"select",feature:s,features:this.selection_,pixel:e.pixel,coordinate:e.coordinate}),!1}}}getCenter(){return this.get("center")}setCenter(e){return this.set("center",e)}handleDragEvent_(e){if(this._handleEvent(e,this.features_)){var t,s,i,r,n=this.getMap().getView().getRotation(),o=[this.coordinate_[0],this.coordinate_[1]],a=[e.coordinate[0],e.coordinate[1]];switch(this.isUpdating_=!0,this.mode_){case"rotate":var c=Math.atan2(this.center_[1]-a[1],this.center_[0]-a[0]);if(!this.ispt)for(t=0,i;i=this.selection_.item(t);t++)r=this.geoms_[t].clone(),r.rotate(c-this.angle_,this.center_),"Circle"==r.getType()&&r.setCenterAndRadius(r.getCenter(),r.getRadius()),i.setGeometry(r);this.drawSketch_(!0),this.dispatchEvent({type:"rotating",feature:this.selection_.item(0),features:this.selection_,angle:c-this.angle_,pixel:e.pixel,coordinate:e.coordinate});break;case"translate":var l=a[0]-o[0],d=a[1]-o[1];for(t=0,i;i=this.selection_.item(t);t++)i.getGeometry().translate(l,d);this.handles_.forEach((function(e){e.getGeometry().translate(l,d)})),this.coordinate_=e.coordinate,this.dispatchEvent({type:"translating",feature:this.selection_.item(0),features:this.selection_,delta:[l,d],pixel:e.pixel,coordinate:e.coordinate});break;case"scale":var u=this.center_;if(this.get("modifyCenter")(e)){var _=this.extent_;this.get("enableRotatedTransform")&&0!==n&&(_=this.rotatedExtent_),u=_[(Number(this.opt_)+2)%4]}var g=1==this.geoms_.length&&this._isRectangle(this.geoms_[0]),f=this.constraint_,p=this.opt_,y=this.coordinate_,v=e.coordinate;if(this.get("enableRotatedTransform")&&0!==n){var m=new h["default"](this.coordinate_);m.rotate(-1*n,u),y=m.getCoordinates();var C=new h["default"](e.coordinate);C.rotate(-1*n,u),v=C.getCoordinates()}var x=(v[0]-u[0])/(y[0]-u[0]),w=(v[1]-u[1])/(y[1]-u[1]),E=[v[0]-y[0],v[1]-y[1]];if(this.get("enableRotatedTransform")&&0!==n){var k=new h["default"](u);k.rotate(-1*n,this.getMap().getView().getCenter()),u=k.getCoordinates()}for(this.get("noFlip")&&(x<0&&(x=-x),w<0&&(w=-w)),this.constraint_?"h"==this.constraint_?x=1:w=1:this.get("keepAspectRatio")(e)&&(x=w=Math.min(x,w)),t=0,i;i=this.selection_.item(t);t++)r=0!==n&&this.get("enableRotatedTransform")?this.rotatedGeoms_[t].clone():this.geoms_[t].clone(),r.applyTransform(function(e,t,i){if(i<2)return t;if(g){var n=[[6],[0,8],[2],[4]],o=[e[0],e[1]],a=[e[2],e[3]],h=[e[4],e[5]],c=[e[6],e[7]],l=[e[8],e[9]];if(f){var d=p%2===0?this._countVector(o,a):this._countVector(c,o),_=this._projectVectorOnVector(E,d),y=p+1{s.d(t,{A:()=>h});var i=s(50071),r=s(6292),n=s(54602),o=s(11854);(function(){var e=n["default"].prototype.clear;n["default"].prototype.clear=function(t){this.dispatchEvent({type:"clearstart"}),e.call(this,t),this.dispatchEvent({type:"clearend"})}})();var a=class extends r.Ay{constructor(e){e=e||{},super({handleEvent:function(){return!0}}),this._layers=e.layers,this._undoStack=new i.A,this._redoStack=new i.A,this._undo=[],this._redo=[],this._undoStack.on("add",function(e){void 0===e.element.level?(e.element.level=this._level,e.element.level||(e.element.view={center:this.getMap().getView().getCenter(),zoom:this.getMap().getView().getZoom()},this._undo.push(e.element))):e.element.level||this._undo.push(this._redo.shift()),e.element.level||this.dispatchEvent({type:"stack:add",action:e.element}),this._reduce()}.bind(this)),this._undoStack.on("remove",function(e){e.element.level||(this._doShift?this._undo.shift():this._undo.length&&this._redo.push(this._undo.pop()),this._doClear||this.dispatchEvent({type:"stack:remove",action:e.element,shift:this._doShift}))}.bind(this)),this._block=0,this._level=0,this._doShift=!1,this._record=!0,this._defs={}}define(e,t,s){this._defs[e]={undo:t,redo:s}}length(e){return"redo"===e?this._redo.length:this._undo.length}setMaxLength(e){e=parseInt(e),e&&e<0&&(e=0),this.set("maxLength",e),this._reduce()}size(e){return"redo"===e?this._redoStack.getLength():this._undoStack.getLength()}setMaxSize(e){e=parseInt(e),e&&e<0&&(e=0),this.set("maxSize",e),this._reduce()}_reduce(){if(this.get("maxLength"))while(this.length()>this.get("maxLength"))this.shift();if(this.get("maxSize"))while(this.length()>1&&this.size()>this.get("maxSize"))this.shift()}getStack(e){return"redo"===e?this._redo:this._undo}push(e,t,s){return this._defs[e]?(this._undoStack.push({type:e,name:s,custom:!0,prop:t}),!0):(console.warn('[UndoRedoInteraction]: "'+e+'" is not defined.'),!1)}shift(){this._doShift=!0;var e=this._undoStack.removeAt(0);if(this._doShift=!1,"blockstart"===e.type){e=this._undoStack.item(0);while(this._undoStack.getLength()&&e.level>0)this._undoStack.removeAt(0),e=this._undoStack.item(0)}}setActive(e){super.setActive(e),this._record=e}setMap(e){this._mapListener&&this._mapListener.forEach((function(e){(0,o.e)(e)})),this._mapListener=[],super.setMap(e),e&&(this._mapListener.push(e.on("undoblockstart",this.blockStart.bind(this))),this._mapListener.push(e.on("undoblockend",this.blockEnd.bind(this)))),this._watchSources(),this._watchInteractions()}_watchSources(){var e=this.getMap();this._sourceListener&&this._sourceListener.forEach((function(e){(0,o.e)(e)})),this._sourceListener=[];var t=this;function s(e,i){return i||(i=[]),e.forEach((function(e){e.getSource&&e.getSource()instanceof n["default"]?(!t._layers||t._layers.indexOf(e)>=0)&&i.push(e):e.getLayers&&s(e.getLayers(),i)})),i}if(e){var i=s(e.getLayers());i.forEach(function(e){var t=e.getSource();this._sourceListener.push(t.on(["addfeature","removefeature"],this._onAddRemove.bind(this))),this._sourceListener.push(t.on("clearstart",function(){this.blockStart("clear")}.bind(this))),this._sourceListener.push(t.on("clearend",this.blockEnd.bind(this)))}.bind(this)),this._sourceListener.push(e.getLayers().on(["add","remove"],this._watchSources.bind(this)))}}_watchInteractions(){var e=this.getMap();this._interactionListener&&this._interactionListener.forEach((function(e){(0,o.e)(e)})),this._interactionListener=[],e&&(e.getInteractions().forEach(function(e){this._interactionListener.push(e.on(["setattributestart","modifystart","rotatestart","translatestart","scalestart","deletestart","deleteend","beforesplit","aftersplit"],this._onInteraction.bind(this)))}.bind(this)),this._interactionListener.push(e.getInteractions().on(["add","remove"],this._watchInteractions.bind(this))))}_onAddRemove(e){this._record&&(this._redoStack.clear(),this._redo.length=0,this._undoStack.push({type:e.type,source:e.target,feature:e.feature}))}_onInteraction(e){var t=this._onInteraction[e.type];t&&t.call(this,e)}blockStart(e){this._redoStack.clear(),this._redo.length=0,this._undoStack.push({type:"blockstart",name:e}),this._level++}blockEnd(){this._undoStack.push({type:"blockend"}),this._level--}_handleDo(e,t){if(this.getActive()){if(this._record=!1,e.custom)this._defs[e.type]?t?this._defs[e.type].undo(e.prop):this._defs[e.type].redo(e.prop):console.warn('[UndoRedoInteraction]: "'+e.type+'" is not defined.');else switch(e.type){case"addfeature":t?e.source.removeFeature(e.feature):e.source.addFeature(e.feature);break;case"removefeature":t?e.source.addFeature(e.feature):e.source.removeFeature(e.feature);break;case"changegeometry":var s=e.feature.getGeometry();e.feature.setGeometry(e.oldGeom),e.oldGeom=s;break;case"changeattribute":var i=e.newProperties,r=e.oldProperties;for(var n in r)void 0===r?e.feature.unset(n):e.feature.set(n,r[n]);e.oldProperties=i,e.newProperties=r;break;case"blockstart":this._block+=t?-1:1;break;case"blockend":this._block+=t?1:-1;break;default:console.warn('[UndoRedoInteraction]: "'+e.type+'" is not defined.')}this._block<0&&(this._block=0),this._block&&(t?this.undo():this.redo()),this._record=!0,this.dispatchEvent({type:t?"undo":"redo",action:e})}}undo(){var e=this._undoStack.item(this._undoStack.getLength()-1);e&&(this._redoStack.push(e),this._undoStack.pop(),this._handleDo(e,!0))}redo(){var e=this._redoStack.item(this._redoStack.getLength()-1);e&&(this._undoStack.push(e),this._redoStack.pop(),this._handleDo(e,!1))}clear(){this._doClear=!0,this._undo.length=this._redo.length=0,this._undoStack.clear(),this._redoStack.clear(),this._doClear=!1,this.dispatchEvent({type:"stack:clear"})}hasUndo(){return this._undoStack.getLength()}hasRedo(){return this._redoStack.getLength()}};a.prototype._onInteraction.setattributestart=function(e){this.blockStart(e.target.get("name")||"setattribute");var t=Object.assign({},e.properties);e.features.forEach(function(e){var s={};for(var i in t)s[i]=e.get(i);this._undoStack.push({type:"changeattribute",feature:e,newProperties:t,oldProperties:s})}.bind(this)),this.blockEnd()},a.prototype._onInteraction.rotatestart=a.prototype._onInteraction.translatestart=a.prototype._onInteraction.scalestart=a.prototype._onInteraction.modifystart=function(e){this.blockStart(e.type.replace(/start$/,"")),e.features.forEach(function(e){this._undoStack.push({type:"changegeometry",feature:e,oldGeom:e.getGeometry().clone()})}.bind(this)),this.blockEnd()},a.prototype._onInteraction.beforesplit=function(){var e=this._undoStack.getLength();e>2&&"blockend"===this._undoStack.item(e-1).type&&"changegeometry"===this._undoStack.item(e-2).type?this._undoStack.pop():this.blockStart("split")},a.prototype._onInteraction.deletestart=function(){this.blockStart("delete")},a.prototype._onInteraction.aftersplit=a.prototype._onInteraction.deleteend=a.prototype.blockEnd;const h=a},25937:(e,t,s)=>{s.d(t,{A:()=>h});var i,r=s(29276),n=s(27733),o=s(953),a=s(13628);(function(){var e=[255,255,255,1],t=[0,153,255,1],s=3,h=[new r["default"]({stroke:new o.A({color:e,width:s+2})}),new r["default"]({image:new n.A({radius:2*s,fill:new a.A({color:t}),stroke:new o.A({color:e,width:s/2})}),stroke:new o.A({color:t,width:s}),fill:new a.A({color:[255,255,255,.5]})})];i=function(e){if(!0===e)return h;e=e||{};var t=new a.A({color:e.fillColor||"rgba(255,255,255,0.4)"}),s=new o.A({color:e.color||"#3399CC",width:1.25}),i=new r["default"]({image:new n.A({fill:t,stroke:s,radius:5}),fill:t,stroke:s});return[i]}})();const h=i},94974:(e,t,s)=>{s.d(t,{A:()=>h});var i=s(62096),r=s(70915),n=s(92497),o=s(87622);class a extends i.Ay{constructor(e,t,s){super(),void 0!==s&&void 0===t?this.setFlatCoordinates(s,e):(t=t||0,this.setCenterAndRadius(e,t,s))}clone(){const e=new a(this.flatCoordinates.slice(),void 0,this.layout);return e.applyProperties(this),e}closestPointXY(e,t,s,i){const r=this.flatCoordinates,n=e-r[0],o=t-r[1],a=n*n+o*o;if(a=t[0]||(e[1]<=t[1]&&e[3]>=t[1]||(0,r.sB)(e,this.intersectsCoordinate.bind(this)))}return!1}setCenter(e){const t=this.stride,s=this.flatCoordinates[t]-this.flatCoordinates[0],i=e.slice();i[t]=i[0]+s;for(let r=1;r{s.d(t,{Ay:()=>H});var i=s(94974),r=s(1685),n=s(6837),o=s(86717),a=s(34338),h=s(82187),c=s(11217),l=s(10277),d=s(73445),u=s(96702),_=s(30503),g=s(2871),f=s(44294),p=s(21409),y=s(34142),v=s(82986),m=s(54602),C=s(74238),x=s(58704),w=s(70915),E=s(61597),k=s(29276),A=s(6933),S=s(89718),P=s(62096);const b={DRAWSTART:"drawstart",DRAWEND:"drawend",DRAWABORT:"drawabort"};class T extends r.Ay{constructor(e,t){super(e),this.feature=t}}function M(e,t){const s=[];for(let i=0;i=s?e[t-s]:e[t]}function G(e,t,s){let i,r;to){const t=U(e,i),s=U(e,r);return F(t,s)}let a=0;if(ie.startIndex?ie.startIndex&&(i-=s.length)),h=i,a=d)}const c=t.targets[a];let l=c.ring;if(t.targetIndex===a&&l){const e=U(c.coordinates,h),r=s.getPixelFromCoordinate(e);(0,A.Io)(r,t.startPx)>i&&(l=!1)}if(l){const e=c.coordinates,t=e.length,s=c.startIndex,i=h;if(s=s?i-=s:i<0&&(i+=s);let n=i+1;n>=s&&(n-=s);const o=e[i],a=o[0],h=o[1],c=e[n],l=c[0]-a,d=c[1]-h;return[a+l*r,h+d*r]}class q extends p.A{constructor(e){const t=e;t.stopDown||(t.stopDown=C.W8),super(t),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=e.source?e.source:null,this.features_=e.features?e.features:null,this.snapTolerance_=e.snapTolerance?e.snapTolerance:12,this.type_=e.type,this.mode_=K(this.type_),this.stopClick_=!!e.stopClick,this.minPoints_=e.minPoints?e.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:e.maxPoints?e.maxPoints:1/0,this.finishCondition_=e.finishCondition?e.finishCondition:C.rT,this.geometryLayout_=e.geometryLayout?e.geometryLayout:"XY";let s=e.geometryFunction;if(!s){const e=this.mode_;if("Circle"===e)s=function(e,t,s){const r=t||new i.A([NaN,NaN]),n=(0,S.fromUserCoordinate)(e[0],s),o=(0,A.hG)(n,(0,S.fromUserCoordinate)(e[e.length-1],s));r.setCenterAndRadius(n,Math.sqrt(o),this.geometryLayout_);const a=(0,S.getUserProjection)();return a&&r.transform(s,a),r};else{let t;"Point"===e?t=f["default"]:"LineString"===e?t=c.A:"Polygon"===e&&(t=y.Ay),s=function(s,i,r){return i?"Polygon"===e?s[0].length?i.setCoordinates([s[0].concat([s[0][0]])],this.geometryLayout_):i.setCoordinates([],this.geometryLayout_):i.setCoordinates(s,this.geometryLayout_):i=new t(s,this.geometryLayout_),i}}}this.geometryFunction_=s,this.dragVertexDelay_=void 0!==e.dragVertexDelay?e.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=e.clickTolerance?e.clickTolerance*e.clickTolerance:36,this.overlay_=new v["default"]({source:new m["default"]({useSpatialIndex:!1,wrapX:!!e.wrapX&&e.wrapX}),style:e.style?e.style:X(),updateWhileInteracting:!0}),this.geometryName_=e.geometryName,this.condition_=e.condition?e.condition:x.TS,this.freehandCondition_,e.freehand?this.freehandCondition_=x.Gk:this.freehandCondition_=e.freehandCondition?e.freehandCondition:x.Kg,this.traceCondition_,this.setTrace(e.trace||!1),this.traceState_={active:!1},this.traceSource_=e.traceSource||e.source||null,this.addChangeListener(h.A.ACTIVE,this.updateState_)}setTrace(e){let t;t=e?!0===e?x.Gk:e:x.Zm,this.traceCondition_=t}setMap(e){super.setMap(e),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(e){e.originalEvent.type===n.A.CONTEXTMENU&&e.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(e);let t=e.type===d.A.POINTERMOVE,s=!0;if(!this.freehand_&&this.lastDragTime_&&e.type===d.A.POINTERDRAG){const s=Date.now();s-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,t=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&e.type===d.A.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e.coordinate),s=!1):this.freehand_&&e.type===d.A.POINTERDOWN?s=!1:t&&this.getPointerCount()<2?(s=e.type===d.A.POINTERMOVE,s&&this.freehand_?(this.handlePointerMove_(e),this.shouldHandle_&&e.originalEvent.preventDefault()):("mouse"===e.originalEvent.pointerType||e.type===d.A.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e)):e.type===d.A.DBLCLICK&&(s=!1),super.handleEvent(e)&&s}handleDownEvent(e){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=e.pixel,this.finishCoordinate_||this.startDrawing_(e.coordinate),!0):this.condition_(e)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout((()=>{this.handlePointerMove_(new l.A(d.A.POINTERMOVE,e.map,e.originalEvent,!1,e.frameState))}),this.dragVertexDelay_),this.downPx_=e.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(e){if(!this.traceSource_||!this.traceCondition_(e))return;if(this.traceState_.active)return void this.deactivateTrace_();const t=this.getMap(),s=t.getCoordinateFromPixel([e.pixel[0]-this.snapTolerance_,e.pixel[1]+this.snapTolerance_]),i=t.getCoordinateFromPixel([e.pixel[0]+this.snapTolerance_,e.pixel[1]-this.snapTolerance_]),r=(0,w.Tr)([s,i]),n=this.traceSource_.getFeaturesInExtent(r);if(0===n.length)return;const o=M(e.coordinate,n);o.length&&(this.traceState_={active:!0,startPx:e.pixel.slice(),targets:o,targetIndex:-1})}addOrRemoveTracedCoordinates_(e,t){const s=e.startIndex<=e.endIndex,i=e.startIndex<=t;s===i?s&&t>e.endIndex||!s&&te.endIndex)&&this.removeTracedCoordinates_(t,e.endIndex):(this.removeTracedCoordinates_(e.startIndex,e.endIndex),this.addTracedCoordinates_(e,e.startIndex,t))}removeTracedCoordinates_(e,t){if(e===t)return;let s=0;if(e0&&this.removeLastPoints_(s)}addTracedCoordinates_(e,t,s){if(t===s)return;const i=[];if(t=n;--t)i.push(L(e.coordinates,t))}i.length&&this.appendCoordinates(i)}updateTrace_(e){const t=this.traceState_;if(!t.active)return;if(-1===t.targetIndex&&(0,A.Io)(t.startPx,e.pixel)this.squaredClickTolerance_:n<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(e),this.modifyDrawing_(e.coordinate)):this.createOrUpdateSketchPoint_(e.coordinate.slice())}atFinish_(e,t){let s=!1;if(this.sketchFeature_){let i=!1,r=[this.finishCoordinate_];const n=this.mode_;if("Point"===n)s=!0;else if("Circle"===n)s=2===this.sketchCoords_.length;else if("LineString"===n)i=!t&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===n){const e=this.sketchCoords_;i=e[0].length>this.minPoints_,r=[e[0][0],e[0][e[0].length-2]],r=t?[e[0][0]]:[e[0][0],e[0][e[0].length-2]]}if(i){const t=this.getMap();for(let i=0,n=r.length;i=this.maxPoints_&&(this.freehand_?r.pop():i=!0),r.push(e.slice()),this.geometryFunction_(r,t,s)):"Polygon"===n&&(r=this.sketchCoords_[0],r.length>=this.maxPoints_&&(this.freehand_?r.pop():i=!0),r.push(e.slice()),i&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,t,s)),this.createOrUpdateSketchPoint_(e.slice()),this.updateSketchFeatures_(),i?this.finishDrawing():this.sketchFeature_}removeLastPoints_(e){if(!this.sketchFeature_)return;const t=this.sketchFeature_.getGeometry(),s=this.getMap().getView().getProjection(),i=this.mode_;for(let r=0;r=2){this.finishCoordinate_=e[e.length-2].slice();const t=this.finishCoordinate_.slice();e[e.length-1]=t,this.createOrUpdateSketchPoint_(t)}this.geometryFunction_(e,t,s),"Polygon"===t.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(t)}else if("Polygon"===i){e=this.sketchCoords_[0],e.splice(-2,1);const i=this.sketchLine_.getGeometry();if(e.length>=2){const t=e[e.length-2].slice();e[e.length-1]=t,this.createOrUpdateSketchPoint_(t)}i.setCoordinates(e),this.geometryFunction_(this.sketchCoords_,t,s)}if(1===e.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const e=this.abortDrawing_();if(!e)return null;let t=this.sketchCoords_;const s=e.getGeometry(),i=this.getMap().getView().getProjection();return"LineString"===this.mode_?(t.pop(),this.geometryFunction_(t,s,i)):"Polygon"===this.mode_&&(t[0].pop(),this.geometryFunction_(t,s,i),t=s.getCoordinates()),"MultiPoint"===this.type_?e.setGeometry(new _.A([t])):"MultiLineString"===this.type_?e.setGeometry(new u.A([t])):"MultiPolygon"===this.type_&&e.setGeometry(new g.A([t])),this.dispatchEvent(new T(b.DRAWEND,e)),this.features_&&this.features_.push(e),this.source_&&this.source_.addFeature(e),e}abortDrawing_(){this.finishCoordinate_=null;const e=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),e}abortDrawing(){const e=this.abortDrawing_();e&&this.dispatchEvent(new T(b.DRAWABORT,e))}appendCoordinates(e){const t=this.mode_,s=!this.sketchFeature_;let i;if(s&&this.startDrawing_(e[0]),"LineString"===t||"Circle"===t)i=this.sketchCoords_;else{if("Polygon"!==t)return;i=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}s&&i.shift(),i.pop();for(let n=0;n{s.d(t,{A:()=>k});var i=s(1685),r=s(86717),n=s(73445),o=s(44294),a=s(21409),h=s(82986),c=s(54602),l=s(58704),d=s(70915),u=s(6933),_=s(29276),g=s(34142),f=s(89718);const p={EXTENTCHANGED:"extentchanged"};class y extends i.Ay{constructor(e){super(p.EXTENTCHANGED),this.extent=e}}class v extends a.A{constructor(e){e=e||{},super(e),this.on,this.once,this.un,this.condition_=e.condition?e.condition:l.Gk,this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new h["default"]({source:new c["default"]({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:m(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new h["default"]({source:new c["default"]({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:C(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}snapToVertex_(e,t){const s=t.getCoordinateFromPixelInternal(e),i=function(e,t){return(0,u.$x)(s,e)-(0,u.$x)(s,t)},r=this.getExtentInternal();if(r){const n=E(r);n.sort(i);const o=n[0];let a=(0,u.sG)(s,o);const h=t.getPixelFromCoordinateInternal(a);if((0,u.Io)(e,h)<=this.pixelTolerance_){const e=t.getPixelFromCoordinateInternal(o[0]),s=t.getPixelFromCoordinateInternal(o[1]),i=(0,u.hG)(h,e),r=(0,u.hG)(h,s),n=Math.sqrt(Math.min(i,r));return this.snappedToVertex_=n<=this.pixelTolerance_,this.snappedToVertex_&&(a=i>r?o[1]:o[0]),a}}return null}handlePointerMove_(e){const t=e.pixel,s=e.map;let i=this.snapToVertex_(t,s);i||(i=s.getCoordinateFromPixelInternal(t)),this.createOrUpdatePointerFeature_(i)}createOrUpdateExtentFeature_(e){let t=this.extentFeature_;return t?e?t.setGeometry((0,g.VY)(e)):t.setGeometry(void 0):(t=e?new r["default"]((0,g.VY)(e)):new r["default"]({}),this.extentFeature_=t,this.extentOverlay_.getSource().addFeature(t)),t}createOrUpdatePointerFeature_(e){let t=this.vertexFeature_;if(t){const s=t.getGeometry();s.setCoordinates(e)}else t=new r["default"](new o["default"](e)),this.vertexFeature_=t,this.vertexOverlay_.getSource().addFeature(t);return t}handleEvent(e){return!e.originalEvent||!this.condition_(e)||(e.type!=n.A.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),super.handleEvent(e),!1)}handleDownEvent(e){const t=e.pixel,s=e.map,i=this.getExtentInternal();let r=this.snapToVertex_(t,s);const n=function(e){let t=null,s=null;return e[0]==i[0]?t=i[2]:e[0]==i[2]&&(t=i[0]),e[1]==i[1]?s=i[3]:e[1]==i[3]&&(s=i[1]),null!==t&&null!==s?[t,s]:null};if(r&&i){const e=r[0]==i[0]||r[0]==i[2]?r[0]:null,t=r[1]==i[1]||r[1]==i[3]?r[1]:null;null!==e&&null!==t?this.pointerHandler_=x(n(r)):null!==e?this.pointerHandler_=w(n([e,i[1]]),n([e,i[3]])):null!==t&&(this.pointerHandler_=w(n([i[0],t]),n([i[2],t])))}else r=s.getCoordinateFromPixelInternal(t),this.setExtent([r[0],r[1],r[0],r[1]]),this.pointerHandler_=x(r);return!0}handleDragEvent(e){if(this.pointerHandler_){const t=e.coordinate;this.setExtent(this.pointerHandler_(t)),this.createOrUpdatePointerFeature_(t)}}handleUpEvent(e){this.pointerHandler_=null;const t=this.getExtentInternal();return t&&0!==(0,d.UG)(t)||this.setExtent(null),!1}setMap(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),super.setMap(e)}getExtent(){return(0,f.toUserExtent)(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(e){this.extent_=e||null,this.createOrUpdateExtentFeature_(e),this.dispatchEvent(new y(this.extent_))}}function m(){const e=(0,_.createEditingStyle)();return function(t,s){return e["Polygon"]}}function C(){const e=(0,_.createEditingStyle)();return function(t,s){return e["Point"]}}function x(e){return function(t){return(0,d.Tr)([e,t])}}function w(e,t){return e[0]==t[0]?function(s){return(0,d.Tr)([e,[s[0],t[1]]])}:e[1]==t[1]?function(s){return(0,d.Tr)([e,[t[0],s[1]]])}:null}function E(e){return[[[e[0],e[1]],[e[0],e[3]]],[[e[0],e[3]],[e[2],e[3]]],[[e[2],e[3]],[e[2],e[1]]],[[e[2],e[1]],[e[0],e[1]]]]}const k=v},78983:(e,t,s)=>{s.d(t,{A:()=>x});var i=s(32135),r=s(6837),n=s(21409),o=s(95902),a=s(88280),h=s(74238),c=s(1685);const l={SNAP:"snap"};class d extends c.Ay{constructor(e,t){super(e),this.vertex=t.vertex,this.vertexPixel=t.vertexPixel,this.feature=t.feature,this.segment=t.segment}}var u=s(70915),_=s(6933),g=s(34142),f=s(89718),p=s(4087),y=s(9438);function v(e){return e.feature?e.feature:e.element?e.element:null}const m=[];class C extends n.A{constructor(e){e=e||{};const t=e;t.handleDownEvent||(t.handleDownEvent=h.rT),t.stopDown||(t.stopDown=h.W8),super(t),this.on,this.once,this.un,this.source_=e.source?e.source:null,this.vertex_=void 0===e.vertex||e.vertex,this.edge_=void 0===e.edge||e.edge,this.features_=e.features?e.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.rBush_=new o.A,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(e,t){t=void 0===t||t;const s=(0,p.v6)(e),i=e.getGeometry();if(i){const t=this.GEOMETRY_SEGMENTERS_[i.getType()];if(t){this.indexedFeaturesExtents_[s]=i.getExtent((0,u.S5)());const r=[];if(t(r,i),1===r.length)this.rBush_.insert((0,u.Tr)(r[0]),{feature:e,segment:r[0]});else if(r.length>1){const t=r.map((e=>(0,u.Tr)(e))),s=r.map((t=>({feature:e,segment:t})));this.rBush_.load(t,s)}}}t&&(this.featureChangeListenerKeys_[s]=(0,y.KT)(e,r.A.CHANGE,this.handleFeatureChange_,this))}getFeatures_(){let e;return this.features_?e=this.features_:this.source_&&(e=this.source_.getFeatures()),e}handleEvent(e){const t=this.snapTo(e.pixel,e.coordinate,e.map);return t&&(e.coordinate=t.vertex.slice(0,2),e.pixel=t.vertexPixel,this.dispatchEvent(new d(l.SNAP,{vertex:e.coordinate,vertexPixel:e.pixel,feature:t.feature,segment:t.segment}))),super.handleEvent(e)}handleFeatureAdd_(e){const t=v(e);t&&this.addFeature(t)}handleFeatureRemove_(e){const t=v(e);t&&this.removeFeature(t)}handleFeatureChange_(e){const t=e.target;if(this.handlingDownUpSequence){const e=(0,p.v6)(t);e in this.pendingFeatures_||(this.pendingFeatures_[e]=t)}else this.updateFeature_(t)}handleUpEvent(e){const t=Object.values(this.pendingFeatures_);return t.length&&(t.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(e,t){const s=void 0===t||t,i=(0,p.v6)(e),r=this.indexedFeaturesExtents_[i];if(r){const t=this.rBush_,s=[];t.forEachInExtent(r,(function(t){e===t.feature&&s.push(t)}));for(let e=s.length-1;e>=0;--e)t.remove(s[e])}s&&((0,y.JH)(this.featureChangeListenerKeys_[i]),delete this.featureChangeListenerKeys_[i])}setMap(e){const t=this.getMap(),s=this.featuresListenerKeys_,r=this.getFeatures_();t&&(s.forEach(y.JH),s.length=0,this.rBush_.clear(),Object.values(this.featureChangeListenerKeys_).forEach(y.JH),this.featureChangeListenerKeys_={}),super.setMap(e),e&&(this.features_?s.push((0,y.KT)(this.features_,i.A.ADD,this.handleFeatureAdd_,this),(0,y.KT)(this.features_,i.A.REMOVE,this.handleFeatureRemove_,this)):this.source_&&s.push((0,y.KT)(this.source_,a.A.ADDFEATURE,this.handleFeatureAdd_,this),(0,y.KT)(this.source_,a.A.REMOVEFEATURE,this.handleFeatureRemove_,this)),r.forEach((e=>this.addFeature(e))))}snapTo(e,t,s){const i=s.getView().getProjection(),r=(0,f.fromUserCoordinate)(t,i),n=(0,f.toUserExtent)((0,u.r)((0,u.Tr)([r]),s.getView().getResolution()*this.pixelTolerance_),i),o=this.rBush_.getInExtent(n),a=o.length;if(0===a)return null;let h,c,l=1/0,d=null;const g=this.pixelTolerance_*this.pixelTolerance_,p=()=>{if(h){const t=s.getPixelFromCoordinate(h),i=(0,_.hG)(e,t);if(i<=g)return{vertex:h,vertexPixel:[Math.round(t[0]),Math.round(t[1])],feature:c,segment:d}}return null};if(this.vertex_){for(let t=0;t{const s=(0,f.fromUserCoordinate)(t,i),n=(0,_.hG)(r,s);n{e.push([t])}))}segmentMultiPolygonGeometry_(e,t){const s=t.getCoordinates();for(let i=0,r=s.length;i} coords\r\n * @param {number} offset\r\n * @return {Array} resulting coord\r\n * @see http://stackoverflow.com/a/11970006/796832\r\n * @see https://drive.google.com/viewerng/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxqa2dhZGdldHN0b3JlfGd4OjQ4MzI5M2Y0MjNmNzI2MjY\r\n */\r\nvar ol_coordinate_offsetCoords = function (coords, offset) {\r\n var path = [];\r\n var N = coords.length-1;\r\n var max = N;\r\n var mi, mi1, li, li1, ri, ri1, si, si1, Xi1, Yi1;\r\n var p0, p1, p2;\r\n var isClosed = ol_coordinate_equal(coords[0],coords[N]);\r\n if (!isClosed) {\r\n p0 = coords[0];\r\n p1 = coords[1];\r\n p2 = [\r\n p0[0] + (p1[1] - p0[1]) / ol_coordinate_dist2d(p0,p1) *offset,\r\n p0[1] - (p1[0] - p0[0]) / ol_coordinate_dist2d(p0,p1) *offset\r\n ];\r\n path.push(p2);\r\n coords.push(coords[N])\r\n N++;\r\n max--;\r\n }\r\n for (var i = 0; i < max; i++) {\r\n p0 = coords[i];\r\n p1 = coords[(i+1) % N];\r\n p2 = coords[(i+2) % N];\r\n\r\n mi = (p1[1] - p0[1])/(p1[0] - p0[0]);\r\n mi1 = (p2[1] - p1[1])/(p2[0] - p1[0]);\r\n // Prevent alignements\r\n if (Math.abs(mi-mi1) > 1e-10) {\r\n li = Math.sqrt((p1[0] - p0[0])*(p1[0] - p0[0])+(p1[1] - p0[1])*(p1[1] - p0[1]));\r\n li1 = Math.sqrt((p2[0] - p1[0])*(p2[0] - p1[0])+(p2[1] - p1[1])*(p2[1] - p1[1]));\r\n ri = p0[0] + offset*(p1[1] - p0[1])/li;\r\n ri1 = p1[0] + offset*(p2[1] - p1[1])/li1;\r\n si = p0[1] - offset*(p1[0] - p0[0])/li;\r\n si1 = p1[1] - offset*(p2[0] - p1[0])/li1;\r\n Xi1 = (mi1*ri1-mi*ri+si-si1) / (mi1-mi);\r\n Yi1 = (mi*mi1*(ri1-ri)+mi1*si-mi*si1) / (mi1-mi);\r\n\r\n // Correction for vertical lines\r\n if(p1[0] - p0[0] == 0) {\r\n Xi1 = p1[0] + offset*(p1[1] - p0[1])/Math.abs(p1[1] - p0[1]);\r\n Yi1 = mi1*Xi1 - mi1*ri1 + si1;\r\n }\r\n if (p2[0] - p1[0] == 0 ) {\r\n Xi1 = p2[0] + offset*(p2[1] - p1[1])/Math.abs(p2[1] - p1[1]);\r\n Yi1 = mi*Xi1 - mi*ri + si;\r\n }\r\n\r\n path.push([Xi1, Yi1]);\r\n }\r\n }\r\n if (isClosed) {\r\n path.push(path[0]);\r\n } else {\r\n coords.pop();\r\n p0 = coords[coords.length-1];\r\n p1 = coords[coords.length-2];\r\n p2 = [\r\n p0[0] - (p1[1] - p0[1]) / ol_coordinate_dist2d(p0,p1) *offset,\r\n p0[1] + (p1[0] - p0[0]) / ol_coordinate_dist2d(p0,p1) *offset\r\n ];\r\n path.push(p2);\r\n }\r\n return path;\r\n}\r\n\r\n/** Find the segment a point belongs to\r\n * @param {ol.Coordinate} pt\r\n * @param {Array} coords\r\n * @return {} the index (-1 if not found) and the segment\r\n */\r\nvar ol_coordinate_findSegment = function (pt, coords) {\r\n for (var i=0; i} geom\r\n * @param {number} y the y to split\r\n * @param {number} n contour index\r\n * @return {Array>}\r\n */\r\nvar ol_coordinate_splitH = function (geom, y, n) {\r\n var x, abs;\r\n var list = [];\r\n for (var i=0; iy || geom[i][1]>=y && geom[i+1][1]} d1\r\n * @param {Arrar} d2\r\n */\r\nvar ol_coordinate_getIntersectionPoint = function (d1, d2) {\r\n var d1x = d1[1][0] - d1[0][0];\r\n var d1y = d1[1][1] - d1[0][1];\r\n var d2x = d2[1][0] - d2[0][0];\r\n var d2y = d2[1][1] - d2[0][1];\r\n var det = d1x * d2y - d1y * d2x;\r\n if (det != 0) {\r\n var k = (d1x * d1[0][1] - d1x * d2[0][1] - d1y * d1[0][0] + d1y * d2[0][0]) / det;\r\n return [d2[0][0] + k*d2x, d2[0][1] + k*d2y];\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport { ol_coordinate_getIntersectionPoint }\r\n\r\nvar ol_extent_intersection;\r\n\r\n(function() {\r\n// Split at x\r\nfunction splitX(pts, x) {\r\n var pt;\r\n for (let i=pts.length-1; i>0; i--) {\r\n if ((pts[i][0]>x && pts[i-1][0]x)) {\r\n pt = [ x, (x - pts[i][0]) / (pts[i-1][0]-pts[i][0]) * (pts[i-1][1]-pts[i][1]) + pts[i][1]];\r\n pts.splice(i, 0, pt);\r\n }\r\n }\r\n}\r\n// Split at y\r\nfunction splitY(pts, y) {\r\n var pt;\r\n for (let i=pts.length-1; i>0; i--) {\r\n if ((pts[i][1]>y && pts[i-1][1]y)) {\r\n pt = [ (y - pts[i][1]) / (pts[i-1][1]-pts[i][1]) * (pts[i-1][0]-pts[i][0]) + pts[i][0], y];\r\n pts.splice(i, 0, pt);\r\n }\r\n }\r\n}\r\n\r\n/** Fast polygon intersection with an extent (used for area calculation)\r\n * @param {ol_extent_Extent} extent\r\n * @param {ol_geom_Polygon|ol_geom_MultiPolygon} polygon\r\n * @returns {ol_geom_Polygon|ol_geom_MultiPolygon|null} return null if not a polygon geometry\r\n */\r\nol_extent_intersection = function(extent, polygon) {\r\n var poly = (polygon.getType() === 'Polygon');\r\n if (!poly && polygon.getType() !== 'MultiPolygon') return null;\r\n var geom = polygon.getCoordinates();\r\n if (poly) geom = [geom];\r\n geom.forEach(function(g) {\r\n g.forEach(function(c) {\r\n splitX(c, extent[0]);\r\n splitX(c, extent[2]);\r\n splitY(c, extent[1]);\r\n splitY(c, extent[3]);\r\n });\r\n })\r\n // Snap geom to the extent \r\n geom.forEach(function(g) {\r\n g.forEach(function(c) {\r\n c.forEach(function(p) {\r\n if (p[0]extent[2]) p[0] = extent[2];\r\n if (p[1]extent[3]) p[1] = extent[3];\r\n })\r\n })\r\n })\r\n if (poly) {\r\n return new ol_geom_Polygon(geom[0]);\r\n } else {\r\n return new ol_geom_MultiPolygon(geom);\r\n }\r\n};\r\n})();\r\n\r\nexport { ol_extent_intersection }\r\nexport { ol_extent_intersection as extentIntersection }\r\n\r\n/** Add points along a segment\r\n * @param {ol_Coordinate} p1 \r\n * @param {ol_Coordinate} p2 \r\n * @param {number} d \r\n * @param {boolean} start include starting point, default true\r\n * @returns {Array}\r\n */\r\nvar ol_coordinate_sampleAt = function(p1, p2, d, start) {\r\n var pts = [];\r\n if (start!==false) pts.push(p1);\r\n var dl = ol_coordinate_dist2d(p1,p2);\r\n if (dl) {\r\n var nb = Math.round(dl/d);\r\n if (nb>1) {\r\n var dx = (p2[0]-p1[0]) / nb;\r\n var dy = (p2[1]-p1[1]) / nb;\r\n for (var i=1; i r) {\r\n hasout = true;\r\n l.push([\r\n c[0] + r / d * (p[0]-c[0]),\r\n c[1] + r / d * (p[1]-c[1])\r\n ]);\r\n } else {\r\n // hasin = true;\r\n l.push(p);\r\n }\r\n });\r\n })\r\n });\r\n if (!hasout) return geom;\r\n if (geom.getType() === 'Polygon') {\r\n return new ol_geom_Polygon(result[0]);\r\n } else {\r\n return new ol_geom_MultiPolygon(result);\r\n }\r\n }\r\n }\r\n } else {\r\n console.warn('[ol/geom/Circle~intersection] Unsupported geometry type: '+geom.getType());\r\n }\r\n return geom;\r\n};\r\n","import {ol_coordinate_equal} from \"./GeomUtils.js\";\r\nimport ol_geom_LineString from \"ol/geom/LineString.js\";\r\n\r\n/** Split a lineString by a point or a list of points\r\n *\tNB: points must be on the line, use getClosestPoint() to get one\r\n * @param {ol.Coordinate | Array} pt points to split the line\r\n * @param {Number} tol distance tolerance for 2 points to be equal\r\n */\r\nol_geom_LineString.prototype.splitAt = function(pt, tol) {\r\n var i;\r\n if (!pt) return [this];\r\n if (!tol) tol = 1e-10;\r\n // Test if list of points\r\n if (pt.length && pt[0].length) {\r\n var result = [this];\r\n for (i=0; i split\r\n if (split) {\r\n ci.push(pt);\r\n c.push (new ol_geom_LineString(ci));\r\n ci = [pt];\r\n }\r\n }\r\n ci.push(c0[i+1]);\r\n }\r\n if (ci.length>1) c.push (new ol_geom_LineString(ci));\r\n if (c.length) return c;\r\n else return [this];\r\n}\r\n\r\n// import('ol-ext/geom/LineStringSplitAt')","/*\tCopyright (c) 2018 Jean-Marc VIGLINO, \r\n\treleased under the CeCILL-B license (French BSD license)\r\n\t(http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_interaction_Select from 'ol/interaction/Select.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\n\r\n/** A Select interaction to delete features on click.\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires deletestart\r\n * @fires deleteend\r\n * @param {Object} options ol.interaction.Select options\r\n */\r\nvar ol_interaction_Delete = class olinteractionDelete extends ol_interaction_Select {\r\n constructor(options) {\r\n super(options);\r\n this.on('select', function (e) {\r\n this.getFeatures().clear();\r\n this.delete(e.selected);\r\n }.bind(this));\r\n }\r\n /** Get vector source of the map\r\n * @return {Array}\r\n */\r\n _getSources(layers) {\r\n if (!this.getMap())\r\n return [];\r\n if (!layers)\r\n layers = this.getMap().getLayers();\r\n var sources = [];\r\n layers.forEach(function (l) {\r\n // LayerGroup\r\n if (l.getLayers) {\r\n sources = sources.concat(this._getSources(l.getLayers()));\r\n } else {\r\n if (l.getSource && l.getSource() instanceof ol_source_Vector) {\r\n sources.push(l.getSource());\r\n }\r\n }\r\n }.bind(this));\r\n return sources;\r\n }\r\n /** Delete features: remove the features from the map (from all layers in the map)\r\n * @param {ol.Collection|Array} features The features to delete\r\n * @api\r\n */\r\n delete(features) {\r\n if (features && (features.length || features.getLength())) {\r\n this.dispatchEvent({ type: 'deletestart', features: features });\r\n var delFeatures = [];\r\n // Get the sources concerned\r\n this._getSources().forEach(function (source) {\r\n try {\r\n // Try to delete features in the source\r\n features.forEach(function (f) {\r\n source.removeFeature(f);\r\n delFeatures.push(f);\r\n });\r\n } catch (e) { /* ok */ }\r\n });\r\n this.dispatchEvent({ type: 'deleteend', features: delFeatures });\r\n }\r\n }\r\n}\r\n\r\nexport default ol_interaction_Delete","/*\tCopyright (c) 2017 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport ol_geom_MultiPolygon from 'ol/geom/MultiPolygon.js'\r\nimport ol_geom_LinearRing from 'ol/geom/LinearRing.js'\r\nimport ol_interaction_Draw from 'ol/interaction/Draw.js'\r\nimport ol_interaction_Select from 'ol/interaction/Select.js'\r\n\r\n/** Interaction to draw holes in a polygon.\r\n * It fires a drawstart, drawend event when drawing the hole\r\n * and a modifystart, modifyend event before and after inserting the hole in the feature geometry.\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires drawstart\r\n * @fires drawend\r\n * @fires modifystart\r\n * @fires modifyend\r\n * @param {olx.interaction.DrawHoleOptions} options extend olx.interaction.DrawOptions\r\n * \t@param {Array | function | undefined} options.layers A list of layers from which polygons should be selected. Alternatively, a filter function can be provided. default: all visible layers\r\n * \t@param {Array | ol.Collection | function | undefined} options.featureFilter An array or a collection of features the interaction applies on or a function that takes a feature and a layer and returns true if the feature is a candidate\r\n * \t@param { ol.style.Style | Array | StyleFunction | undefined }\tStyle for the selected features, default: default edit style\r\n * \t@param {function | undefined}\toptions.geometryFunction Draw interaction geometry function to customize the hole\r\n */\r\nvar ol_interaction_DrawHole = class olinteractionDrawHole extends ol_interaction_Draw {\r\n constructor(options) {\r\n options = options || {}\r\n // Geometry function that test points inside the current selection\r\n var _geometryFn = function(coordinates, geometry) {\r\n var coord = coordinates[0].pop()\r\n if (!this.getPolygon() || this.getPolygon().intersectsCoordinate(coord)) {\r\n this.lastOKCoord = [coord[0], coord[1]]\r\n }\r\n coordinates[0].push([this.lastOKCoord[0], this.lastOKCoord[1]])\r\n \r\n if (geometry) {\r\n geometry.setCoordinates([coordinates[0].concat([coordinates[0][0]])])\r\n } else {\r\n geometry = new ol_geom_Polygon(coordinates)\r\n }\r\n return geometry\r\n }\r\n var geomFn = options.geometryFunction\r\n if (geomFn) {\r\n options.geometryFunction = function (c, g, p) {\r\n g = _geometryFn.bind(this)(c, g)\r\n return geomFn.bind(this)(c, g, p)\r\n }\r\n } else {\r\n options.geometryFunction = _geometryFn\r\n }\r\n\r\n // Create draw interaction\r\n options.type = 'Polygon';\r\n super(options)\r\n \r\n // Select interaction for the current feature\r\n this._select = new ol_interaction_Select({ style: options.style })\r\n this._select.setActive(false)\r\n\r\n // Layer filter function\r\n if (options.layers) {\r\n if (typeof (options.layers) === 'function') {\r\n this.layers_ = options.layers\r\n } else if (options.layers.indexOf) {\r\n this.layers_ = function (l) {\r\n return (options.layers.indexOf(l) >= 0)\r\n }\r\n }\r\n }\r\n\r\n // Features to apply on \r\n if (typeof (options.featureFilter) === 'function') {\r\n this._features = options.featureFilter\r\n } else if (options.featureFilter) {\r\n var features = options.featureFilter\r\n this._features = function (f) {\r\n if (features.indexOf) {\r\n return !!features[features.indexOf(f)]\r\n } else {\r\n return !!features.item(features.getArray().indexOf(f))\r\n }\r\n }\r\n } else {\r\n this._features = function () { return true }\r\n }\r\n\r\n // Start drawing if inside a feature\r\n this.on('drawstart', this._startDrawing.bind(this))\r\n // End drawing add the hole to the current Polygon\r\n this.on('drawend', this._finishDrawing.bind(this))\r\n }\r\n\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n // Remove previous selection\r\n if (this.getMap()) this.getMap().removeInteraction(this._select)\r\n // Add new one\r\n if (map) map.addInteraction(this._select)\r\n super.setMap.call(this, map)\r\n }\r\n /**\r\n * Activate/deactivate the interaction\r\n * @param {boolean}\r\n * @api stable\r\n */\r\n setActive(b) {\r\n if (this._select) this._select.getFeatures().clear()\r\n super.setActive.call(this, b)\r\n }\r\n /**\r\n * Remove last point of the feature currently being drawn\r\n * (test if points to remove before).\r\n */\r\n removeLastPoint() {\r\n if (this._feature && this._feature.getGeometry().getCoordinates()[0].length > 2) {\r\n super.removeLastPoint.call(this)\r\n }\r\n }\r\n /**\r\n * Get the current polygon to hole\r\n * @return {ol.Feature}\r\n */\r\n getPolygon() {\r\n return this._polygon\r\n // return this._select.getFeatures().item(0).getGeometry();\r\n }\r\n /**\r\n * Get current feature to add a hole and start drawing\r\n * @param {ol_interaction_Draw.Event} e\r\n * @private\r\n */\r\n _startDrawing(e) {\r\n var map = this.getMap()\r\n this._feature = e.feature\r\n var coord = e.feature.getGeometry().getCoordinates()[0][0]\r\n this._current = null\r\n // Check object under the pointer\r\n map.forEachFeatureAtPixel(\r\n map.getPixelFromCoordinate(coord),\r\n function (feature, layer) {\r\n // Not yet found?\r\n if (!this._current && this._features(feature, layer)) {\r\n var poly = feature.getGeometry()\r\n if (poly.getType() === \"Polygon\"\r\n && poly.intersectsCoordinate(coord)) {\r\n this._polygonIndex = false\r\n this._polygon = poly\r\n this._current = feature\r\n } else if (poly.getType() === \"MultiPolygon\"\r\n && poly.intersectsCoordinate(coord)) {\r\n for (var i = 0, p; p = poly.getPolygon(i); i++) {\r\n if (p.intersectsCoordinate(coord)) {\r\n this._polygonIndex = i\r\n this._polygon = p\r\n this._current = feature\r\n break\r\n }\r\n }\r\n }\r\n }\r\n }.bind(this), {\r\n layerFilter: this.layers_\r\n }\r\n )\r\n this._select.getFeatures().clear()\r\n if (!this._current) {\r\n this.setActive(false)\r\n this.setActive(true)\r\n } else {\r\n this._select.getFeatures().push(this._current)\r\n }\r\n }\r\n /**\r\n * Stop drawing and add the sketch feature to the target feature.\r\n * @param {ol_interaction_Draw.Event} e\r\n * @private\r\n */\r\n _finishDrawing(e) {\r\n // The feature is the hole\r\n e.hole = e.feature\r\n // Get the current feature\r\n e.feature = this._select.getFeatures().item(0)\r\n this.dispatchEvent({ type: 'modifystart', features: [this._current] })\r\n // Create the hole\r\n var c = e.hole.getGeometry().getCoordinates()[0]\r\n if (c.length > 3) {\r\n if (this._polygonIndex !== false) {\r\n var geom = e.feature.getGeometry()\r\n var newGeom = new ol_geom_MultiPolygon([])\r\n for (var i = 0, pi; pi = geom.getPolygon(i); i++) {\r\n if (i === this._polygonIndex) {\r\n pi.appendLinearRing(new ol_geom_LinearRing(c))\r\n newGeom.appendPolygon(pi)\r\n } else {\r\n newGeom.appendPolygon(pi)\r\n }\r\n }\r\n e.feature.setGeometry(newGeom)\r\n } else {\r\n this.getPolygon().appendLinearRing(new ol_geom_LinearRing(c))\r\n }\r\n }\r\n this.dispatchEvent({ type: 'modifyend', features: [this._current] })\r\n // reset\r\n this._feature = null\r\n this._select.getFeatures().clear()\r\n }\r\n /**\r\n * Function that is called when a geometry's coordinates are updated.\r\n * @param {Array} coordinates\r\n * @param {ol_geom_Polygon} geometry\r\n * @return {ol_geom_Polygon}\r\n * @private\r\n */\r\n _geometryFn(coordinates, geometry) {\r\n var coord = coordinates[0].pop()\r\n if (!this.getPolygon() || this.getPolygon().intersectsCoordinate(coord)) {\r\n this.lastOKCoord = [coord[0], coord[1]]\r\n }\r\n coordinates[0].push([this.lastOKCoord[0], this.lastOKCoord[1]])\r\n\r\n if (geometry) {\r\n geometry.setCoordinates([coordinates[0].concat([coordinates[0][0]])])\r\n } else {\r\n geometry = new ol_geom_Polygon(coordinates)\r\n }\r\n return geometry\r\n }\r\n}\r\n\r\nexport default ol_interaction_DrawHole\r\n","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport ol_style_Style_defaultStyle from '../style/defaultStyle.js'\r\nimport ol_Collection from 'ol/Collection.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_geom_Circle from 'ol/geom/Circle.js'\r\nimport {fromCircle as ol_geom_Polygon_fromCircle} from 'ol/geom/Polygon.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\n\r\n/** Interaction rotate\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires drawstart, drawing, drawend, drawcancel\r\n * @param {olx.interaction.TransformOptions} options\r\n * @param {Array} options.source Destination source for the drawn features\r\n * @param {ol.Collection} options.features Destination collection for the drawn features \r\n * @param {ol.style.Style | Array. | ol.style.StyleFunction | undefined} options.style style for the sketch\r\n * @param {integer} options.sides number of sides, default 0 = circle\r\n * @param { ol.events.ConditionType | undefined } options.condition A function that takes an ol.MapBrowserEvent and returns a boolean that event should be handled. By default module:ol/events/condition.always.\r\n * @param { ol.events.ConditionType | undefined } options.squareCondition A function that takes an ol.MapBrowserEvent and returns a boolean to draw square features. Default test shift key\r\n * @param { ol.events.ConditionType | undefined } options.centerCondition A function that takes an ol.MapBrowserEvent and returns a boolean to draw centered features. Default check Ctrl key\r\n * @param { bool } options.canRotate Allow rotation when centered + square, default: true\r\n * @param { string } [options.geometryName=geometry] \r\n * @param { number } options.clickTolerance click tolerance on touch devices, default: 6\r\n * @param { number } options.maxCircleCoordinates Maximum number of point on a circle, default: 100\r\n */\r\nvar ol_interaction_DrawRegular = class olinteractionDrawRegular extends ol_interaction_Interaction {\r\n constructor(options) {\r\n options = options || {}\r\n \r\n super({\r\n handleEvent: function(e) { return self.handleEvent_(e) }\r\n })\r\n\r\n var self = this;\r\n\r\n this.squaredClickTolerance_ = options.clickTolerance ? options.clickTolerance * options.clickTolerance : 36\r\n this.maxCircleCoordinates_ = options.maxCircleCoordinates || 100\r\n\r\n // Collection of feature to transform \r\n this.features_ = options.features\r\n // List of layers to transform \r\n this.source_ = options.source\r\n // Square condition\r\n this.conditionFn_ = options.condition\r\n // Square condition\r\n this.squareFn_ = options.squareCondition\r\n // Centered condition\r\n this.centeredFn_ = options.centerCondition\r\n // Allow rotation when centered + square\r\n this.canRotate_ = (options.canRotate !== false)\r\n // Specify custom geometry name\r\n this.geometryName_ = options.geometryName || 'geometry'\r\n\r\n // Number of sides (default=0: circle)\r\n this.setSides(options.sides)\r\n\r\n // Style\r\n var defaultStyle = ol_style_Style_defaultStyle(true)\r\n\r\n // Create a new overlay layer for the sketch\r\n this.sketch_ = new ol_Collection()\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n features: this.sketch_,\r\n useSpatialIndex: false\r\n }),\r\n name: 'DrawRegular overlay',\r\n displayInLayerSwitcher: false,\r\n style: options.style || defaultStyle\r\n })\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this.getMap()) this.getMap().removeLayer(this.overlayLayer_)\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n }\r\n /**\r\n * Activate/deactivate the interaction\r\n * @param {boolean}\r\n * @api stable\r\n */\r\n setActive(b) {\r\n this.reset()\r\n super.setActive(b)\r\n }\r\n /**\r\n * Reset the interaction\r\n * @api stable\r\n */\r\n reset() {\r\n if (this.overlayLayer_) this.overlayLayer_.getSource().clear()\r\n this.started_ = false\r\n }\r\n /**\r\n * Set the number of sides.\r\n * @param {int} number of sides.\r\n * @api stable\r\n */\r\n setSides(nb) {\r\n nb = parseInt(nb)\r\n this.sides_ = nb > 2 ? nb : 0\r\n }\r\n /**\r\n * Allow rotation when centered + square\r\n * @param {bool}\r\n * @api stable\r\n */\r\n canRotate(b) {\r\n if (b === true || b === false)\r\n this.canRotate_ = b\r\n return this.canRotate_\r\n }\r\n /**\r\n * Get the number of sides.\r\n * @return {int} number of sides.\r\n * @api stable\r\n */\r\n getSides() {\r\n return this.sides_\r\n }\r\n /** Get geom of the current drawing\r\n * @return {ol.geom.Polygon | ol.geom.Point}\r\n */\r\n getGeom_() {\r\n this.overlayLayer_.getSource().clear()\r\n if (!this.center_)\r\n return false\r\n\r\n var g\r\n if (this.coord_) {\r\n var center = this.center_\r\n var coord = this.coord_\r\n\r\n // Specific case: circle\r\n var d, dmax, r, circle, centerPx\r\n if (!this.sides_ && this.square_ && !this.centered_) {\r\n center = [(coord[0] + center[0]) / 2, (coord[1] + center[1]) / 2]\r\n d = [coord[0] - center[0], coord[1] - center[1]]\r\n r = Math.sqrt(d[0] * d[0] + d[1] * d[1])\r\n circle = new ol_geom_Circle(center, r, 'XY')\r\n // Optimize points on the circle\r\n centerPx = this.getMap().getPixelFromCoordinate(center)\r\n dmax = Math.max(100, Math.abs(centerPx[0] - this.coordPx_[0]), Math.abs(centerPx[1] - this.coordPx_[1]))\r\n dmax = Math.min(this.maxCircleCoordinates_, Math.round(dmax / 3))\r\n return ol_geom_Polygon_fromCircle(circle, dmax, 0)\r\n } else {\r\n var hasrotation = this.canRotate_ && this.centered_ && this.square_\r\n d = [coord[0] - center[0], coord[1] - center[1]]\r\n if (this.square_ && !hasrotation) {\r\n //var d = [coord[0] - center[0], coord[1] - center[1]];\r\n var dm = Math.max(Math.abs(d[0]), Math.abs(d[1]))\r\n coord = [\r\n center[0] + (d[0] > 0 ? dm : -dm),\r\n center[1] + (d[1] > 0 ? dm : -dm)\r\n ]\r\n }\r\n r = Math.sqrt(d[0] * d[0] + d[1] * d[1])\r\n if (r > 0) {\r\n circle = new ol_geom_Circle(center, r, 'XY')\r\n var a\r\n if (hasrotation)\r\n a = Math.atan2(d[1], d[0])\r\n else\r\n a = this.startAngle[this.sides_] || this.startAngle['default']\r\n\r\n if (this.sides_) {\r\n g = ol_geom_Polygon_fromCircle(circle, this.sides_, a)\r\n } else {\r\n // Optimize points on the circle\r\n centerPx = this.getMap().getPixelFromCoordinate(this.center_)\r\n dmax = Math.max(100, Math.abs(centerPx[0] - this.coordPx_[0]), Math.abs(centerPx[1] - this.coordPx_[1]))\r\n dmax = Math.min(this.maxCircleCoordinates_, Math.round(dmax / (this.centered_ ? 3 : 5)))\r\n g = ol_geom_Polygon_fromCircle(circle, dmax, 0)\r\n }\r\n\r\n if (hasrotation)\r\n return g\r\n\r\n // Scale polygon to fit extent\r\n var ext = g.getExtent()\r\n if (!this.centered_)\r\n center = this.center_\r\n else\r\n center = [2 * this.center_[0] - this.coord_[0], 2 * this.center_[1] - this.coord_[1]]\r\n var scx = (center[0] - coord[0]) / (ext[0] - ext[2])\r\n var scy = (center[1] - coord[1]) / (ext[1] - ext[3])\r\n if (this.square_) {\r\n var sc = Math.min(Math.abs(scx), Math.abs(scy))\r\n scx = Math.sign(scx) * sc\r\n scy = Math.sign(scy) * sc\r\n }\r\n var t = [center[0] - ext[0] * scx, center[1] - ext[1] * scy]\r\n\r\n g.applyTransform(function (g1, g2, dim) {\r\n for (var i = 0; i < g1.length; i += dim) {\r\n g2[i] = g1[i] * scx + t[0]\r\n g2[i + 1] = g1[i + 1] * scy + t[1]\r\n }\r\n return g2\r\n })\r\n return g\r\n }\r\n }\r\n }\r\n\r\n // No geom => return a point\r\n return new ol_geom_Point(this.center_)\r\n }\r\n /** Draw sketch\r\n * @return {ol.Feature} The feature being drawn.\r\n */\r\n drawSketch_(evt) {\r\n this.overlayLayer_.getSource().clear()\r\n if (evt) {\r\n this.square_ = this.squareFn_ ? this.squareFn_(evt) : evt.originalEvent.shiftKey\r\n this.centered_ = this.centeredFn_ ? this.centeredFn_(evt) : evt.originalEvent.metaKey || evt.originalEvent.ctrlKey\r\n var g = this.getGeom_()\r\n if (g) {\r\n var f = this.feature_\r\n\r\n //f.setGeometry (g);\r\n if (g.getType() === 'Polygon')\r\n f.getGeometry().setCoordinates(g.getCoordinates())\r\n this.overlayLayer_.getSource().addFeature(f)\r\n if (this.coord_\r\n && this.square_\r\n && ((this.canRotate_ && this.centered_ && this.coord_) || (!this.sides_ && !this.centered_))) {\r\n this.overlayLayer_.getSource().addFeature(new ol_Feature(new ol_geom_LineString([this.center_, this.coord_])))\r\n }\r\n return f\r\n }\r\n }\r\n }\r\n /** Draw sketch (Point)\r\n */\r\n drawPoint_(pt, noclear) {\r\n if (!noclear)\r\n this.overlayLayer_.getSource().clear()\r\n this.overlayLayer_.getSource().addFeature(new ol_Feature(new ol_geom_Point(pt)))\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n */\r\n handleEvent_(evt) {\r\n var dx, dy\r\n // Event date time\r\n this._eventTime = new Date()\r\n switch (evt.type) {\r\n case \"pointerdown\": {\r\n if (this.conditionFn_ && !this.conditionFn_(evt))\r\n break\r\n this.downPx_ = evt.pixel\r\n this.start_(evt)\r\n // Test long touch\r\n var dt = 500\r\n this._longTouch = false\r\n setTimeout(function () {\r\n this._longTouch = (new Date() - this._eventTime > .9 * dt)\r\n if (this._longTouch)\r\n this.handleMoveEvent_(evt)\r\n }.bind(this), dt)\r\n break\r\n }\r\n case \"pointerup\": {\r\n // Started and fisrt move\r\n if (this.started_ && this.coord_) {\r\n dx = this.downPx_[0] - evt.pixel[0]\r\n dy = this.downPx_[1] - evt.pixel[1]\r\n if (dx * dx + dy * dy <= this.squaredClickTolerance_) {\r\n // The pointer has moved\r\n if (this.lastEvent == \"pointermove\" || this.lastEvent == \"keydown\") {\r\n this.end_(evt)\r\n }\r\n\r\n // On touch device there is no move event : terminate = click on the same point\r\n else {\r\n dx = this.upPx_[0] - evt.pixel[0]\r\n dy = this.upPx_[1] - evt.pixel[1]\r\n if (dx * dx + dy * dy <= this.squaredClickTolerance_) {\r\n this.end_(evt)\r\n } else {\r\n this.handleMoveEvent_(evt)\r\n this.drawPoint_(evt.coordinate, true)\r\n }\r\n }\r\n }\r\n }\r\n this.upPx_ = evt.pixel\r\n break\r\n }\r\n case \"pointerdrag\": {\r\n if (this.started_) {\r\n var centerPx = this.getMap().getPixelFromCoordinate(this.center_)\r\n dx = centerPx[0] - evt.pixel[0]\r\n dy = centerPx[1] - evt.pixel[1]\r\n if (dx * dx + dy * dy <= this.squaredClickTolerance_) {\r\n this.reset()\r\n }\r\n }\r\n return !this._longTouch\r\n // break;\r\n }\r\n case \"pointermove\": {\r\n if (this.started_) {\r\n dx = this.downPx_[0] - evt.pixel[0]\r\n dy = this.downPx_[1] - evt.pixel[1]\r\n if (dx * dx + dy * dy > this.squaredClickTolerance_) {\r\n this.handleMoveEvent_(evt)\r\n this.lastEvent = evt.type\r\n }\r\n }\r\n break\r\n }\r\n default: {\r\n this.lastEvent = evt.type\r\n // Prevent zoom in on dblclick\r\n if (this.started_ && evt.type === 'dblclick') {\r\n //evt.stopPropagation();\r\n return false\r\n }\r\n break\r\n }\r\n }\r\n return true\r\n }\r\n /** Stop drawing.\r\n */\r\n finishDrawing() {\r\n if (this.started_ && this.coord_) {\r\n this.end_({ pixel: this.upPx_, coordinate: this.coord_ })\r\n }\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n */\r\n handleMoveEvent_(evt) {\r\n if (this.started_) {\r\n this.coord_ = evt.coordinate\r\n this.coordPx_ = evt.pixel\r\n var f = this.drawSketch_(evt)\r\n this.dispatchEvent({\r\n type: 'drawing',\r\n feature: f,\r\n pixel: evt.pixel,\r\n startCoordinate: this.center_,\r\n coordinate: evt.coordinate,\r\n square: this.square_,\r\n centered: this.centered_\r\n })\r\n } else {\r\n this.drawPoint_(evt.coordinate)\r\n }\r\n }\r\n /** Start an new draw\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `false` to stop the drag sequence.\r\n */\r\n start_(evt) {\r\n if (!this.started_) {\r\n this.started_ = true\r\n this.center_ = evt.coordinate\r\n this.coord_ = null\r\n var f = this.feature_ = new ol_Feature({})\r\n f.setGeometryName(this.geometryName_ || 'geometry')\r\n f.setGeometry(new ol_geom_Polygon([[evt.coordinate, evt.coordinate, evt.coordinate]]))\r\n this.drawSketch_(evt)\r\n this.dispatchEvent({ type: 'drawstart', feature: f, pixel: evt.pixel, coordinate: evt.coordinate })\r\n } else {\r\n this.coord_ = evt.coordinate\r\n }\r\n }\r\n /** End drawing\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `false` to stop the drag sequence.\r\n */\r\n end_(evt) {\r\n this.coord_ = evt.coordinate\r\n this.started_ = false\r\n if (this.coord_ && (this.center_[0] !== this.coord_[0] || this.center_[1] !== this.coord_[1])) {\r\n var f = this.feature_\r\n\r\n f.setGeometry(this.getGeom_())\r\n if (this.source_)\r\n this.source_.addFeature(f)\r\n else if (this.features_)\r\n this.features_.push(f)\r\n this.dispatchEvent({ type: 'drawend', feature: f, pixel: evt.pixel, coordinate: evt.coordinate, square: this.square_, centered: this.centered_ })\r\n } else {\r\n this.dispatchEvent({ type: 'drawcancel', feature: null, pixel: evt.pixel, coordinate: evt.coordinate, square: this.square_, centered: this.centered_ })\r\n }\r\n\r\n this.center_ = this.coord_ = null\r\n this.drawSketch_()\r\n }\r\n}\r\n\r\n/** Default start angle array for each sides\r\n*/\r\nol_interaction_DrawRegular.prototype.startAngle = {\r\n 'default':Math.PI/2,\r\n 3: -Math.PI/2,\r\n 4: Math.PI/4\r\n};\r\n\r\nexport default ol_interaction_DrawRegular\r\n","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\nimport ol_style_Circle from 'ol/style/Circle.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport {ol_coordinate_dist2d, ol_coordinate_equal} from \"../geom/GeomUtils.js\";\r\nimport {boundingExtent as ol_extent_boundingExtent} from 'ol/extent.js'\r\nimport {buffer as ol_extent_buffer} from 'ol/extent.js'\r\nimport {altKeyOnly as ol_events_condition_altKeyOnly} from 'ol/events/condition.js'\r\nimport {primaryAction as ol_events_condition_primaryAction} from 'ol/events/condition.js'\r\nimport {always as ol_events_condition_always} from 'ol/events/condition.js'\r\n\r\nimport ol_ext_element from '../util/element.js'\r\nimport '../geom/LineStringSplitAt.js'\r\n\r\n/** Interaction for modifying feature geometries. Similar to the core ol/interaction/Modify.\r\n * The interaction is more suitable to use to handle feature modification: only features concerned \r\n * by the modification are passed to the events (instead of all feature with ol/interaction/Modify)\r\n * - the modifystart event is fired before the feature is modified (no points still inserted)\r\n * - the modifyend event is fired after the modification\r\n * - it fires a modifying event\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires modifystart\r\n * @fires modifying\r\n * @fires modifyend\r\n * @fires select\r\n * @param {*} options\r\n *\t@param {ol.source.Vector} options.source a source to modify (configured with useSpatialIndex set to true)\r\n *\t@param {ol.source.Vector|Array} options.sources a list of source to modify (configured with useSpatialIndex set to true)\r\n * @param {ol.Collection.} options.features collection of feature to modify\r\n * @param {integer} options.pixelTolerance Pixel tolerance for considering the pointer close enough to a segment or vertex for editing. Default is 10.\r\n * @param {function|undefined} options.filter a filter that takes a feature and return true if it can be modified, default always true.\r\n * @param {ol.style.Style | Array | undefined} options.style Style for the sketch features.\r\n * @param {ol.EventsConditionType | undefined} options.condition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether that event will be considered to add or move a vertex to the sketch. Default is ol.events.condition.primaryAction.\r\n * @param {ol.EventsConditionType | undefined} options.deleteCondition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether that event should be handled. By default, ol.events.condition.singleClick with ol.events.condition.altKeyOnly results in a vertex deletion.\r\n * @param {ol.EventsConditionType | undefined} options.insertVertexCondition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether a new vertex can be added to the sketch features. Default is ol.events.condition.always\r\n * @param {boolean} options.wrapX Wrap the world horizontally on the sketch overlay, default false\r\n */\r\nvar ol_interaction_ModifyFeature = class olinteractionModifyFeature extends ol_interaction_Interaction {\r\n constructor(options) {\r\n options = options || {}\r\n\r\n var dragging, modifying\r\n super({\r\n handleEvent: function (e) {\r\n switch (e.type) {\r\n case 'pointerdown': {\r\n dragging = this.handleDownEvent(e)\r\n modifying = dragging || this._deleteCondition(e)\r\n return !dragging\r\n }\r\n case 'pointerup': {\r\n dragging = false\r\n return this.handleUpEvent(e)\r\n }\r\n case 'pointerdrag': {\r\n if (dragging)\r\n return this.handleDragEvent(e)\r\n else\r\n return true\r\n }\r\n case 'pointermove': {\r\n if (!dragging){\r\n return this.handleMoveEvent(e)\r\n } else {\r\n return false\r\n }\r\n }\r\n case 'singleclick':\r\n case 'click': {\r\n // Prevent click when modifying\r\n return !modifying\r\n }\r\n default: return true\r\n }\r\n }\r\n })\r\n\r\n // Snap distance (in px)\r\n this.snapDistance_ = options.pixelTolerance || 10\r\n // Split tolerance between the calculated intersection and the geometry\r\n this.tolerance_ = 1e-10\r\n // Cursor\r\n this.cursor_ = options.cursor\r\n\r\n // List of source to split\r\n this.sources_ = options.sources ? (options.sources instanceof Array) ? options.sources : [options.sources] : []\r\n if (options.source) {\r\n this.sources_.push(options.source)\r\n }\r\n if (options.features) {\r\n this.sources_.push(new ol_source_Vector({ features: options.features }))\r\n }\r\n // Get all features candidate\r\n this.filterSplit_ = options.filter || function () { return true }\r\n\r\n this._condition = options.condition || ol_events_condition_primaryAction\r\n this._deleteCondition = options.deleteCondition || ol_events_condition_altKeyOnly\r\n this._insertVertexCondition = options.insertVertexCondition || ol_events_condition_always\r\n\r\n // Default style\r\n var sketchStyle = function () {\r\n return [new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 6,\r\n fill: new ol_style_Fill({ color: [0, 153, 255, 1] }),\r\n stroke: new ol_style_Stroke({ color: '#FFF', width: 1.25 })\r\n })\r\n })\r\n ]\r\n }\r\n\r\n // Custom style\r\n if (options.style) {\r\n if (typeof (options.style) === 'function') {\r\n sketchStyle = options.style\r\n } else {\r\n sketchStyle = function () { return options.style }\r\n }\r\n }\r\n\r\n // Create a new overlay for the sketch\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n useSpatialIndex: false\r\n }),\r\n name: 'Modify overlay',\r\n displayInLayerSwitcher: false,\r\n style: sketchStyle,\r\n wrapX: options.wrapX\r\n })\r\n\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this.getMap()) this.getMap().removeLayer(this.overlayLayer_)\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n }\r\n /**\r\n * Activate or deactivate the interaction + remove the sketch.\r\n * @param {boolean} active.\r\n * @api stable\r\n */\r\n setActive(active) {\r\n super.setActive(active)\r\n if (this.overlayLayer_) this.overlayLayer_.getSource().clear()\r\n }\r\n /** Change the filter function\r\n * @param {function|undefined} options.filter a filter that takes a feature and return true if it can be modified, default always true.\r\n */\r\n setFilter(filter) {\r\n if (typeof (filter) === 'function')\r\n this.filterSplit_ = filter\r\n else if (filter === undefined)\r\n this.filterSplit_ = function () { return true }\r\n }\r\n /** Get closest feature at pixel\r\n * @param {ol.Pixel}\r\n * @return {*}\r\n * @private\r\n */\r\n getClosestFeature(e) {\r\n var f, c, d = this.snapDistance_ + 1\r\n for (var i = 0; i < this.sources_.length; i++) {\r\n var source = this.sources_[i]\r\n f = source.getClosestFeatureToCoordinate(e.coordinate)\r\n if (f && this.filterSplit_(f)) {\r\n var ci = f.getGeometry().getClosestPoint(e.coordinate)\r\n var di = ol_coordinate_dist2d(e.coordinate, ci) / e.frameState.viewState.resolution\r\n if (di < d) {\r\n d = di\r\n c = ci\r\n }\r\n break\r\n }\r\n }\r\n if (d > this.snapDistance_) {\r\n if (this.currentFeature)\r\n this.dispatchEvent({ type: 'select', selected: [], deselected: [this.currentFeature] })\r\n this.currentFeature = null\r\n return false\r\n } else {\r\n // Snap to node\r\n var coord = this.getNearestCoord(c, f.getGeometry())\r\n if (coord) {\r\n coord = coord.coord\r\n var p = this.getMap().getPixelFromCoordinate(coord)\r\n if (ol_coordinate_dist2d(e.pixel, p) < this.snapDistance_) {\r\n c = coord\r\n }\r\n //\r\n if (this.currentFeature !== f)\r\n this.dispatchEvent({ type: 'select', selected: [f], deselected: [this.currentFeature] })\r\n this.currentFeature = f\r\n return { source: source, feature: f, coord: c }\r\n }\r\n }\r\n }\r\n /** Get nearest coordinate in a list\r\n * @param {ol.coordinate} pt the point to find nearest\r\n * @param {ol.geom} coords list of coordinates\r\n * @return {*} the nearest point with a coord (projected point), dist (distance to the geom), ring (if Polygon)\r\n */\r\n getNearestCoord(pt, geom) {\r\n var i, l, p, p0, dm\r\n switch (geom.getType()) {\r\n case 'Point': {\r\n return { coord: geom.getCoordinates(), dist: ol_coordinate_dist2d(geom.getCoordinates(), pt) }\r\n }\r\n case 'MultiPoint': {\r\n return this.getNearestCoord(pt, new ol_geom_LineString(geom.getCoordinates()))\r\n }\r\n case 'LineString':\r\n case 'LinearRing': {\r\n var d\r\n dm = Number.MAX_VALUE\r\n var coords = geom.getCoordinates()\r\n for (i = 0; i < coords.length; i++) {\r\n d = ol_coordinate_dist2d(pt, coords[i])\r\n if (d < dm) {\r\n dm = d\r\n p0 = coords[i]\r\n }\r\n }\r\n return { coord: p0, dist: dm }\r\n }\r\n case 'MultiLineString': {\r\n var lstring = geom.getLineStrings()\r\n p0 = false, dm = Number.MAX_VALUE\r\n for (i = 0; l = lstring[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.ring = i\r\n }\r\n }\r\n return p0\r\n }\r\n case 'Polygon': {\r\n var lring = geom.getLinearRings()\r\n p0 = false\r\n dm = Number.MAX_VALUE\r\n for (i = 0; l = lring[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.ring = i\r\n }\r\n }\r\n return p0\r\n }\r\n case 'MultiPolygon': {\r\n var poly = geom.getPolygons()\r\n p0 = false\r\n dm = Number.MAX_VALUE\r\n for (i = 0; l = poly[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.poly = i\r\n }\r\n }\r\n return p0\r\n }\r\n case 'GeometryCollection': {\r\n var g = geom.getGeometries()\r\n p0 = false\r\n dm = Number.MAX_VALUE\r\n for (i = 0; l = g[i]; i++) {\r\n p = this.getNearestCoord(pt, l)\r\n if (p && p.dist < dm) {\r\n p0 = p\r\n dm = p.dist\r\n p0.geom = i\r\n }\r\n }\r\n return p0\r\n }\r\n default: return false\r\n }\r\n }\r\n /** Get arcs concerned by a modification\r\n * @param {ol.geom} geom the geometry concerned\r\n * @param {ol.coordinate} coord pointed coordinates\r\n */\r\n getArcs(geom, coord) {\r\n var arcs = false\r\n var coords, i, s, l, g\r\n switch (geom.getType()) {\r\n case 'Point': {\r\n if (ol_coordinate_equal(coord, geom.getCoordinates())) {\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: [],\r\n coord2: [],\r\n node: true\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiPoint': {\r\n coords = geom.getCoordinates()\r\n for (i = 0; i < coords.length; i++) {\r\n if (ol_coordinate_equal(coord, coords[i])) {\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n index: i,\r\n coord1: [],\r\n coord2: [],\r\n node: true\r\n }\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'LinearRing':\r\n case 'LineString': {\r\n var p = geom.getClosestPoint(coord)\r\n if (ol_coordinate_dist2d(p, coord) < 1.5 * this.tolerance_) {\r\n var split\r\n // Split the line in two\r\n if (geom.getType() === 'LinearRing') {\r\n g = new ol_geom_LineString(geom.getCoordinates())\r\n split = g.splitAt(coord, this.tolerance_)\r\n } else {\r\n split = geom.splitAt(coord, this.tolerance_)\r\n }\r\n // If more than 2\r\n if (split.length > 2) {\r\n coords = split[1].getCoordinates()\r\n for (i = 2; s = split[i]; i++) {\r\n var c = s.getCoordinates()\r\n c.shift()\r\n coords = coords.concat(c)\r\n }\r\n split = [split[0], new ol_geom_LineString(coords)]\r\n }\r\n // Split in two\r\n if (split.length === 2) {\r\n var c0 = split[0].getCoordinates()\r\n var c1 = split[1].getCoordinates()\r\n var nbpt = c0.length + c1.length - 1\r\n c0.pop()\r\n c1.shift()\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: c0,\r\n coord2: c1,\r\n node: (geom.getCoordinates().length === nbpt),\r\n closed: false\r\n }\r\n } else if (split.length === 1) {\r\n s = split[0].getCoordinates()\r\n var start = ol_coordinate_equal(s[0], coord)\r\n var end = ol_coordinate_equal(s[s.length - 1], coord)\r\n // Move first point\r\n if (start) {\r\n s.shift()\r\n if (end)\r\n s.pop()\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: [],\r\n coord2: s,\r\n node: true,\r\n closed: end\r\n }\r\n } else if (end) {\r\n // Move last point\r\n s.pop()\r\n arcs = {\r\n geom: geom,\r\n type: geom.getType(),\r\n coord1: s,\r\n coord2: [],\r\n node: true,\r\n closed: false\r\n }\r\n }\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiLineString': {\r\n var lstring = geom.getLineStrings()\r\n for (i = 0; l = lstring[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.type = geom.getType()\r\n arcs.lstring = i\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'Polygon': {\r\n var lring = geom.getLinearRings()\r\n for (i = 0; l = lring[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.type = geom.getType()\r\n arcs.index = i\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiPolygon': {\r\n var poly = geom.getPolygons()\r\n for (i = 0; l = poly[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.type = geom.getType()\r\n arcs.poly = i\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'GeometryCollection': {\r\n g = geom.getGeometries()\r\n for (i = 0; l = g[i]; i++) {\r\n arcs = this.getArcs(l, coord)\r\n if (arcs) {\r\n arcs.geom = geom\r\n arcs.g = i\r\n arcs.typeg = arcs.type\r\n arcs.type = geom.getType()\r\n break\r\n }\r\n }\r\n break\r\n }\r\n default: {\r\n console.error('ol/interaction/ModifyFeature ' + geom.getType() + ' not supported!')\r\n break\r\n }\r\n }\r\n return arcs\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n */\r\n handleDownEvent(evt) {\r\n if (!this.getActive())\r\n return false\r\n\r\n // Something to move ?\r\n var current = this.getClosestFeature(evt)\r\n\r\n if (current && (this._condition(evt) || this._deleteCondition(evt))) {\r\n var features = []\r\n this.arcs = []\r\n\r\n // Get features concerned\r\n this.sources_.forEach(function (s) {\r\n var extent = ol_extent_buffer(ol_extent_boundingExtent([current.coord]), this.tolerance_)\r\n features = features.concat(features, s.getFeaturesInExtent(extent))\r\n }.bind(this))\r\n\r\n // Get arcs concerned\r\n this._modifiedFeatures = []\r\n features.forEach(function (f) {\r\n var a = this.getArcs(f.getGeometry(), current.coord)\r\n if (a) {\r\n if (this._insertVertexCondition(evt) || a.node) {\r\n a.feature = f\r\n this._modifiedFeatures.push(f)\r\n this.arcs.push(a)\r\n }\r\n }\r\n }.bind(this))\r\n\r\n if (this._modifiedFeatures.length) {\r\n if (this._deleteCondition(evt)) {\r\n return !this._removePoint(current, evt)\r\n } else {\r\n this.dispatchEvent({\r\n type: 'modifystart',\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n this.handleDragEvent({\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent\r\n })\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n } else {\r\n return false\r\n }\r\n }\r\n /** Get modified features\r\n * @return {Array} list of modified features\r\n */\r\n getModifiedFeatures() {\r\n return this._modifiedFeatures || []\r\n }\r\n /** Removes the vertex currently being pointed.\r\n */\r\n removePoint() {\r\n this._removePoint({}, {})\r\n }\r\n /**\r\n * @private\r\n */\r\n _getModification(a) {\r\n var coords = a.coord1.concat(a.coord2)\r\n switch (a.type) {\r\n case 'LineString': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 1) {\r\n if (a.geom.getCoordinates().length != coords.length) {\r\n a.coords = coords\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiLineString': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 1) {\r\n var c = a.geom.getCoordinates()\r\n if (c[a.lstring].length != coords.length) {\r\n c[a.lstring] = coords\r\n a.coords = c\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'Polygon': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 3) {\r\n c = a.geom.getCoordinates()\r\n if (c[a.index].length != coords.length) {\r\n c[a.index] = coords\r\n a.coords = c\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'MultiPolygon': {\r\n if (a.closed)\r\n coords.push(coords[0])\r\n if (coords.length > 3) {\r\n c = a.geom.getCoordinates()\r\n if (c[a.poly][a.index].length != coords.length) {\r\n c[a.poly][a.index] = coords\r\n a.coords = c\r\n return true\r\n }\r\n }\r\n break\r\n }\r\n case 'GeometryCollection': {\r\n a.type = a.typeg\r\n var geom = a.geom\r\n var geoms = geom.getGeometries()\r\n a.geom = geoms[a.g]\r\n var found = this._getModification(a)\r\n // Restore current arc\r\n geom.setGeometries(geoms)\r\n a.geom = geom\r\n a.type = 'GeometryCollection'\r\n return found\r\n }\r\n default: {\r\n //console.error('ol/interaction/ModifyFeature '+a.type+' not supported!');\r\n break\r\n }\r\n }\r\n return false\r\n }\r\n /** Removes the vertex currently being pointed.\r\n * @private\r\n */\r\n _removePoint(current, evt) {\r\n if (!this.arcs)\r\n return false\r\n\r\n this.overlayLayer_.getSource().clear()\r\n\r\n var found = false\r\n // Get all modifications\r\n this.arcs.forEach(function (a) {\r\n found = found || this._getModification(a)\r\n }.bind(this))\r\n\r\n // Almost one point is removed\r\n if (found) {\r\n this.dispatchEvent({\r\n type: 'modifystart',\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n this.arcs.forEach(function (a) {\r\n if (a.geom.getType() === 'GeometryCollection') {\r\n if (a.coords) {\r\n var geoms = a.geom.getGeometries()\r\n geoms[a.g].setCoordinates(a.coords)\r\n a.geom.setGeometries(geoms)\r\n }\r\n } else {\r\n if (a.coords)\r\n a.geom.setCoordinates(a.coords)\r\n }\r\n }.bind(this))\r\n this.dispatchEvent({\r\n type: 'modifyend',\r\n coordinate: current.coord,\r\n originalEvent: evt.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n }\r\n\r\n this.arcs = []\r\n return found\r\n }\r\n /**\r\n * @private\r\n */\r\n handleUpEvent(e) {\r\n if (!this.getActive())\r\n return false\r\n if (!this.arcs || !this.arcs.length)\r\n return true\r\n\r\n this.overlayLayer_.getSource().clear()\r\n this.dispatchEvent({\r\n type: 'modifyend',\r\n coordinate: e.coordinate,\r\n originalEvent: e.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n\r\n this.arcs = []\r\n return true\r\n }\r\n /**\r\n * @private\r\n */\r\n setArcCoordinates(a, coords) {\r\n var c\r\n switch (a.type) {\r\n case 'Point': {\r\n a.geom.setCoordinates(coords[0])\r\n break\r\n }\r\n case 'MultiPoint': {\r\n c = a.geom.getCoordinates()\r\n c[a.index] = coords[0]\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'LineString': {\r\n a.geom.setCoordinates(coords)\r\n break\r\n }\r\n case 'MultiLineString': {\r\n c = a.geom.getCoordinates()\r\n c[a.lstring] = coords\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'Polygon': {\r\n c = a.geom.getCoordinates()\r\n c[a.index] = coords\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'MultiPolygon': {\r\n c = a.geom.getCoordinates()\r\n c[a.poly][a.index] = coords\r\n a.geom.setCoordinates(c)\r\n break\r\n }\r\n case 'GeometryCollection': {\r\n a.type = a.typeg\r\n var geom = a.geom\r\n var geoms = geom.getGeometries()\r\n a.geom = geoms[a.g]\r\n this.setArcCoordinates(a, coords)\r\n geom.setGeometries(geoms)\r\n a.geom = geom\r\n a.type = 'GeometryCollection'\r\n break\r\n }\r\n }\r\n }\r\n /**\r\n * @private\r\n */\r\n handleDragEvent(e) {\r\n if (!this.getActive()) return false\r\n if (!this.arcs) return true\r\n\r\n // Show sketch\r\n this.overlayLayer_.getSource().clear()\r\n var p = new ol_Feature(new ol_geom_Point(e.coordinate))\r\n this.overlayLayer_.getSource().addFeature(p)\r\n\r\n // Nothing to do\r\n if (!this.arcs.length) return true\r\n\r\n // Move arcs\r\n this.arcs.forEach(function (a) {\r\n var coords = a.coord1.concat([e.coordinate], a.coord2)\r\n if (a.closed) coords.push(e.coordinate)\r\n this.setArcCoordinates(a, coords)\r\n }.bind(this))\r\n\r\n this.dispatchEvent({\r\n type: 'modifying',\r\n coordinate: e.coordinate,\r\n originalEvent: e.originalEvent,\r\n features: this._modifiedFeatures\r\n })\r\n\r\n return true\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n * @private\r\n */\r\n handleMoveEvent(e) {\r\n if (!this.getActive()) return true\r\n\r\n this.overlayLayer_.getSource().clear()\r\n var current = this.getClosestFeature(e)\r\n\r\n // Draw sketch\r\n if (current) {\r\n var p = new ol_Feature(new ol_geom_Point(current.coord))\r\n this.overlayLayer_.getSource().addFeature(p)\r\n }\r\n\r\n // Show cursor\r\n var element = e.map.getTargetElement()\r\n if (this.cursor_) {\r\n if (current) {\r\n if (element.style.cursor != this.cursor_) {\r\n this.previousCursor_ = element.style.cursor\r\n ol_ext_element.setCursor(element, this.cursor_)\r\n }\r\n } else if (this.previousCursor_ !== undefined) {\r\n ol_ext_element.setCursor(element, this.previousCursor_)\r\n this.previousCursor_ = undefined\r\n }\r\n }\r\n return true\r\n }\r\n /** Get the current feature to modify\r\n * @return {ol.Feature}\r\n */\r\n getCurrentFeature() {\r\n return this.currentFeature\r\n }\r\n}\r\n\r\nexport default ol_interaction_ModifyFeature","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n\treleased under the CeCILL-B license (French BSD license)\r\n\t(http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\nimport ol_interaction_Pointer from 'ol/interaction/Pointer.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport {ol_coordinate_dist2d, ol_coordinate_findSegment, ol_coordinate_offsetCoords} from \"../geom/GeomUtils.js\";\r\n\r\nimport ol_style_Style_defaultStyle from '../style/defaultStyle.js'\r\nimport ol_ext_element from '../util/element.js';\r\n\r\n/** Offset interaction for offseting feature geometry\r\n * @constructor\r\n * @extends {ol_interaction_Pointer}\r\n * @fires offsetstart\r\n * @fires offsetting\r\n * @fires offsetend\r\n * @param {any} options\r\n *\t@param {function} [options.filter] a function that takes a feature and a layer and return true if the feature can be modified\r\n *\t@param {ol.layer.Vector | Array} options.layers list of feature to transform \r\n *\t@param {ol.Collection.} options.features collection of feature to transform\r\n *\t@param {ol.source.Vector | undefined} options.source source to duplicate feature when ctrl key is down\r\n *\t@param {boolean} options.duplicate force feature to duplicate (source must be set)\r\n * @param {ol.style.Style | Array. | ol.style.StyleFunction | undefined} style style for the sketch\r\n */\r\nvar ol_interaction_Offset = class olinteractionOffset extends ol_interaction_Pointer {\r\n constructor(options) {\r\n options = options || {};\r\n\r\n // Extend pointer\r\n super({\r\n handleDownEvent: function(e) { return self.handleDownEvent_(e) },\r\n handleDragEvent: function(e) { return self.handleDragEvent_(e) },\r\n handleMoveEvent: function(e) { return self.handleMoveEvent_(e) },\r\n handleUpEvent: function(e) { return self.handleUpEvent_(e) },\r\n });\r\n var self = this;\r\n\r\n this._filter = options.filter;\r\n // Collection of feature to transform\r\n this.features_ = options.features;\r\n // List of layers to transform\r\n this.layers_ = options.layers ? (options.layers instanceof Array) ? options.layers : [options.layers] : null;\r\n // duplicate\r\n this.set('duplicate', options.duplicate);\r\n this.source_ = options.source;\r\n // Style\r\n this._style = (typeof (options.style) === 'function') ? options.style : function () {\r\n if (options.style)\r\n return options.style;\r\n else\r\n return ol_style_Style_defaultStyle(true);\r\n };\r\n\r\n // init\r\n this.previousCursor_ = false;\r\n }\r\n /** Get Feature at pixel\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {any} a feature and the hit point\r\n * @private\r\n */\r\n getFeatureAtPixel_(e) {\r\n var self = this;\r\n return this.getMap().forEachFeatureAtPixel(e.pixel,\r\n function (feature, layer) {\r\n var current;\r\n if (self._filter && !self._filter(feature, layer))\r\n return false;\r\n // feature belong to a layer\r\n if (self.layers_) {\r\n for (var i = 0; i < self.layers_.length; i++) {\r\n if (self.layers_[i] === layer) {\r\n current = feature;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // feature in the collection\r\n else if (self.features_) {\r\n self.features_.forEach(function (f) {\r\n if (f === feature) {\r\n current = feature;\r\n }\r\n });\r\n }\r\n\r\n // Others\r\n else {\r\n current = feature;\r\n }\r\n\r\n // Only poygon or linestring\r\n var typeGeom = current.getGeometry().getType();\r\n if (current && /Polygon|LineString/.test(typeGeom)) {\r\n if (typeGeom === 'Polygon' && current.getGeometry().getCoordinates().length > 1)\r\n return false;\r\n // test distance\r\n var p = current.getGeometry().getClosestPoint(e.coordinate);\r\n var dx = p[0] - e.coordinate[0];\r\n var dy = p[1] - e.coordinate[1];\r\n var d = Math.sqrt(dx * dx + dy * dy) / e.frameState.viewState.resolution;\r\n\r\n if (d < 5) {\r\n return {\r\n feature: current,\r\n hit: p,\r\n coordinates: current.getGeometry().getCoordinates(),\r\n geom: current.getGeometry().clone(),\r\n geomType: typeGeom\r\n };\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }, { hitTolerance: 5 });\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n * @private\r\n */\r\n handleDownEvent_(e) {\r\n this.current_ = this.getFeatureAtPixel_(e);\r\n if (this.current_) {\r\n this.currentStyle_ = this.current_.feature.getStyle();\r\n if (this.source_ && (this.get('duplicate') || e.originalEvent.ctrlKey)) {\r\n this.current_.feature = this.current_.feature.clone();\r\n this.current_.feature.setStyle(this._style(this.current_.feature));\r\n this.source_.addFeature(this.current_.feature);\r\n } else {\r\n // Modify the current feature\r\n this.current_.feature.setStyle(this._style(this.current_.feature));\r\n this._modifystart = true;\r\n }\r\n this.dispatchEvent({ type: 'offsetstart', feature: this.current_.feature, offset: 0 });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Map browser event.\r\n * @private\r\n */\r\n handleDragEvent_(e) {\r\n if (this._modifystart) {\r\n this.dispatchEvent({ type: 'modifystart', features: [this.current_.feature] });\r\n this._modifystart = false;\r\n }\r\n var p = this.current_.geom.getClosestPoint(e.coordinate);\r\n var d = ol_coordinate_dist2d(p, e.coordinate);\r\n var seg, v1, v2, offset;\r\n switch (this.current_.geomType) {\r\n case 'Polygon': {\r\n seg = ol_coordinate_findSegment(p, this.current_.coordinates[0]).segment;\r\n if (seg) {\r\n v1 = [seg[1][0] - seg[0][0], seg[1][1] - seg[0][1]];\r\n v2 = [e.coordinate[0] - p[0], e.coordinate[1] - p[1]];\r\n if (v1[0] * v2[1] - v1[1] * v2[0] > 0) {\r\n d = -d;\r\n }\r\n\r\n offset = [];\r\n for (var i = 0; i < this.current_.coordinates.length; i++) {\r\n offset.push(ol_coordinate_offsetCoords(this.current_.coordinates[i], i == 0 ? d : -d));\r\n }\r\n this.current_.feature.setGeometry(new ol_geom_Polygon(offset));\r\n }\r\n break;\r\n }\r\n case 'LineString': {\r\n seg = ol_coordinate_findSegment(p, this.current_.coordinates).segment;\r\n if (seg) {\r\n v1 = [seg[1][0] - seg[0][0], seg[1][1] - seg[0][1]];\r\n v2 = [e.coordinate[0] - p[0], e.coordinate[1] - p[1]];\r\n if (v1[0] * v2[1] - v1[1] * v2[0] > 0) {\r\n d = -d;\r\n }\r\n offset = ol_coordinate_offsetCoords(this.current_.coordinates, d);\r\n this.current_.feature.setGeometry(new ol_geom_LineString(offset));\r\n }\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n this.dispatchEvent({ type: 'offsetting', feature: this.current_.feature, offset: d, segment: [p, e.coordinate], coordinate: e.coordinate });\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Map browser event.\r\n * @private\r\n */\r\n handleUpEvent_(e) {\r\n if (!this._modifystart) {\r\n this.dispatchEvent({ type: 'offsetend', feature: this.current_.feature, coordinate: e.coordinate });\r\n }\r\n this.current_.feature.setStyle(this.currentStyle_);\r\n this.current_ = false;\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} e Event.\r\n * @private\r\n */\r\n handleMoveEvent_(e) {\r\n var f = this.getFeatureAtPixel_(e);\r\n if (f) {\r\n if (this.previousCursor_ === false) {\r\n this.previousCursor_ = e.map.getTargetElement().style.cursor;\r\n }\r\n ol_ext_element.setCursor(e.map, 'pointer');\r\n } else {\r\n ol_ext_element.setCursor(e.map, this.previousCursor_);\r\n this.previousCursor_ = false;\r\n }\r\n }\r\n}\r\n\r\nexport default ol_interaction_Offset\r\n","/*\tCopyright (c) 2016 Jean-Marc VIGLINO, \r\n released under the CeCILL-B license (French BSD license)\r\n (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).\r\n*/\r\n\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\nimport ol_style_Circle from 'ol/style/Circle.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\nimport ol_geom_LineString from 'ol/geom/LineString.js'\r\nimport {ol_coordinate_dist2d} from \"../geom/GeomUtils.js\";\r\nimport '../geom/LineStringSplitAt.js'\r\nimport ol_ext_element from '../util/element.js'\r\n\r\n/** Interaction split interaction for splitting feature geometry\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires beforesplit, aftersplit, pointermove\r\n * @param {*} \r\n * @param {ol.source.Vector|Array} [options.sources] a list of source to split (configured with useSpatialIndex set to true), if none use map visible layers.\r\n * @param {ol.Collection.} options.features collection of feature to split (instead of a list of sources)\r\n * @param {integer} options.snapDistance distance (in px) to snap to an object, default 25px\r\n *\t@param {string|undefined} options.cursor cursor name to display when hovering an objet\r\n * @param {function|undefined} options.filter a filter that takes a feature and return true if it can be clipped, default always split.\r\n * @param ol_style_Style | Array | false | undefined} options.featureStyle Style for the selected features, choose false if you don't want feature selection. By default the default edit style is used.\r\n * @param {ol_style_Style | Array | undefined} options.sketchStyle Style for the sektch features. \r\n * @param {function|undefined} options.tolerance Distance between the calculated intersection and a vertex on the source geometry below which the existing vertex will be used for the split. Default is 1e-10.\r\n */\r\nvar ol_interaction_Split = class olinteractionSplit extends ol_interaction_Interaction {\r\n constructor(options) {\r\n if (!options)\r\n options = {}\r\n\r\n super({\r\n handleEvent: function (e) {\r\n switch (e.type) {\r\n case \"singleclick\":\r\n return this.handleDownEvent(e)\r\n case \"pointermove\":\r\n return this.handleMoveEvent(e)\r\n default:\r\n return true\r\n }\r\n //return true;\r\n }\r\n })\r\n\r\n // Snap distance (in px)\r\n this.snapDistance_ = options.snapDistance || 25\r\n // Split tolerance between the calculated intersection and the geometry\r\n this.tolerance_ = options.tolerance || 1e-10\r\n // Cursor\r\n this.cursor_ = options.cursor\r\n\r\n // List of source to split\r\n this.setSources(options.sources)\r\n\r\n if (options.features) {\r\n if (!this.sources_) this.sources_ = [];\r\n this.sources_.push(new ol_source_Vector({ features: options.features }))\r\n }\r\n\r\n // Get all features candidate\r\n this.filterSplit_ = options.filter || function () { return true }\r\n\r\n // Default style\r\n var white = [255, 255, 255, 1]\r\n var blue = [0, 153, 255, 1]\r\n var width = 3\r\n var fill = new ol_style_Fill({ color: 'rgba(255,255,255,0.4)' })\r\n var stroke = new ol_style_Stroke({\r\n color: '#3399CC',\r\n width: 1.25\r\n })\r\n var sketchStyle = [\r\n new ol_style_Style({\r\n image: new ol_style_Circle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: 5\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })\r\n ]\r\n var featureStyle = [\r\n new ol_style_Style({\r\n stroke: new ol_style_Stroke({\r\n color: white,\r\n width: width + 2\r\n })\r\n }),\r\n new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 2 * width,\r\n fill: new ol_style_Fill({\r\n color: blue\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: white,\r\n width: width / 2\r\n })\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: blue,\r\n width: width\r\n })\r\n }),\r\n ]\r\n\r\n // Custom style\r\n if (options.sketchStyle)\r\n sketchStyle = options.sketchStyle instanceof Array ? options.sketchStyle : [options.sketchStyle]\r\n if (options.featureStyle)\r\n featureStyle = options.featureStyle instanceof Array ? options.featureStyle : [options.featureStyle]\r\n\r\n // Create a new overlay for the sketch\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n useSpatialIndex: false\r\n }),\r\n name: 'Split overlay',\r\n displayInLayerSwitcher: false,\r\n style: function (f) {\r\n if (f._sketch_)\r\n return sketchStyle\r\n else\r\n return featureStyle\r\n }\r\n })\r\n\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this.getMap()) {\r\n this.getMap().removeLayer(this.overlayLayer_)\r\n }\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n }\r\n /** Get sources to split features in\r\n * @return {Array}\r\n */\r\n getSources() {\r\n if (!this.sources_ && this.getMap()) {\r\n var sources = []\r\n var getSources = function (layers) {\r\n layers.forEach(function (layer) {\r\n if (layer.getVisible()) {\r\n if (layer.getSource && layer.getSource() instanceof ol_source_Vector) {\r\n sources.unshift(layer.getSource())\r\n } else if (layer.getLayers) {\r\n getSources(layer.getLayers())\r\n }\r\n }\r\n })\r\n }\r\n getSources(this.getMap().getLayers())\r\n return sources\r\n }\r\n return this.sources_ || []\r\n }\r\n /** Set sources to split features in\r\n * @param {ol.source.Vector|Array|boolean} [sources] if not defined get all map vector sources\r\n */\r\n setSources(sources) {\r\n this.sources_ = sources ? (sources instanceof Array ? sources || false : [sources]) : false\r\n }\r\n /** Get closest feature at pixel\r\n * @param {ol.Pixel}\r\n * @return {ol.feature}\r\n * @private\r\n */\r\n getClosestFeature(e) {\r\n var source, f, c, g, d = this.snapDistance_ + 1\r\n // Look for closest point in the sources\r\n this.getSources().forEach(function (si) {\r\n var fi = si.getClosestFeatureToCoordinate(e.coordinate)\r\n if (fi && fi.getGeometry().splitAt) {\r\n var ci = fi.getGeometry().getClosestPoint(e.coordinate)\r\n var gi = new ol_geom_LineString([e.coordinate, ci])\r\n var di = gi.getLength() / e.frameState.viewState.resolution\r\n if (di < d) {\r\n source = si\r\n d = di\r\n f = fi\r\n g = gi\r\n c = ci\r\n }\r\n }\r\n })\r\n // Snap ?\r\n if (d > this.snapDistance_) {\r\n return false\r\n } else {\r\n // Snap to node\r\n var coord = this.getNearestCoord(c, f.getGeometry().getCoordinates())\r\n var p = this.getMap().getPixelFromCoordinate(coord)\r\n if (ol_coordinate_dist2d(e.pixel, p) < this.snapDistance_) {\r\n c = coord\r\n }\r\n //\r\n return { source: source, feature: f, coord: c, link: g }\r\n }\r\n }\r\n /** Get nearest coordinate in a list\r\n * @param {ol.coordinate} pt the point to find nearest\r\n * @param {Array} coords list of coordinates\r\n * @return {ol.coordinate} the nearest coordinate in the list\r\n */\r\n getNearestCoord(pt, coords) {\r\n var d, dm = Number.MAX_VALUE, p0\r\n for (var i = 0; i < coords.length; i++) {\r\n d = ol_coordinate_dist2d(pt, coords[i])\r\n if (d < dm) {\r\n dm = d\r\n p0 = coords[i]\r\n }\r\n }\r\n return p0\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n */\r\n handleDownEvent(evt) {\r\n // Something to split ?\r\n var current = this.getClosestFeature(evt)\r\n\r\n if (current) {\r\n var self = this\r\n self.overlayLayer_.getSource().clear()\r\n var split = current.feature.getGeometry().splitAt(current.coord, this.tolerance_)\r\n var i\r\n if (split.length > 1) {\r\n var tosplit = []\r\n for (i = 0; i < split.length; i++) {\r\n var f = current.feature.clone()\r\n f.setGeometry(split[i])\r\n tosplit.push(f)\r\n }\r\n self.dispatchEvent({ type: 'beforesplit', original: current.feature, features: tosplit })\r\n current.source.dispatchEvent({ type: 'beforesplit', original: current.feature, features: tosplit })\r\n current.source.removeFeature(current.feature)\r\n for (i = 0; i < tosplit.length; i++) {\r\n current.source.addFeature(tosplit[i])\r\n }\r\n self.dispatchEvent({ type: 'aftersplit', original: current.feature, features: tosplit })\r\n current.source.dispatchEvent({ type: 'aftersplit', original: current.feature, features: tosplit })\r\n }\r\n }\r\n return false\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n */\r\n handleMoveEvent(e) {\r\n var map = e.map\r\n this.overlayLayer_.getSource().clear()\r\n var current = this.getClosestFeature(e)\r\n\r\n if (current && this.filterSplit_(current.feature)) {\r\n var p, l\r\n // Draw sketch\r\n this.overlayLayer_.getSource().addFeature(current.feature)\r\n p = new ol_Feature(new ol_geom_Point(current.coord))\r\n p._sketch_ = true\r\n this.overlayLayer_.getSource().addFeature(p)\r\n //\r\n l = new ol_Feature(current.link)\r\n l._sketch_ = true\r\n this.overlayLayer_.getSource().addFeature(l)\r\n // move event\r\n this.dispatchEvent({\r\n type: 'pointermove',\r\n coordinate: e.coordinate,\r\n frameState: e.frameState,\r\n originalEvent: e.originalEvent,\r\n map: e.map,\r\n pixel: e.pixel,\r\n feature: current.feature,\r\n linkGeometry: current.link\r\n })\r\n } else {\r\n this.dispatchEvent(e)\r\n }\r\n\r\n var element = map.getTargetElement()\r\n if (this.cursor_) {\r\n if (current) {\r\n if (element.style.cursor != this.cursor_) {\r\n this.previousCursor_ = element.style.cursor\r\n ol_ext_element.setCursor(element, this.cursor_)\r\n }\r\n } else if (this.previousCursor_ !== undefined) {\r\n ol_ext_element.setCursor(element, this.previousCursor_)\r\n this.previousCursor_ = undefined\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ol_interaction_Split\r\n","import ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\nimport ol_layer_Vector from 'ol/layer/Vector.js'\r\nimport ol_geom_Point from 'ol/geom/Point.js'\r\nimport ol_Feature from 'ol/Feature.js'\r\nimport ol_Collection from 'ol/Collection.js'\r\nimport ol_interaction_Pointer from 'ol/interaction/Pointer.js'\r\nimport ol_style_RegularShape from 'ol/style/RegularShape.js'\r\nimport {fromExtent as ol_geom_Polygon_fromExtent} from 'ol/geom/Polygon.js'\r\nimport {boundingExtent as ol_extent_boundingExtent, buffer as ol_extent_buffer, createEmpty as ol_extent_createEmpty, extend as ol_extent_extend, getCenter as ol_extent_getCenter} from 'ol/extent.js'\r\nimport {unByKey as ol_Observable_unByKey} from 'ol/Observable.js'\r\nimport ol_geom_Polygon from 'ol/geom/Polygon.js'\r\nimport ol_ext_element from '../util/element.js'\r\n\r\n/** Interaction rotate\r\n * @constructor\r\n * @extends {ol_interaction_Pointer}\r\n * @fires select | rotatestart | rotating | rotateend | translatestart | translating | translateend | scalestart | scaling | scaleend\r\n * @param {any} options\r\n * @param {function} options.filter A function that takes a Feature and a Layer and returns true if the feature may be transformed or false otherwise.\r\n * @param {Array} options.layers array of layers to transform,\r\n * @param {ol.Collection} options.features collection of feature to transform,\r\n *\t@param {ol.EventsConditionType|undefined} options.condition A function that takes an ol.MapBrowserEvent and a feature collection and returns a boolean to indicate whether that event should be handled. default: ol.events.condition.always.\r\n *\t@param {ol.EventsConditionType|undefined} options.addCondition A function that takes an ol.MapBrowserEvent and returns a boolean to indicate whether that event should be handled ie. the feature will be added to the transforms features. default: ol.events.condition.never.\r\n *\t@param {number | undefined} options.hitTolerance Tolerance to select feature in pixel, default 0\r\n *\t@param {bool} options.translateFeature Translate when click on feature\r\n *\t@param {bool} options.translate Can translate the feature\r\n * @param {bool} options.translateBBox Enable translate when the user drags inside the bounding box\r\n *\t@param {bool} options.stretch can stretch the feature\r\n *\t@param {bool} options.scale can scale the feature\r\n *\t@param {bool} options.rotate can rotate the feature\r\n *\t@param {bool} options.noFlip prevent the feature geometry to flip, default false\r\n *\t@param {bool} options.selection the intraction handle selection/deselection, if not use the select prototype to add features to transform, default true\r\n *\t@param {ol.events.ConditionType | undefined} options.keepAspectRatio A function that takes an ol.MapBrowserEvent and returns a boolean to keep aspect ratio, default ol.events.condition.shiftKeyOnly.\r\n *\t@param {ol.events.ConditionType | undefined} options.modifyCenter A function that takes an ol.MapBrowserEvent and returns a boolean to apply scale & strech from the center, default ol.events.condition.metaKey or ol.events.condition.ctrlKey.\r\n *\t@param {boolean} options.enableRotatedTransform Enable transform when map is rotated\r\n *\t@param {boolean} [options.keepRectangle=false] keep rectangle when possible\r\n * @param {number} [options.buffer] Increase the extent used as bounding box, default 0\r\n *\t@param {*} options.style list of ol.style for handles\r\n * @param {number|Array|function} [options.pointRadius=0] radius for points or a function that takes a feature and returns the radius (or [radiusX, radiusY]). If not null show handles to transform the points\r\n */\r\nvar ol_interaction_Transform = class olinteractionTransform extends ol_interaction_Pointer {\r\n constructor(options) {\r\n options = options || {}\r\n // Extend pointer\r\n super({\r\n handleDownEvent: function(e) { return self.handleDownEvent_(e) },\r\n handleDragEvent: function(e) { return this.handleDragEvent_(e) },\r\n handleMoveEvent: function(e) { return this.handleMoveEvent_(e) },\r\n handleUpEvent: function(e) { return this.handleUpEvent_(e) },\r\n })\r\n \r\n var self = this\r\n this.selection_ = new ol_Collection()\r\n\r\n // Create a new overlay layer for the sketch\r\n this.handles_ = new ol_Collection()\r\n this.overlayLayer_ = new ol_layer_Vector({\r\n source: new ol_source_Vector({\r\n features: this.handles_,\r\n useSpatialIndex: false,\r\n wrapX: false // For vector editing across the -180° and 180° meridians to work properly, this should be set to false\r\n }),\r\n name: 'Transform overlay',\r\n displayInLayerSwitcher: false,\r\n // Return the style according to the handle type\r\n style: function (feature) {\r\n return (self.style[(feature.get('handle') || 'default') + (feature.get('constraint') || '') + (feature.get('option') || '')])\r\n },\r\n updateWhileAnimating: true,\r\n updateWhileInteracting: true,\r\n })\r\n\r\n // Collection of feature to transform\r\n this.features_ = options.features\r\n // Filter or list of layers to transform\r\n if (typeof (options.filter) === 'function')\r\n this._filter = options.filter\r\n this.layers_ = options.layers ? (options.layers instanceof Array) ? options.layers : [options.layers] : null\r\n\r\n this._handleEvent = options.condition || function () { return true }\r\n this.addFn_ = options.addCondition || function () { return false }\r\n this.setPointRadius(options.pointRadius)\r\n /* Translate when click on feature */\r\n this.set('translateFeature', (options.translateFeature !== false))\r\n /* Can translate the feature */\r\n this.set('translate', (options.translate !== false))\r\n /* Translate when click on the bounding box */\r\n this.set('translateBBox', (options.translateBBox === true))\r\n /* Can stretch the feature */\r\n this.set('stretch', (options.stretch !== false))\r\n /* Can scale the feature */\r\n this.set('scale', (options.scale !== false))\r\n /* Can rotate the feature */\r\n this.set('rotate', (options.rotate !== false))\r\n /* Keep aspect ratio */\r\n this.set('keepAspectRatio', (options.keepAspectRatio || function (e) { return e.originalEvent.shiftKey }))\r\n /* Modify center */\r\n this.set('modifyCenter', (options.modifyCenter || function (e) { return e.originalEvent.metaKey || e.originalEvent.ctrlKey }))\r\n /* Prevent flip */\r\n this.set('noFlip', (options.noFlip || false))\r\n /* Handle selection */\r\n this.set('selection', (options.selection !== false))\r\n /* */\r\n this.set('hitTolerance', (options.hitTolerance || 0))\r\n /* Enable view rotated transforms */\r\n this.set('enableRotatedTransform', (options.enableRotatedTransform || false))\r\n /* Keep rectangle angles 90 degrees */\r\n this.set('keepRectangle', (options.keepRectangle || false))\r\n /* Add buffer to the feature's extent */\r\n this.set('buffer', (options.buffer || 0))\r\n\r\n // Force redraw when changed\r\n this.on('propertychange', function () {\r\n this.drawSketch_()\r\n })\r\n\r\n // setstyle\r\n this.setDefaultStyle()\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n var oldMap = this.getMap()\r\n if (oldMap) {\r\n oldMap.removeLayer(this.overlayLayer_)\r\n if (this.previousCursor_) {\r\n ol_ext_element.setCursor(oldMap, this.previousCursor_)\r\n }\r\n this.previousCursor_ = undefined\r\n }\r\n super.setMap(map)\r\n this.overlayLayer_.setMap(map)\r\n if (map === null) {\r\n this.select(null)\r\n }\r\n if (map !== null) {\r\n this.isTouch = /touch/.test(map.getViewport().className)\r\n this.setDefaultStyle()\r\n }\r\n }\r\n /**\r\n * Activate/deactivate interaction\r\n * @param {bool}\r\n * @api stable\r\n */\r\n setActive(b) {\r\n this.select(null)\r\n if (this.overlayLayer_) this.overlayLayer_.setVisible(b)\r\n super.setActive(b)\r\n }\r\n /** Set default sketch style\r\n * @param {Object} [options]\r\n * @param {ol_style_Stroke} [stroke] stroke style for selection rectangle, default red dash\r\n * @param {ol_style_Fill} [fill] fill style for selection rectangle, default red\r\n * @param {ol_style_Stroke} [pointStroke] stroke style for handles, default red\r\n * @param {ol_style_Fill} [pointFill] fill style for handles, default white\r\n */\r\n setDefaultStyle(options) {\r\n options = options || {}\r\n // Style\r\n var stroke = options.pointStroke || new ol_style_Stroke({ color: [255, 0, 0, 1], width: 1 })\r\n var strokedash = options.stroke || new ol_style_Stroke({ color: [255, 0, 0, 1], width: 1, lineDash: [4, 4] })\r\n var fill0 = options.fill || new ol_style_Fill({ color: [255, 0, 0, 0.01] })\r\n var fill = options.pointFill || new ol_style_Fill({ color: [255, 255, 255, 0.8] })\r\n var circle = new ol_style_RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: this.isTouch ? 12 : 6,\r\n displacement: this.isTouch ? [24, -24] : [12, -12],\r\n points: 15\r\n })\r\n // Old version with no displacement\r\n if (!circle.setDisplacement)\r\n circle.getAnchor()[0] = this.isTouch ? -10 : -5\r\n var bigpt = new ol_style_RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: this.isTouch ? 16 : 8,\r\n points: 4,\r\n angle: Math.PI / 4\r\n })\r\n var smallpt = new ol_style_RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: this.isTouch ? 12 : 6,\r\n points: 4,\r\n angle: Math.PI / 4\r\n })\r\n function createStyle(img, stroke, fill) {\r\n return [new ol_style_Style({ image: img, stroke: stroke, fill: fill })]\r\n }\r\n /** Style for handles */\r\n this.style = {\r\n 'default': createStyle(bigpt, strokedash, fill0),\r\n 'translate': createStyle(bigpt, stroke, fill),\r\n 'rotate': createStyle(circle, stroke, fill),\r\n 'rotate0': createStyle(bigpt, stroke, fill),\r\n 'scale': createStyle(bigpt, stroke, fill),\r\n 'scale1': createStyle(bigpt, stroke, fill),\r\n 'scale2': createStyle(bigpt, stroke, fill),\r\n 'scale3': createStyle(bigpt, stroke, fill),\r\n 'scalev': createStyle(smallpt, stroke, fill),\r\n 'scaleh1': createStyle(smallpt, stroke, fill),\r\n 'scalev2': createStyle(smallpt, stroke, fill),\r\n 'scaleh3': createStyle(smallpt, stroke, fill),\r\n }\r\n this.drawSketch_()\r\n }\r\n /**\r\n * Set sketch style.\r\n * @param {style} style Style name: 'default','translate','rotate','rotate0','scale','scale1','scale2','scale3','scalev','scaleh1','scalev2','scaleh3'\r\n * @param {ol.style.Style|Array} olstyle\r\n * @api stable\r\n */\r\n setStyle(style, olstyle) {\r\n if (!olstyle)\r\n return\r\n if (olstyle instanceof Array)\r\n this.style[style] = olstyle\r\n else\r\n this.style[style] = [olstyle]\r\n for (var i = 0; i < this.style[style].length; i++) {\r\n var im = this.style[style][i].getImage()\r\n if (im) {\r\n if (style == 'rotate') {\r\n im.getAnchor()[0] = -5\r\n }\r\n if (this.isTouch)\r\n im.setScale(1.8)\r\n }\r\n var tx = this.style[style][i].getText()\r\n if (tx) {\r\n if (style == 'rotate')\r\n tx.setOffsetX(this.isTouch ? 14 : 7)\r\n if (this.isTouch)\r\n tx.setScale(1.8)\r\n }\r\n }\r\n this.drawSketch_()\r\n }\r\n /** Get Feature at pixel\r\n * @param {ol.Pixel}\r\n * @return {ol.feature}\r\n * @private\r\n */\r\n getFeatureAtPixel_(pixel) {\r\n var self = this\r\n return this.getMap().forEachFeatureAtPixel(pixel,\r\n function (feature, layer) {\r\n var found = false\r\n // Overlay ?\r\n if (!layer) {\r\n if (feature === self.bbox_) {\r\n if (self.get('translateBBox')) {\r\n return { feature: feature, handle: 'translate', constraint: '', option: '' }\r\n } else {\r\n return false\r\n }\r\n }\r\n self.handles_.forEach(function (f) {\r\n if (f === feature)\r\n found = true\r\n })\r\n if (found)\r\n return { feature: feature, handle: feature.get('handle'), constraint: feature.get('constraint'), option: feature.get('option') }\r\n }\r\n // No seletion\r\n if (!self.get('selection')) {\r\n // Return the currently selected feature the user is interacting with.\r\n if (self.selection_.getArray().some(function (f) { return feature === f })) {\r\n return { feature: feature }\r\n }\r\n return null\r\n }\r\n // filter condition\r\n if (self._filter) {\r\n if (self._filter(feature, layer))\r\n return { feature: feature }\r\n else\r\n return null\r\n }\r\n\r\n // feature belong to a layer\r\n else if (self.layers_) {\r\n for (var i = 0; i < self.layers_.length; i++) {\r\n if (self.layers_[i] === layer)\r\n return { feature: feature }\r\n }\r\n return null\r\n }\r\n\r\n // feature in the collection\r\n else if (self.features_) {\r\n self.features_.forEach(function (f) {\r\n if (f === feature)\r\n found = true\r\n })\r\n if (found)\r\n return { feature: feature }\r\n else\r\n return null\r\n }\r\n\r\n // Others\r\n else\r\n return { feature: feature }\r\n },\r\n { hitTolerance: this.get('hitTolerance') }\r\n ) || {}\r\n }\r\n /** Rotate feature from map view rotation\r\n * @param {ol.Feature} f the feature\r\n * @param {boolean} clone clone resulting geom\r\n * @param {ol.geom.Geometry} rotated geometry\r\n */\r\n getGeometryRotateToZero_(f, clone) {\r\n var origGeom = f.getGeometry()\r\n var viewRotation = this.getMap().getView().getRotation()\r\n if (viewRotation === 0 || !this.get('enableRotatedTransform')) {\r\n return (clone) ? origGeom.clone() : origGeom\r\n }\r\n var rotGeom = origGeom.clone()\r\n rotGeom.rotate(viewRotation * -1, this.getMap().getView().getCenter())\r\n return rotGeom\r\n }\r\n /** Test if rectangle\r\n * @param {ol.Geometry} geom\r\n * @returns {boolean}\r\n * @private\r\n */\r\n _isRectangle(geom) {\r\n if (this.get('keepRectangle') && geom.getType() === 'Polygon') {\r\n var coords = geom.getCoordinates()[0]\r\n return coords.length === 5\r\n }\r\n return false\r\n }\r\n /** Draw transform sketch\r\n * @param {boolean} draw only the center\r\n */\r\n drawSketch_(center) {\r\n var i, f, geom\r\n var keepRectangle = this.selection_.item(0) && this._isRectangle(this.selection_.item(0).getGeometry())\r\n this.overlayLayer_.getSource().clear()\r\n if (!this.selection_.getLength())\r\n return\r\n var viewRotation = this.getMap().getView().getRotation()\r\n var ext = this.getGeometryRotateToZero_(this.selection_.item(0)).getExtent()\r\n var coords\r\n if (keepRectangle) {\r\n coords = this.getGeometryRotateToZero_(this.selection_.item(0)).getCoordinates()[0].slice(0, 4)\r\n coords.unshift(coords[3])\r\n }\r\n // Clone and extend\r\n ext = ol_extent_buffer(ext, this.get('buffer'))\r\n this.selection_.forEach(function (f) {\r\n var extendExt = this.getGeometryRotateToZero_(f).getExtent()\r\n ol_extent_extend(ext, extendExt)\r\n }.bind(this))\r\n\r\n var ptRadius = (this.selection_.getLength() === 1 ? this._pointRadius(this.selection_.item(0)) : 0)\r\n if (ptRadius && !(ptRadius instanceof Array))\r\n ptRadius = [ptRadius, ptRadius]\r\n\r\n if (center === true) {\r\n if (!this.ispt_) {\r\n this.overlayLayer_.getSource().addFeature(new ol_Feature({ geometry: new ol_geom_Point(this.center_), handle: 'rotate0' }))\r\n geom = ol_geom_Polygon_fromExtent(ext)\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n geom.rotate(viewRotation, this.getMap().getView().getCenter())\r\n }\r\n f = this.bbox_ = new ol_Feature(geom)\r\n this.overlayLayer_.getSource().addFeature(f)\r\n }\r\n } else {\r\n if (this.ispt_) {\r\n // Calculate extent arround the point\r\n var p = this.getMap().getPixelFromCoordinate(ol_extent_getCenter(ext))\r\n if (p) {\r\n var dx = ptRadius ? ptRadius[0] || 10 : 10\r\n var dy = ptRadius ? ptRadius[1] || 10 : 10\r\n ext = ol_extent_boundingExtent([\r\n this.getMap().getCoordinateFromPixel([p[0] - dx, p[1] - dy]),\r\n this.getMap().getCoordinateFromPixel([p[0] + dx, p[1] + dy])\r\n ])\r\n }\r\n }\r\n geom = keepRectangle ? new ol_geom_Polygon([coords]) : ol_geom_Polygon_fromExtent(ext)\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n geom.rotate(viewRotation, this.getMap().getView().getCenter())\r\n }\r\n f = this.bbox_ = new ol_Feature(geom)\r\n var features = []\r\n var g = geom.getCoordinates()[0]\r\n if (!this.ispt_ || ptRadius) {\r\n features.push(f)\r\n // Middle\r\n if (!this.iscircle_ && !this.ispt_ && this.get('stretch') && this.get('scale'))\r\n for (i = 0; i < g.length - 1; i++) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point([(g[i][0] + g[i + 1][0]) / 2, (g[i][1] + g[i + 1][1]) / 2]), handle: 'scale', constraint: i % 2 ? \"h\" : \"v\", option: i })\r\n features.push(f)\r\n }\r\n // Handles\r\n if (this.get('scale'))\r\n for (i = 0; i < g.length - 1; i++) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point(g[i]), handle: 'scale', option: i })\r\n features.push(f)\r\n }\r\n // Center\r\n if (this.get('translate') && !this.get('translateFeature')) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point([(g[0][0] + g[2][0]) / 2, (g[0][1] + g[2][1]) / 2]), handle: 'translate' })\r\n features.push(f)\r\n }\r\n }\r\n // Rotate\r\n if (!this.iscircle_ && this.get('rotate')) {\r\n f = new ol_Feature({ geometry: new ol_geom_Point(g[3]), handle: 'rotate' })\r\n features.push(f)\r\n }\r\n // Add sketch\r\n this.overlayLayer_.getSource().addFeatures(features)\r\n }\r\n\r\n }\r\n /** Select a feature to transform\r\n * @param {ol.Feature} feature the feature to transform\r\n * @param {boolean} add true to add the feature to the selection, default false\r\n */\r\n select(feature, add) {\r\n if (!feature) {\r\n if (this.selection_) {\r\n this.selection_.clear()\r\n this.drawSketch_()\r\n }\r\n return\r\n }\r\n if (!feature.getGeometry || !feature.getGeometry()) return\r\n // Add to selection\r\n if (add) {\r\n this.selection_.push(feature)\r\n } else {\r\n var index = this.selection_.getArray().indexOf(feature)\r\n this.selection_.removeAt(index)\r\n }\r\n this.ispt_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Point\") : false)\r\n this.iscircle_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Circle\") : false)\r\n this.drawSketch_()\r\n this.watchFeatures_()\r\n // select event\r\n this.dispatchEvent({ type: 'select', feature: feature, features: this.selection_ })\r\n }\r\n /** Update the selection collection.\r\n * @param {ol.Collection} features the features to transform\r\n */\r\n setSelection(features) {\r\n this.selection_.clear()\r\n features.forEach(function (feature) {\r\n this.selection_.push(feature)\r\n }.bind(this))\r\n\r\n this.ispt_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Point\") : false)\r\n this.iscircle_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Circle\") : false)\r\n this.drawSketch_()\r\n this.watchFeatures_()\r\n // select event\r\n this.dispatchEvent({ type: 'select', features: this.selection_ })\r\n }\r\n /** Watch selected features\r\n * @private\r\n */\r\n watchFeatures_() {\r\n // Listen to feature modification\r\n if (this._featureListeners) {\r\n this._featureListeners.forEach(function (l) {\r\n ol_Observable_unByKey(l)\r\n })\r\n }\r\n this._featureListeners = []\r\n this.selection_.forEach(function (f) {\r\n this._featureListeners.push(\r\n f.on('change', function () {\r\n if (!this.isUpdating_) {\r\n this.drawSketch_()\r\n }\r\n }.bind(this))\r\n )\r\n }.bind(this))\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `true` to start the drag sequence.\r\n * @private\r\n */\r\n handleDownEvent_(evt) {\r\n if (!this._handleEvent(evt, this.selection_))\r\n return\r\n var sel = this.getFeatureAtPixel_(evt.pixel)\r\n var feature = sel.feature\r\n if (this.selection_.getLength()\r\n && this.selection_.getArray().indexOf(feature) >= 0\r\n && ((this.ispt_ && this.get('translate')) || this.get('translateFeature'))) {\r\n sel.handle = 'translate'\r\n }\r\n if (sel.handle) {\r\n this.mode_ = sel.handle\r\n this.opt_ = sel.option\r\n this.constraint_ = sel.constraint\r\n // Save info\r\n var viewRotation = this.getMap().getView().getRotation()\r\n // Get coordinate of the handle (for snapping)\r\n this.coordinate_ = feature.get('handle') ? feature.getGeometry().getCoordinates() : evt.coordinate;\r\n this.pixel_ = this.getMap().getCoordinateFromPixel(this.coordinate_) // evt.pixel;\r\n this.geoms_ = []\r\n this.rotatedGeoms_ = []\r\n var extent = ol_extent_createEmpty()\r\n var rotExtent = ol_extent_createEmpty()\r\n for (var i = 0, f; f = this.selection_.item(i); i++) {\r\n this.geoms_.push(f.getGeometry().clone())\r\n extent = ol_extent_extend(extent, f.getGeometry().getExtent())\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n var rotGeom = this.getGeometryRotateToZero_(f, true)\r\n this.rotatedGeoms_.push(rotGeom)\r\n rotExtent = ol_extent_extend(rotExtent, rotGeom.getExtent())\r\n }\r\n }\r\n this.extent_ = (ol_geom_Polygon_fromExtent(extent)).getCoordinates()[0]\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n this.rotatedExtent_ = (ol_geom_Polygon_fromExtent(rotExtent)).getCoordinates()[0]\r\n }\r\n if (this.mode_ === 'rotate') {\r\n this.center_ = this.getCenter() || ol_extent_getCenter(extent)\r\n // we are now rotating (cursor down on rotate mode), so apply the grabbing cursor\r\n var element = evt.map.getTargetElement()\r\n ol_ext_element.setCursor(element, this.Cursors.rotate0)\r\n this.previousCursor_ = element.style.cursor\r\n } else {\r\n this.center_ = ol_extent_getCenter(extent)\r\n }\r\n this.angle_ = Math.atan2(this.center_[1] - evt.coordinate[1], this.center_[0] - evt.coordinate[0])\r\n\r\n this.dispatchEvent({\r\n type: this.mode_ + 'start',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n return true\r\n }\r\n else if (this.get('selection')) {\r\n if (feature) {\r\n if (!this.addFn_(evt))\r\n this.selection_.clear()\r\n var index = this.selection_.getArray().indexOf(feature)\r\n if (index < 0)\r\n this.selection_.push(feature)\r\n else\r\n this.selection_.removeAt(index)\r\n } else {\r\n this.selection_.clear()\r\n }\r\n this.ispt_ = this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Point\") : false\r\n this.iscircle_ = (this.selection_.getLength() === 1 ? (this.selection_.item(0).getGeometry().getType() == \"Circle\") : false)\r\n this.drawSketch_()\r\n this.watchFeatures_()\r\n this.dispatchEvent({ type: 'select', feature: feature, features: this.selection_, pixel: evt.pixel, coordinate: evt.coordinate })\r\n return false\r\n }\r\n }\r\n /**\r\n * Get the rotation center\r\n * @return {ol.coordinate|undefined}\r\n */\r\n getCenter() {\r\n return this.get('center')\r\n }\r\n /**\r\n * Set the rotation center\r\n * @param {ol.coordinate|undefined} c the center point, default center on the objet\r\n */\r\n setCenter(c) {\r\n return this.set('center', c)\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @private\r\n */\r\n handleDragEvent_(evt) {\r\n if (!this._handleEvent(evt, this.features_))\r\n return\r\n var viewRotation = this.getMap().getView().getRotation()\r\n var i, j, f, geometry\r\n var pt0 = [this.coordinate_[0], this.coordinate_[1]]\r\n var pt = [evt.coordinate[0], evt.coordinate[1]]\r\n this.isUpdating_ = true\r\n switch (this.mode_) {\r\n case 'rotate': {\r\n var a = Math.atan2(this.center_[1] - pt[1], this.center_[0] - pt[0])\r\n if (!this.ispt) {\r\n // var geometry = this.geom_.clone();\r\n // geometry.rotate(a-this.angle_, this.center_);\r\n // this.feature_.setGeometry(geometry);\r\n for (i = 0, f; f = this.selection_.item(i); i++) {\r\n geometry = this.geoms_[i].clone()\r\n geometry.rotate(a - this.angle_, this.center_)\r\n // bug: ol, bad calculation circle geom extent\r\n if (geometry.getType() == 'Circle')\r\n geometry.setCenterAndRadius(geometry.getCenter(), geometry.getRadius())\r\n f.setGeometry(geometry)\r\n }\r\n }\r\n this.drawSketch_(true)\r\n this.dispatchEvent({\r\n type: 'rotating',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n angle: a - this.angle_,\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n break\r\n }\r\n case 'translate': {\r\n var deltaX = pt[0] - pt0[0]\r\n var deltaY = pt[1] - pt0[1]\r\n\r\n //this.feature_.getGeometry().translate(deltaX, deltaY);\r\n for (i = 0, f; f = this.selection_.item(i); i++) {\r\n f.getGeometry().translate(deltaX, deltaY)\r\n }\r\n this.handles_.forEach(function (f) {\r\n f.getGeometry().translate(deltaX, deltaY)\r\n })\r\n\r\n this.coordinate_ = evt.coordinate\r\n this.dispatchEvent({\r\n type: 'translating',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n delta: [deltaX, deltaY],\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n break\r\n }\r\n case 'scale': {\r\n var center = this.center_\r\n if (this.get('modifyCenter')(evt)) {\r\n var extentCoordinates = this.extent_\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n extentCoordinates = this.rotatedExtent_\r\n }\r\n center = extentCoordinates[(Number(this.opt_) + 2) % 4]\r\n }\r\n var keepRectangle = (this.geoms_.length == 1 && this._isRectangle(this.geoms_[0]))\r\n var stretch = this.constraint_\r\n var opt = this.opt_\r\n\r\n var downCoordinate = this.coordinate_\r\n var dragCoordinate = evt.coordinate\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n var downPoint = new ol_geom_Point(this.coordinate_)\r\n downPoint.rotate(viewRotation * -1, center)\r\n downCoordinate = downPoint.getCoordinates()\r\n\r\n var dragPoint = new ol_geom_Point(evt.coordinate)\r\n dragPoint.rotate(viewRotation * -1, center)\r\n dragCoordinate = dragPoint.getCoordinates()\r\n }\r\n\r\n var scx = ((dragCoordinate)[0] - (center)[0]) / (downCoordinate[0] - (center)[0])\r\n var scy = ((dragCoordinate)[1] - (center)[1]) / (downCoordinate[1] - (center)[1])\r\n var displacementVector = [dragCoordinate[0] - downCoordinate[0], (dragCoordinate)[1] - downCoordinate[1]]\r\n\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n var centerPoint = new ol_geom_Point(center)\r\n centerPoint.rotate(viewRotation * -1, this.getMap().getView().getCenter())\r\n center = centerPoint.getCoordinates()\r\n }\r\n\r\n if (this.get('noFlip')) {\r\n if (scx < 0)\r\n scx = -scx\r\n if (scy < 0)\r\n scy = -scy\r\n }\r\n\r\n if (this.constraint_) {\r\n if (this.constraint_ == \"h\")\r\n scx = 1\r\n else\r\n scy = 1\r\n } else {\r\n if (this.get('keepAspectRatio')(evt)) {\r\n scx = scy = Math.min(scx, scy)\r\n }\r\n }\r\n\r\n for (i = 0, f; f = this.selection_.item(i); i++) {\r\n geometry = (viewRotation === 0 || !this.get('enableRotatedTransform')) ? this.geoms_[i].clone() : this.rotatedGeoms_[i].clone()\r\n geometry.applyTransform(function (g1, g2, dim) {\r\n if (dim < 2) return g2\r\n\r\n if (!keepRectangle) {\r\n for (j = 0; j < g1.length; j += dim) {\r\n if (scx != 1)\r\n g2[j] = center[0] + (g1[j] - center[0]) * scx\r\n if (scy != 1)\r\n g2[j + 1] = center[1] + (g1[j + 1] - center[1]) * scy\r\n }\r\n } else {\r\n var pointArray = [[6], [0, 8], [2], [4]]\r\n var pointA = [g1[0], g1[1]]\r\n var pointB = [g1[2], g1[3]]\r\n var pointC = [g1[4], g1[5]]\r\n var pointD = [g1[6], g1[7]]\r\n var pointA1 = [g1[8], g1[9]]\r\n\r\n if (stretch) {\r\n var base = (opt % 2 === 0) ? this._countVector(pointA, pointB) : this._countVector(pointD, pointA)\r\n var projectedVector = this._projectVectorOnVector(displacementVector, base)\r\n var nextIndex = opt + 1 < pointArray.length ? opt + 1 : 0\r\n var coordsToChange = [...pointArray[opt], ...pointArray[nextIndex]]\r\n\r\n for (j = 0; j < g1.length; j += dim) {\r\n g2[j] = coordsToChange.includes(j) ? g1[j] + projectedVector[0] : g1[j]\r\n g2[j + 1] = coordsToChange.includes(j) ? g1[j + 1] + projectedVector[1] : g1[j + 1]\r\n }\r\n } else {\r\n var projectedLeft, projectedRight\r\n switch (opt) {\r\n case 0:\r\n displacementVector = this._countVector(pointD, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointC, pointD))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointA, pointD));\r\n [g2[0], g2[1]] = this._movePoint(pointA, projectedLeft);\r\n [g2[4], g2[5]] = this._movePoint(pointC, projectedRight);\r\n [g2[6], g2[7]] = this._movePoint(pointD, displacementVector);\r\n [g2[8], g2[9]] = this._movePoint(pointA1, projectedLeft)\r\n break\r\n case 1:\r\n displacementVector = this._countVector(pointA, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointD, pointA))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointB, pointA));\r\n [g2[0], g2[1]] = this._movePoint(pointA, displacementVector);\r\n [g2[2], g2[3]] = this._movePoint(pointB, projectedLeft);\r\n [g2[6], g2[7]] = this._movePoint(pointD, projectedRight);\r\n [g2[8], g2[9]] = this._movePoint(pointA1, displacementVector)\r\n break\r\n case 2:\r\n displacementVector = this._countVector(pointB, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointA, pointB))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointC, pointB));\r\n [g2[0], g2[1]] = this._movePoint(pointA, projectedRight);\r\n [g2[2], g2[3]] = this._movePoint(pointB, displacementVector);\r\n [g2[4], g2[5]] = this._movePoint(pointC, projectedLeft);\r\n [g2[8], g2[9]] = this._movePoint(pointA1, projectedRight)\r\n break\r\n case 3:\r\n displacementVector = this._countVector(pointC, dragCoordinate)\r\n projectedLeft = this._projectVectorOnVector(displacementVector, this._countVector(pointB, pointC))\r\n projectedRight = this._projectVectorOnVector(displacementVector, this._countVector(pointD, pointC));\r\n [g2[2], g2[3]] = this._movePoint(pointB, projectedRight);\r\n [g2[4], g2[5]] = this._movePoint(pointC, displacementVector);\r\n [g2[6], g2[7]] = this._movePoint(pointD, projectedLeft)\r\n break\r\n }\r\n }\r\n }\r\n\r\n // bug: ol, bad calculation circle geom extent\r\n if (geometry.getType() == 'Circle') geometry.setCenterAndRadius(geometry.getCenter(), geometry.getRadius())\r\n return g2\r\n }.bind(this))\r\n if (this.get('enableRotatedTransform') && viewRotation !== 0) {\r\n //geometry.rotate(viewRotation, rotationCenter);\r\n geometry.rotate(viewRotation, this.getMap().getView().getCenter())\r\n }\r\n f.setGeometry(geometry)\r\n }\r\n this.drawSketch_()\r\n this.dispatchEvent({\r\n type: 'scaling',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n scale: [scx, scy],\r\n pixel: evt.pixel,\r\n coordinate: evt.coordinate\r\n })\r\n break\r\n }\r\n default: break\r\n }\r\n this.isUpdating_ = false\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Event.\r\n * @private\r\n */\r\n handleMoveEvent_(evt) {\r\n if (!this._handleEvent(evt, this.features_))\r\n return\r\n // console.log(\"handleMoveEvent\");\r\n if (!this.mode_) {\r\n var sel = this.getFeatureAtPixel_(evt.pixel)\r\n var element = evt.map.getTargetElement()\r\n if (sel.feature) {\r\n var c = sel.handle ? this.Cursors[(sel.handle || 'default') + (sel.constraint || '') + (sel.option || '')] : this.Cursors.select\r\n\r\n if (this.previousCursor_ === undefined) {\r\n this.previousCursor_ = element.style.cursor\r\n }\r\n ol_ext_element.setCursor(element, c);\r\n } else {\r\n if (this.previousCursor_ !== undefined) {\r\n ol_ext_element.setCursor(element, this.previousCursor_)\r\n }\r\n this.previousCursor_ = undefined\r\n }\r\n }\r\n }\r\n /**\r\n * @param {ol.MapBrowserEvent} evt Map browser event.\r\n * @return {boolean} `false` to stop the drag sequence.\r\n */\r\n handleUpEvent_(evt) {\r\n // remove rotate0 cursor on Up event, otherwise it's stuck on grab/grabbing\r\n if (this.mode_ === 'rotate') {\r\n var element = evt.map.getTargetElement()\r\n ol_ext_element.setCursor(element, this.Cursors.default)\r\n this.previousCursor_ = undefined\r\n }\r\n\r\n //dispatchEvent\r\n this.dispatchEvent({\r\n type: this.mode_ + 'end',\r\n feature: this.selection_.item(0),\r\n features: this.selection_,\r\n oldgeom: this.geoms_[0],\r\n oldgeoms: this.geoms_\r\n })\r\n\r\n this.drawSketch_()\r\n this.mode_ = null\r\n return false\r\n }\r\n /** Set the point radius to calculate handles on points\r\n * @param {number|Array|function} [pointRadius=0] radius for points or a function that takes a feature and returns the radius (or [radiusX, radiusY]). If not null show handles to transform the points\r\n */\r\n setPointRadius(pointRadius) {\r\n if (typeof (pointRadius) === 'function') {\r\n this._pointRadius = pointRadius\r\n } else {\r\n this._pointRadius = function () { return pointRadius }\r\n }\r\n }\r\n /** Get the features that are selected for transform\r\n * @return ol.Collection\r\n */\r\n getFeatures() {\r\n return this.selection_;\r\n }\r\n /**\r\n * @private\r\n */\r\n _projectVectorOnVector(displacement_vector, base) {\r\n var k = (displacement_vector[0] * base[0] + displacement_vector[1] * base[1]) / (base[0] * base[0] + base[1] * base[1]);\r\n return [base[0] * k, base[1] * k];\r\n }\r\n /**\r\n * @private\r\n */\r\n _countVector(start, end) {\r\n return [end[0] - start[0], end[1] - start[1]];\r\n }\r\n /**\r\n * @private\r\n */\r\n _movePoint(point, displacementVector) {\r\n return [point[0]+displacementVector[0], point[1]+displacementVector[1]];\r\n }\r\n \r\n \r\n}\r\n\r\n/** Cursors for transform\r\n*/\r\nol_interaction_Transform.prototype.Cursors = {\r\n 'default': 'auto',\r\n 'select': 'pointer',\r\n 'translate': 'move',\r\n 'rotate': 'move',\r\n 'rotate0': 'move',\r\n 'scale': 'nesw-resize',\r\n 'scale1': 'nwse-resize',\r\n 'scale2': 'nesw-resize',\r\n 'scale3': 'nwse-resize',\r\n 'scalev': 'ew-resize',\r\n 'scaleh1': 'ns-resize',\r\n 'scalev2': 'ew-resize',\r\n 'scaleh3': 'ns-resize'\r\n};\r\n\r\nexport default ol_interaction_Transform\r\n","import ol_source_Vector from 'ol/source/Vector.js'\r\n\r\n;(function () {\r\n var clear = ol_source_Vector.prototype.clear;\r\n\r\n /** Overwrite ol/source/Vector clear to fire clearstart / clearend event\r\n */\r\n ol_source_Vector.prototype.clear = function(opt_fast) {\r\n this.dispatchEvent({ type: 'clearstart' });\r\n clear.call(this, opt_fast)\r\n this.dispatchEvent({ type: 'clearend' });\r\n };\r\n})();\r\n","import ol_Collection from 'ol/Collection.js'\r\nimport ol_interaction_Interaction from 'ol/interaction/Interaction.js'\r\nimport ol_source_Vector from 'ol/source/Vector.js'\r\nimport {unByKey as ol_Observable_unByKey} from 'ol/Observable.js'\r\nimport '../source/Vector.js'\r\n\r\n/** Undo/redo interaction\r\n * @constructor\r\n * @extends {ol_interaction_Interaction}\r\n * @fires undo\r\n * @fires redo\r\n * @fires change:add\r\n * @fires change:remove\r\n * @fires change:clear\r\n * @param {Object} options\r\n * @param {number=} options.maxLength max undo stack length (0=Infinity), default Infinity\r\n * @param {Array} options.layers array of layers to undo/redo\r\n */\r\nvar ol_interaction_UndoRedo = class olinteractionUndoRedo extends ol_interaction_Interaction {\r\n constructor(options) {\r\n options = options || {}\r\n\r\n super({\r\n handleEvent: function () {\r\n return true\r\n }\r\n })\r\n\r\n //array of layers to undo/redo\r\n this._layers = options.layers\r\n\r\n this._undoStack = new ol_Collection()\r\n this._redoStack = new ol_Collection()\r\n // Zero level stack\r\n this._undo = []\r\n this._redo = []\r\n this._undoStack.on('add', function (e) {\r\n if (e.element.level === undefined) {\r\n e.element.level = this._level\r\n if (!e.element.level) {\r\n e.element.view = {\r\n center: this.getMap().getView().getCenter(),\r\n zoom: this.getMap().getView().getZoom()\r\n }\r\n this._undo.push(e.element)\r\n }\r\n } else {\r\n if (!e.element.level)\r\n this._undo.push(this._redo.shift())\r\n }\r\n if (!e.element.level) {\r\n this.dispatchEvent({\r\n type: 'stack:add',\r\n action: e.element\r\n })\r\n }\r\n this._reduce()\r\n }.bind(this))\r\n this._undoStack.on('remove', function (e) {\r\n if (!e.element.level) {\r\n if (this._doShift) {\r\n this._undo.shift()\r\n } else {\r\n if (this._undo.length)\r\n this._redo.push(this._undo.pop())\r\n }\r\n if (!this._doClear) {\r\n this.dispatchEvent({\r\n type: 'stack:remove',\r\n action: e.element,\r\n shift: this._doShift\r\n })\r\n }\r\n }\r\n }.bind(this))\r\n // Block counter\r\n this._block = 0\r\n this._level = 0\r\n // Shift an undo action ?\r\n this._doShift = false\r\n // Start recording\r\n this._record = true\r\n // Custom definitions\r\n this._defs = {}\r\n }\r\n /** Add a custom undo/redo\r\n * @param {string} action the action key name\r\n * @param {function} undoFn function called when undoing\r\n * @param {function} redoFn function called when redoing\r\n * @api\r\n */\r\n define(action, undoFn, redoFn) {\r\n this._defs[action] = { undo: undoFn, redo: redoFn }\r\n }\r\n /** Get first level undo / redo length\r\n * @param {string} [type] get redo stack length, default get undo\r\n * @return {number}\r\n */\r\n length(type) {\r\n return (type === 'redo') ? this._redo.length : this._undo.length\r\n }\r\n /** Set undo stack max length\r\n * @param {number} length\r\n */\r\n setMaxLength(length) {\r\n length = parseInt(length)\r\n if (length && length < 0)\r\n length = 0\r\n this.set('maxLength', length)\r\n this._reduce()\r\n }\r\n /** Get undo / redo size (includes all block levels)\r\n * @param {string} [type] get redo stack length, default get undo\r\n * @return {number}\r\n */\r\n size(type) {\r\n return (type === 'redo') ? this._redoStack.getLength() : this._undoStack.getLength()\r\n }\r\n /** Set undo stack max size\r\n * @param {number} size\r\n */\r\n setMaxSize(size) {\r\n size = parseInt(size)\r\n if (size && size < 0)\r\n size = 0\r\n this.set('maxSize', size)\r\n this._reduce()\r\n }\r\n /** Reduce stack: shift undo to set size\r\n * @private\r\n */\r\n _reduce() {\r\n if (this.get('maxLength')) {\r\n while (this.length() > this.get('maxLength')) {\r\n this.shift()\r\n }\r\n }\r\n if (this.get('maxSize')) {\r\n while (this.length() > 1 && this.size() > this.get('maxSize')) {\r\n this.shift()\r\n }\r\n }\r\n }\r\n /** Get first level undo / redo first level stack\r\n * @param {string} [type] get redo stack, default get undo\r\n * @return {Array<*>}\r\n */\r\n getStack(type) {\r\n return (type === 'redo') ? this._redo : this._undo\r\n }\r\n /** Add a new custom undo/redo\r\n * @param {string} action the action key name\r\n * @param {any} prop an object that will be passed in the undo/redo functions of the action\r\n * @param {string} name action name\r\n * @return {boolean} true if the action is defined\r\n */\r\n push(action, prop, name) {\r\n if (this._defs[action]) {\r\n this._undoStack.push({\r\n type: action,\r\n name: name,\r\n custom: true,\r\n prop: prop\r\n })\r\n return true\r\n } else {\r\n console.warn('[UndoRedoInteraction]: \"' + action + '\" is not defined.')\r\n return false\r\n }\r\n }\r\n /** Remove undo action from the beginning of the stack.\r\n * The action is not returned.\r\n */\r\n shift() {\r\n this._doShift = true\r\n var a = this._undoStack.removeAt(0)\r\n this._doShift = false\r\n // Remove all block\r\n if (a.type === 'blockstart') {\r\n a = this._undoStack.item(0)\r\n while (this._undoStack.getLength() && a.level > 0) {\r\n this._undoStack.removeAt(0)\r\n a = this._undoStack.item(0)\r\n }\r\n }\r\n }\r\n /** Activate or deactivate the interaction, ie. records or not events on the map.\r\n * @param {boolean} active\r\n * @api stable\r\n */\r\n setActive(active) {\r\n super.setActive(active)\r\n this._record = active\r\n }\r\n /**\r\n * Remove the interaction from its current map, if any, and attach it to a new\r\n * map, if any. Pass `null` to just remove the interaction from the current map.\r\n * @param {ol.Map} map Map.\r\n * @api stable\r\n */\r\n setMap(map) {\r\n if (this._mapListener) {\r\n this._mapListener.forEach(function (l) { ol_Observable_unByKey(l) })\r\n }\r\n this._mapListener = []\r\n super.setMap(map)\r\n // Watch blocks\r\n if (map) {\r\n this._mapListener.push(map.on('undoblockstart', this.blockStart.bind(this)))\r\n this._mapListener.push(map.on('undoblockend', this.blockEnd.bind(this)))\r\n }\r\n // Watch sources\r\n this._watchSources()\r\n this._watchInteractions()\r\n }\r\n /** Watch for changes in the map sources\r\n * @private\r\n */\r\n _watchSources() {\r\n var map = this.getMap()\r\n // Clear listeners\r\n if (this._sourceListener) {\r\n this._sourceListener.forEach(function (l) { ol_Observable_unByKey(l) })\r\n }\r\n this._sourceListener = []\r\n\r\n var self = this\r\n\r\n // Ges vector layers \r\n function getVectorLayers(layers, init) {\r\n if (!init) {\r\n init = []\r\n }\r\n layers.forEach(function (l) {\r\n if (l.getSource && l.getSource() instanceof ol_source_Vector) {\r\n if (!self._layers || self._layers.indexOf(l) >= 0) {\r\n init.push(l)\r\n }\r\n } else if (l.getLayers) {\r\n getVectorLayers(l.getLayers(), init)\r\n }\r\n })\r\n return init\r\n }\r\n\r\n if (map) {\r\n // Watch the vector sources in the map \r\n var vectors = getVectorLayers(map.getLayers())\r\n vectors.forEach((function (l) {\r\n var s = l.getSource()\r\n this._sourceListener.push(s.on(['addfeature', 'removefeature'], this._onAddRemove.bind(this)))\r\n this._sourceListener.push(s.on('clearstart', function () {\r\n this.blockStart('clear')\r\n }.bind(this)))\r\n this._sourceListener.push(s.on('clearend', this.blockEnd.bind(this)))\r\n }).bind(this))\r\n\r\n // Watch new inserted/removed\r\n this._sourceListener.push(map.getLayers().on(['add', 'remove'], this._watchSources.bind(this)))\r\n }\r\n }\r\n /** Watch for interactions\r\n * @private\r\n */\r\n _watchInteractions() {\r\n var map = this.getMap()\r\n // Clear listeners\r\n if (this._interactionListener) {\r\n this._interactionListener.forEach(function (l) { ol_Observable_unByKey(l) })\r\n }\r\n this._interactionListener = []\r\n\r\n if (map) {\r\n // Watch the interactions in the map \r\n map.getInteractions().forEach((function (i) {\r\n this._interactionListener.push(i.on(\r\n ['setattributestart', 'modifystart', 'rotatestart', 'translatestart', 'scalestart', 'deletestart', 'deleteend', 'beforesplit', 'aftersplit'],\r\n this._onInteraction.bind(this)\r\n ))\r\n }).bind(this))\r\n\r\n // Watch new inserted / unwatch removed\r\n this._interactionListener.push(map.getInteractions().on(\r\n ['add', 'remove'],\r\n this._watchInteractions.bind(this)\r\n ))\r\n }\r\n }\r\n /** A feature is added / removed\r\n */\r\n _onAddRemove(e) {\r\n if (this._record) {\r\n this._redoStack.clear()\r\n this._redo.length = 0\r\n this._undoStack.push({\r\n type: e.type,\r\n source: e.target,\r\n feature: e.feature\r\n })\r\n }\r\n }\r\n /** Perform an interaction\r\n * @private\r\n */\r\n _onInteraction(e) {\r\n var fn = this._onInteraction[e.type]\r\n if (fn)\r\n fn.call(this, e)\r\n }\r\n /** Start an undo block\r\n * @param {string} [name] name f the action\r\n * @api\r\n */\r\n blockStart(name) {\r\n this._redoStack.clear()\r\n this._redo.length = 0\r\n this._undoStack.push({\r\n type: 'blockstart',\r\n name: name\r\n })\r\n this._level++\r\n }\r\n /** End an undo block\r\n * @api\r\n */\r\n blockEnd() {\r\n this._undoStack.push({ type: 'blockend' })\r\n this._level--\r\n }\r\n /** handle undo/redo\r\n * @private\r\n */\r\n _handleDo(e, undo) {\r\n // Not active\r\n if (!this.getActive())\r\n return\r\n\r\n // Stop recording while undoing\r\n this._record = false\r\n if (e.custom) {\r\n if (this._defs[e.type]) {\r\n if (undo)\r\n this._defs[e.type].undo(e.prop)\r\n else\r\n this._defs[e.type].redo(e.prop)\r\n } else {\r\n console.warn('[UndoRedoInteraction]: \"' + e.type + '\" is not defined.')\r\n }\r\n } else {\r\n switch (e.type) {\r\n case 'addfeature': {\r\n if (undo)\r\n e.source.removeFeature(e.feature)\r\n else\r\n e.source.addFeature(e.feature)\r\n break\r\n }\r\n case 'removefeature': {\r\n if (undo)\r\n e.source.addFeature(e.feature)\r\n else\r\n e.source.removeFeature(e.feature)\r\n break\r\n }\r\n case 'changegeometry': {\r\n var geom = e.feature.getGeometry()\r\n e.feature.setGeometry(e.oldGeom)\r\n e.oldGeom = geom\r\n break\r\n }\r\n case 'changeattribute': {\r\n var newp = e.newProperties\r\n var oldp = e.oldProperties\r\n for (var p in oldp) {\r\n if (oldp === undefined)\r\n e.feature.unset(p)\r\n else\r\n e.feature.set(p, oldp[p])\r\n }\r\n e.oldProperties = newp\r\n e.newProperties = oldp\r\n break\r\n }\r\n case 'blockstart': {\r\n this._block += undo ? -1 : 1\r\n break\r\n }\r\n case 'blockend': {\r\n this._block += undo ? 1 : -1\r\n break\r\n }\r\n default: {\r\n console.warn('[UndoRedoInteraction]: \"' + e.type + '\" is not defined.')\r\n }\r\n }\r\n }\r\n\r\n // Handle block\r\n if (this._block < 0)\r\n this._block = 0\r\n if (this._block) {\r\n if (undo)\r\n this.undo()\r\n else\r\n this.redo()\r\n }\r\n this._record = true\r\n\r\n // Dispatch event\r\n this.dispatchEvent({\r\n type: undo ? 'undo' : 'redo',\r\n action: e\r\n })\r\n }\r\n /** Undo last operation\r\n * @api\r\n */\r\n undo() {\r\n var e = this._undoStack.item(this._undoStack.getLength() - 1)\r\n if (!e)\r\n return\r\n this._redoStack.push(e)\r\n this._undoStack.pop()\r\n this._handleDo(e, true)\r\n }\r\n /** Redo last operation\r\n * @api\r\n */\r\n redo() {\r\n var e = this._redoStack.item(this._redoStack.getLength() - 1)\r\n if (!e)\r\n return\r\n this._undoStack.push(e)\r\n this._redoStack.pop()\r\n this._handleDo(e, false)\r\n }\r\n /** Clear undo stack\r\n * @api\r\n */\r\n clear() {\r\n this._doClear = true\r\n this._undo.length = this._redo.length = 0\r\n this._undoStack.clear()\r\n this._redoStack.clear()\r\n this._doClear = false\r\n this.dispatchEvent({ type: 'stack:clear' })\r\n }\r\n /** Check if undo is avaliable\r\n * @return {number} the number of undo\r\n * @api\r\n */\r\n hasUndo() {\r\n return this._undoStack.getLength()\r\n }\r\n /** Check if redo is avaliable\r\n * @return {number} the number of redo\r\n * @api\r\n */\r\n hasRedo() {\r\n return this._redoStack.getLength()\r\n }\r\n}\r\n\r\n/** Set attribute\r\n * @private\r\n */\r\nol_interaction_UndoRedo.prototype._onInteraction.setattributestart = function(e) {\r\n this.blockStart(e.target.get('name') || 'setattribute');\r\n var newp = Object.assign({}, e.properties);\r\n e.features.forEach(function(f) {\r\n var oldp = {};\r\n for (var p in newp) {\r\n oldp[p] = f.get(p);\r\n }\r\n this._undoStack.push({\r\n type: 'changeattribute', \r\n feature: f,\r\n newProperties: newp,\r\n oldProperties: oldp\r\n });\r\n }.bind(this));\r\n this.blockEnd();\r\n};\r\n\r\nol_interaction_UndoRedo.prototype._onInteraction.rotatestart = \r\nol_interaction_UndoRedo.prototype._onInteraction.translatestart = \r\nol_interaction_UndoRedo.prototype._onInteraction.scalestart = \r\nol_interaction_UndoRedo.prototype._onInteraction.modifystart = function (e) {\r\n this.blockStart(e.type.replace(/start$/,''));\r\n e.features.forEach(function(m) {\r\n this._undoStack.push({ \r\n type: 'changegeometry', \r\n feature: m, \r\n oldGeom: m.getGeometry().clone() \r\n });\r\n }.bind(this));\r\n this.blockEnd();\r\n};\r\n\r\n\r\n/** @private\r\n */\r\nol_interaction_UndoRedo.prototype._onInteraction.beforesplit = function() {\r\n // Check modify before split\r\n var l = this._undoStack.getLength();\r\n if (l>2 \r\n && this._undoStack.item(l-1).type === 'blockend'\r\n && this._undoStack.item(l-2).type === 'changegeometry') {\r\n this._undoStack.pop();\r\n } else {\r\n this.blockStart('split');\r\n }\r\n};\r\nol_interaction_UndoRedo.prototype._onInteraction.deletestart = function() {\r\n this.blockStart('delete');\r\n}\r\n\r\n\r\n/** @private\r\n */\r\nol_interaction_UndoRedo.prototype._onInteraction.aftersplit =\r\nol_interaction_UndoRedo.prototype._onInteraction.deleteend =\r\nol_interaction_UndoRedo.prototype.blockEnd;\r\n\r\nexport default ol_interaction_UndoRedo\r\n","import ol_style_Style from 'ol/style/Style.js'\r\nimport ol_style_Circle from 'ol/style/Circle.js'\r\nimport ol_style_Stroke from 'ol/style/Stroke.js'\r\nimport ol_style_Fill from 'ol/style/Fill.js'\r\n\r\nvar ol_style_Style_defaultStyle;\r\n\r\n(function() {\r\n\r\n// Style\r\nvar white = [255, 255, 255, 1];\r\nvar blue = [0, 153, 255, 1];\r\nvar width = 3;\r\n\r\nvar defaultEditStyle = [\r\n new ol_style_Style({\r\n stroke: new ol_style_Stroke({ color: white, width: width + 2 })\r\n }),\r\n new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: width * 2,\r\n fill: new ol_style_Fill({ color: blue }),\r\n stroke: new ol_style_Stroke({ color: white, width: width / 2 })\r\n }),\r\n stroke: new ol_style_Stroke({ color: blue, width: width }),\r\n fill: new ol_style_Fill({\r\n color: [255, 255, 255, 0.5]\r\n })\r\n })\r\n];\r\n\r\n/**\r\n * Get the default style\r\n * @param {boolean|*} [edit] true to get editing style or a { color, fillColor } object, default get default blue style\r\n * @return {Array}\r\n */\r\nol_style_Style_defaultStyle = function(edit) {\r\n if (edit===true) {\r\n return defaultEditStyle;\r\n } else {\r\n edit = edit || {};\r\n var fill = new ol_style_Fill({\r\n color: edit.fillColor || 'rgba(255,255,255,0.4)'\r\n });\r\n var stroke = new ol_style_Stroke({\r\n color: edit.color || '#3399CC',\r\n width: 1.25\r\n });\r\n var style = new ol_style_Style({\r\n image: new ol_style_Circle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: 5\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n });\r\n return [ style ];\r\n }\r\n};\r\n\r\n})();\r\n\r\nexport default ol_style_Style_defaultStyle\r\n","/**\n * @module ol/geom/Circle\n */\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {createOrUpdate, forEachCorner, intersects} from '../extent.js';\nimport {deflateCoordinate} from './flat/deflate.js';\nimport {rotate} from './flat/transform.js';\n\n/**\n * @classdesc\n * Circle geometry.\n *\n * @api\n */\nclass Circle extends SimpleGeometry {\n /**\n * @param {!import(\"../coordinate.js\").Coordinate} center Center.\n * For internal use, flat coordinates in combination with `layout` and no\n * `radius` are also accepted.\n * @param {number} [radius] Radius in units of the projection.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n constructor(center, radius, layout) {\n super();\n if (layout !== undefined && radius === undefined) {\n this.setFlatCoordinates(layout, center);\n } else {\n radius = radius ? radius : 0;\n this.setCenterAndRadius(center, radius, layout);\n }\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!Circle} Clone.\n * @api\n */\n clone() {\n const circle = new Circle(\n this.flatCoordinates.slice(),\n undefined,\n this.layout,\n );\n circle.applyProperties(this);\n return circle;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n const flatCoordinates = this.flatCoordinates;\n const dx = x - flatCoordinates[0];\n const dy = y - flatCoordinates[1];\n const squaredDistance = dx * dx + dy * dy;\n if (squaredDistance < minSquaredDistance) {\n if (squaredDistance === 0) {\n for (let i = 0; i < this.stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n } else {\n const delta = this.getRadius() / Math.sqrt(squaredDistance);\n closestPoint[0] = flatCoordinates[0] + delta * dx;\n closestPoint[1] = flatCoordinates[1] + delta * dy;\n for (let i = 2; i < this.stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n }\n closestPoint.length = this.stride;\n return squaredDistance;\n }\n return minSquaredDistance;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n containsXY(x, y) {\n const flatCoordinates = this.flatCoordinates;\n const dx = x - flatCoordinates[0];\n const dy = y - flatCoordinates[1];\n return dx * dx + dy * dy <= this.getRadiusSquared_();\n }\n\n /**\n * Return the center of the circle as {@link module:ol/coordinate~Coordinate coordinate}.\n * @return {import(\"../coordinate.js\").Coordinate} Center.\n * @api\n */\n getCenter() {\n return this.flatCoordinates.slice(0, this.stride);\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n const flatCoordinates = this.flatCoordinates;\n const radius = flatCoordinates[this.stride] - flatCoordinates[0];\n return createOrUpdate(\n flatCoordinates[0] - radius,\n flatCoordinates[1] - radius,\n flatCoordinates[0] + radius,\n flatCoordinates[1] + radius,\n extent,\n );\n }\n\n /**\n * Return the radius of the circle.\n * @return {number} Radius.\n * @api\n */\n getRadius() {\n return Math.sqrt(this.getRadiusSquared_());\n }\n\n /**\n * @private\n * @return {number} Radius squared.\n */\n getRadiusSquared_() {\n const dx = this.flatCoordinates[this.stride] - this.flatCoordinates[0];\n const dy = this.flatCoordinates[this.stride + 1] - this.flatCoordinates[1];\n return dx * dx + dy * dy;\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n getType() {\n return 'Circle';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n intersectsExtent(extent) {\n const circleExtent = this.getExtent();\n if (intersects(extent, circleExtent)) {\n const center = this.getCenter();\n\n if (extent[0] <= center[0] && extent[2] >= center[0]) {\n return true;\n }\n if (extent[1] <= center[1] && extent[3] >= center[1]) {\n return true;\n }\n\n return forEachCorner(extent, this.intersectsCoordinate.bind(this));\n }\n return false;\n }\n\n /**\n * Set the center of the circle as {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} center Center.\n * @api\n */\n setCenter(center) {\n const stride = this.stride;\n const radius = this.flatCoordinates[stride] - this.flatCoordinates[0];\n const flatCoordinates = center.slice();\n flatCoordinates[stride] = flatCoordinates[0] + radius;\n for (let i = 1; i < stride; ++i) {\n flatCoordinates[stride + i] = center[i];\n }\n this.setFlatCoordinates(this.layout, flatCoordinates);\n this.changed();\n }\n\n /**\n * Set the center (as {@link module:ol/coordinate~Coordinate coordinate}) and the radius (as\n * number) of the circle.\n * @param {!import(\"../coordinate.js\").Coordinate} center Center.\n * @param {number} radius Radius.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n */\n setCenterAndRadius(center, radius, layout) {\n this.setLayout(layout, center, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n /** @type {Array} */\n const flatCoordinates = this.flatCoordinates;\n let offset = deflateCoordinate(flatCoordinates, 0, center, this.stride);\n flatCoordinates[offset++] = flatCoordinates[0] + radius;\n for (let i = 1, ii = this.stride; i < ii; ++i) {\n flatCoordinates[offset++] = flatCoordinates[i];\n }\n flatCoordinates.length = offset;\n this.changed();\n }\n\n getCoordinates() {\n return null;\n }\n\n setCoordinates(coordinates, layout) {}\n\n /**\n * Set the radius of the circle. The radius is in the units of the projection.\n * @param {number} radius Radius.\n * @api\n */\n setRadius(radius) {\n this.flatCoordinates[this.stride] = this.flatCoordinates[0] + radius;\n this.changed();\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n const center = this.getCenter();\n const stride = this.getStride();\n this.setCenter(\n rotate(center, 0, center.length, stride, angle, anchor, center),\n );\n this.changed();\n }\n}\n\n/**\n * Transform each coordinate of the circle from one coordinate reference system\n * to another. The geometry is modified in place.\n * If you do not want the geometry modified in place, first clone() it and\n * then use this function on the clone.\n *\n * Internally a circle is currently represented by two points: the center of\n * the circle `[cx, cy]`, and the point to the right of the circle\n * `[cx + r, cy]`. This `transform` function just transforms these two points.\n * So the resulting geometry is also a circle, and that circle does not\n * correspond to the shape that would be obtained by transforming every point\n * of the original circle.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Circle} This geometry. Note that original geometry is\n * modified in place.\n * @function\n * @api\n */\nCircle.prototype.transform;\nexport default Circle;\n","/**\n * @module ol/interaction/Draw\n */\nimport Circle from '../geom/Circle.js';\nimport Event from '../events/Event.js';\nimport EventType from '../events/EventType.js';\nimport Feature from '../Feature.js';\nimport GeometryCollection from '../geom/GeometryCollection.js';\nimport InteractionProperty from './Property.js';\nimport LineString from '../geom/LineString.js';\nimport MapBrowserEvent from '../MapBrowserEvent.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport MultiLineString from '../geom/MultiLineString.js';\nimport MultiPoint from '../geom/MultiPoint.js';\nimport MultiPolygon from '../geom/MultiPolygon.js';\nimport Point from '../geom/Point.js';\nimport PointerInteraction from './Pointer.js';\nimport Polygon, {fromCircle, makeRegular} from '../geom/Polygon.js';\nimport VectorLayer from '../layer/Vector.js';\nimport VectorSource from '../source/Vector.js';\nimport {FALSE, TRUE} from '../functions.js';\nimport {\n always,\n never,\n noModifierKeys,\n shiftKeyOnly,\n} from '../events/condition.js';\nimport {\n boundingExtent,\n getBottomLeft,\n getBottomRight,\n getTopLeft,\n getTopRight,\n} from '../extent.js';\nimport {clamp, squaredDistance, toFixed} from '../math.js';\nimport {createEditingStyle} from '../style/Style.js';\nimport {\n distance,\n squaredDistance as squaredCoordinateDistance,\n} from '../coordinate.js';\nimport {fromUserCoordinate, getUserProjection} from '../proj.js';\nimport {getStrideForLayout} from '../geom/SimpleGeometry.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../geom/Geometry.js\").Type} type Geometry type of\n * the geometries being drawn with this instance.\n * @property {number} [clickTolerance=6] The maximum distance in pixels between\n * \"down\" and \"up\" for a \"up\" event to be considered a \"click\" event and\n * actually add a point/vertex to the geometry being drawn. The default of `6`\n * was chosen for the draw interaction to behave correctly on mouse as well as\n * on touch devices.\n * @property {import(\"../Collection.js\").default} [features]\n * Destination collection for the drawn features.\n * @property {VectorSource} [source] Destination source for\n * the drawn features.\n * @property {number} [dragVertexDelay=500] Delay in milliseconds after pointerdown\n * before the current vertex can be dragged to its exact position.\n * @property {number} [snapTolerance=12] Pixel distance for snapping to the\n * drawing finish. Must be greater than `0`.\n * @property {boolean} [stopClick=false] Stop click, singleclick, and\n * doubleclick events from firing during drawing.\n * @property {number} [maxPoints] The number of points that can be drawn before\n * a polygon ring or line string is finished. By default there is no\n * restriction.\n * @property {number} [minPoints] The number of points that must be drawn\n * before a polygon ring or line string can be finished. Default is `3` for\n * polygon rings and `2` for line strings.\n * @property {import(\"../events/condition.js\").Condition} [finishCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether the drawing can be finished. Not used when drawing\n * POINT or MULTI_POINT geometries.\n * @property {import(\"../style/Style.js\").StyleLike|import(\"../style/flat.js\").FlatStyleLike} [style]\n * Style for sketch features. The draw interaction can have up to three sketch features, depending on the mode.\n * It will always contain a feature with a `Point` geometry that corresponds to the current cursor position.\n * If the mode is `LineString` or `Polygon`, and there is at least one drawn point, it will also contain a feature with\n * a `LineString` geometry that corresponds to the line between the already drawn points and the current cursor position.\n * If the mode is `Polygon`, and there is at least one drawn point, it will also contain a feature with a `Polygon`\n * geometry that corresponds to the polygon between the already drawn points and the current cursor position\n * (note that this polygon has only two points if only one point is drawn).\n * If the mode is `Circle`, and there is one point drawn, it will also contain a feature with a `Circle` geometry whose\n * center is the drawn point and the radius is determined by the distance between the drawn point and the cursor.\n * @property {GeometryFunction} [geometryFunction]\n * Function that is called when a geometry's coordinates are updated.\n * @property {string} [geometryName] Geometry name to use for features created\n * by the draw interaction.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default {@link module:ol/events/condition.noModifierKeys}, i.e. a click,\n * adds a vertex or deactivates freehand drawing.\n * @property {boolean} [freehand=false] Operate in freehand mode for lines,\n * polygons, and circles. This makes the interaction always operate in freehand\n * mode and takes precedence over any `freehandCondition` option.\n * @property {import(\"../events/condition.js\").Condition} [freehandCondition]\n * Condition that activates freehand drawing for lines and polygons. This\n * function takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and\n * returns a boolean to indicate whether that event should be handled. The\n * default is {@link module:ol/events/condition.shiftKeyOnly}, meaning that the\n * Shift key activates freehand drawing.\n * @property {boolean|import(\"../events/condition.js\").Condition} [trace=false] Trace a portion of another geometry.\n * Ignored when in freehand mode.\n * @property {VectorSource} [traceSource] Source for features to trace. If tracing is active and a `traceSource` is\n * not provided, the interaction's `source` will be used. Tracing requires that the interaction is configured with\n * either a `traceSource` or a `source`.\n * @property {boolean} [wrapX=false] Wrap the world horizontally on the sketch\n * overlay.\n * @property {import(\"../geom/Geometry.js\").GeometryLayout} [geometryLayout='XY'] Layout of the\n * feature geometries created by the draw interaction.\n */\n\n/**\n * Coordinate type when drawing points.\n * @typedef {import(\"../coordinate.js\").Coordinate} PointCoordType\n */\n\n/**\n * Coordinate type when drawing lines.\n * @typedef {Array} LineCoordType\n */\n\n/**\n * Coordinate type when drawing polygons.\n * @typedef {Array>} PolyCoordType\n */\n\n/**\n * Types used for drawing coordinates.\n * @typedef {PointCoordType|LineCoordType|PolyCoordType} SketchCoordType\n */\n\n/**\n * @typedef {Object} TraceState\n * @property {boolean} active Tracing active.\n * @property {import(\"../pixel.js\").Pixel} [startPx] The initially clicked pixel location.\n * @property {Array} [targets] Targets available for tracing.\n * @property {number} [targetIndex] The index of the currently traced target. A value of -1 indicates\n * that no trace target is active.\n */\n\n/**\n * @typedef {Object} TraceTarget\n * @property {Array} coordinates Target coordinates.\n * @property {boolean} ring The target coordinates are a linear ring.\n * @property {number} startIndex The index of first traced coordinate. A fractional index represents an\n * edge intersection. Index values for rings will wrap (may be negative or larger than coordinates length).\n * @property {number} endIndex The index of last traced coordinate. Details from startIndex also apply here.\n */\n\n/**\n * Function that takes an array of coordinates and an optional existing geometry\n * and a projection as arguments, and returns a geometry. The optional existing\n * geometry is the geometry that is returned when the function is called without\n * a second argument.\n * @typedef {function(!SketchCoordType, import(\"../geom/SimpleGeometry.js\").default,\n * import(\"../proj/Projection.js\").default):\n * import(\"../geom/SimpleGeometry.js\").default} GeometryFunction\n */\n\n/**\n * @typedef {'Point' | 'LineString' | 'Polygon' | 'Circle'} Mode\n * Draw mode. This collapses multi-part geometry types with their single-part\n * cousins.\n */\n\n/**\n * @enum {string}\n */\nconst DrawEventType = {\n /**\n * Triggered upon feature draw start\n * @event DrawEvent#drawstart\n * @api\n */\n DRAWSTART: 'drawstart',\n /**\n * Triggered upon feature draw end\n * @event DrawEvent#drawend\n * @api\n */\n DRAWEND: 'drawend',\n /**\n * Triggered upon feature draw abortion\n * @event DrawEvent#drawabort\n * @api\n */\n DRAWABORT: 'drawabort',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Draw~Draw} instances are\n * instances of this type.\n */\nexport class DrawEvent extends Event {\n /**\n * @param {DrawEventType} type Type.\n * @param {Feature} feature The feature drawn.\n */\n constructor(type, feature) {\n super(type);\n\n /**\n * The feature being drawn.\n * @type {Feature}\n * @api\n */\n this.feature = feature;\n }\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The coordinate.\n * @param {Array} features The candidate features.\n * @return {Array} The trace targets.\n */\nfunction getTraceTargets(coordinate, features) {\n /**\n * @type {Array}\n */\n const targets = [];\n\n for (let i = 0; i < features.length; ++i) {\n const feature = features[i];\n const geometry = feature.getGeometry();\n appendGeometryTraceTargets(coordinate, geometry, targets);\n }\n\n return targets;\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} a One coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b Another coordinate.\n * @return {number} The squared distance between the two coordinates.\n */\nfunction getSquaredDistance(a, b) {\n return squaredDistance(a[0], a[1], b[0], b[1]);\n}\n\n/**\n * @param {LineCoordType} coordinates The ring coordinates.\n * @param {number} index The index. May be wrapped.\n * @return {import(\"../coordinate.js\").Coordinate} The coordinate.\n */\nfunction getCoordinate(coordinates, index) {\n const count = coordinates.length;\n if (index < 0) {\n return coordinates[index + count];\n }\n if (index >= count) {\n return coordinates[index - count];\n }\n return coordinates[index];\n}\n\n/**\n * Get the cumulative squared distance along a ring path. The end index index may be \"wrapped\" and it may\n * be less than the start index to indicate the direction of travel. The start and end index may have\n * a fractional part to indicate a point between two coordinates.\n * @param {LineCoordType} coordinates Ring coordinates.\n * @param {number} startIndex The start index.\n * @param {number} endIndex The end index.\n * @return {number} The cumulative squared distance along the ring path.\n */\nfunction getCumulativeSquaredDistance(coordinates, startIndex, endIndex) {\n let lowIndex, highIndex;\n if (startIndex < endIndex) {\n lowIndex = startIndex;\n highIndex = endIndex;\n } else {\n lowIndex = endIndex;\n highIndex = startIndex;\n }\n const lowWholeIndex = Math.ceil(lowIndex);\n const highWholeIndex = Math.floor(highIndex);\n\n if (lowWholeIndex > highWholeIndex) {\n // both start and end are on the same segment\n const start = interpolateCoordinate(coordinates, lowIndex);\n const end = interpolateCoordinate(coordinates, highIndex);\n return getSquaredDistance(start, end);\n }\n\n let sd = 0;\n\n if (lowIndex < lowWholeIndex) {\n const start = interpolateCoordinate(coordinates, lowIndex);\n const end = getCoordinate(coordinates, lowWholeIndex);\n sd += getSquaredDistance(start, end);\n }\n\n if (highWholeIndex < highIndex) {\n const start = getCoordinate(coordinates, highWholeIndex);\n const end = interpolateCoordinate(coordinates, highIndex);\n sd += getSquaredDistance(start, end);\n }\n\n for (let i = lowWholeIndex; i < highWholeIndex - 1; ++i) {\n const start = getCoordinate(coordinates, i);\n const end = getCoordinate(coordinates, i + 1);\n sd += getSquaredDistance(start, end);\n }\n\n return sd;\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The coordinate.\n * @param {import(\"../geom/Geometry.js\").default} geometry The candidate geometry.\n * @param {Array} targets The trace targets.\n */\nfunction appendGeometryTraceTargets(coordinate, geometry, targets) {\n if (geometry instanceof LineString) {\n appendTraceTarget(coordinate, geometry.getCoordinates(), false, targets);\n return;\n }\n if (geometry instanceof MultiLineString) {\n const coordinates = geometry.getCoordinates();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n appendTraceTarget(coordinate, coordinates[i], false, targets);\n }\n return;\n }\n if (geometry instanceof Polygon) {\n const coordinates = geometry.getCoordinates();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n appendTraceTarget(coordinate, coordinates[i], true, targets);\n }\n return;\n }\n if (geometry instanceof MultiPolygon) {\n const polys = geometry.getCoordinates();\n for (let i = 0, ii = polys.length; i < ii; ++i) {\n const coordinates = polys[i];\n for (let j = 0, jj = coordinates.length; j < jj; ++j) {\n appendTraceTarget(coordinate, coordinates[j], true, targets);\n }\n }\n return;\n }\n if (geometry instanceof GeometryCollection) {\n const geometries = geometry.getGeometries();\n for (let i = 0; i < geometries.length; ++i) {\n appendGeometryTraceTargets(coordinate, geometries[i], targets);\n }\n return;\n }\n // other types cannot be traced\n}\n\n/**\n * @typedef {Object} TraceTargetUpdateInfo\n * @property {number} index The new target index.\n * @property {number} endIndex The new segment end index.\n */\n\n/**\n * @type {TraceTargetUpdateInfo}\n */\nconst sharedUpdateInfo = {index: -1, endIndex: NaN};\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The coordinate.\n * @param {TraceState} traceState The trace state.\n * @param {import(\"../Map.js\").default} map The map.\n * @param {number} snapTolerance The snap tolerance.\n * @return {TraceTargetUpdateInfo} Information about the new trace target. The returned\n * object is reused between calls and must not be modified by the caller.\n */\nfunction getTraceTargetUpdate(coordinate, traceState, map, snapTolerance) {\n const x = coordinate[0];\n const y = coordinate[1];\n\n let closestTargetDistance = Infinity;\n\n let newTargetIndex = -1;\n let newEndIndex = NaN;\n\n for (\n let targetIndex = 0;\n targetIndex < traceState.targets.length;\n ++targetIndex\n ) {\n const target = traceState.targets[targetIndex];\n const coordinates = target.coordinates;\n\n let minSegmentDistance = Infinity;\n let endIndex;\n for (\n let coordinateIndex = 0;\n coordinateIndex < coordinates.length - 1;\n ++coordinateIndex\n ) {\n const start = coordinates[coordinateIndex];\n const end = coordinates[coordinateIndex + 1];\n const rel = getPointSegmentRelationship(x, y, start, end);\n if (rel.squaredDistance < minSegmentDistance) {\n minSegmentDistance = rel.squaredDistance;\n endIndex = coordinateIndex + rel.along;\n }\n }\n\n if (minSegmentDistance < closestTargetDistance) {\n closestTargetDistance = minSegmentDistance;\n if (target.ring && traceState.targetIndex === targetIndex) {\n // same target, maintain the same trace direction\n if (target.endIndex > target.startIndex) {\n // forward trace\n if (endIndex < target.startIndex) {\n endIndex += coordinates.length;\n }\n } else if (target.endIndex < target.startIndex) {\n // reverse trace\n if (endIndex > target.startIndex) {\n endIndex -= coordinates.length;\n }\n }\n }\n newEndIndex = endIndex;\n newTargetIndex = targetIndex;\n }\n }\n\n const newTarget = traceState.targets[newTargetIndex];\n let considerBothDirections = newTarget.ring;\n if (traceState.targetIndex === newTargetIndex && considerBothDirections) {\n // only consider switching trace direction if close to the start\n const newCoordinate = interpolateCoordinate(\n newTarget.coordinates,\n newEndIndex,\n );\n const pixel = map.getPixelFromCoordinate(newCoordinate);\n if (distance(pixel, traceState.startPx) > snapTolerance) {\n considerBothDirections = false;\n }\n }\n\n if (considerBothDirections) {\n const coordinates = newTarget.coordinates;\n const count = coordinates.length;\n const startIndex = newTarget.startIndex;\n const endIndex = newEndIndex;\n if (startIndex < endIndex) {\n const forwardDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex,\n );\n const reverseDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex - count,\n );\n if (reverseDistance < forwardDistance) {\n newEndIndex -= count;\n }\n } else {\n const reverseDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex,\n );\n const forwardDistance = getCumulativeSquaredDistance(\n coordinates,\n startIndex,\n endIndex + count,\n );\n if (forwardDistance < reverseDistance) {\n newEndIndex += count;\n }\n }\n }\n\n sharedUpdateInfo.index = newTargetIndex;\n sharedUpdateInfo.endIndex = newEndIndex;\n return sharedUpdateInfo;\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The clicked coordinate.\n * @param {Array} coordinates The geometry component coordinates.\n * @param {boolean} ring The coordinates represent a linear ring.\n * @param {Array} targets The trace targets.\n */\nfunction appendTraceTarget(coordinate, coordinates, ring, targets) {\n const x = coordinate[0];\n const y = coordinate[1];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n const start = coordinates[i];\n const end = coordinates[i + 1];\n const rel = getPointSegmentRelationship(x, y, start, end);\n if (rel.squaredDistance === 0) {\n const index = i + rel.along;\n targets.push({\n coordinates: coordinates,\n ring: ring,\n startIndex: index,\n endIndex: index,\n });\n return;\n }\n }\n}\n\n/**\n * @typedef {Object} PointSegmentRelationship\n * @property {number} along The closest point expressed as a fraction along the segment length.\n * @property {number} squaredDistance The squared distance of the point to the segment.\n */\n\n/**\n * @type {PointSegmentRelationship}\n */\nconst sharedRel = {along: 0, squaredDistance: 0};\n\n/**\n * @param {number} x The point x.\n * @param {number} y The point y.\n * @param {import(\"../coordinate.js\").Coordinate} start The segment start.\n * @param {import(\"../coordinate.js\").Coordinate} end The segment end.\n * @return {PointSegmentRelationship} The point segment relationship. The returned object is\n * shared between calls and must not be modified by the caller.\n */\nfunction getPointSegmentRelationship(x, y, start, end) {\n const x1 = start[0];\n const y1 = start[1];\n const x2 = end[0];\n const y2 = end[1];\n const dx = x2 - x1;\n const dy = y2 - y1;\n let along = 0;\n let px = x1;\n let py = y1;\n if (dx !== 0 || dy !== 0) {\n along = clamp(((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy), 0, 1);\n px += dx * along;\n py += dy * along;\n }\n\n sharedRel.along = along;\n sharedRel.squaredDistance = toFixed(squaredDistance(x, y, px, py), 10);\n return sharedRel;\n}\n\n/**\n * @param {LineCoordType} coordinates The coordinates.\n * @param {number} index The index. May be fractional and may wrap.\n * @return {import(\"../coordinate.js\").Coordinate} The interpolated coordinate.\n */\nfunction interpolateCoordinate(coordinates, index) {\n const count = coordinates.length;\n\n let startIndex = Math.floor(index);\n const along = index - startIndex;\n if (startIndex >= count) {\n startIndex -= count;\n } else if (startIndex < 0) {\n startIndex += count;\n }\n\n let endIndex = startIndex + 1;\n if (endIndex >= count) {\n endIndex -= count;\n }\n\n const start = coordinates[startIndex];\n const x0 = start[0];\n const y0 = start[1];\n const end = coordinates[endIndex];\n const dx = end[0] - x0;\n const dy = end[1] - y0;\n\n return [x0 + dx * along, y0 + dy * along];\n}\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'drawabort'|'drawend'|'drawstart', DrawEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} DrawOnSignature\n */\n\n/**\n * @classdesc\n * Interaction for drawing feature geometries.\n *\n * @fires DrawEvent\n * @api\n */\nclass Draw extends PointerInteraction {\n /**\n * @param {Options} options Options.\n */\n constructor(options) {\n const pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (\n options\n );\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n\n super(pointerOptions);\n\n /***\n * @type {DrawOnSignature}\n */\n this.on;\n\n /***\n * @type {DrawOnSignature}\n */\n this.once;\n\n /***\n * @type {DrawOnSignature}\n */\n this.un;\n\n /**\n * @type {boolean}\n * @private\n */\n this.shouldHandle_ = false;\n\n /**\n * @type {import(\"../pixel.js\").Pixel}\n * @private\n */\n this.downPx_ = null;\n\n /**\n * @type {ReturnType}\n * @private\n */\n this.downTimeout_;\n\n /**\n * @type {number|undefined}\n * @private\n */\n this.lastDragTime_;\n\n /**\n * Pointer type of the last pointermove event\n * @type {string}\n * @private\n */\n this.pointerType_;\n\n /**\n * @type {boolean}\n * @private\n */\n this.freehand_ = false;\n\n /**\n * Target source for drawn features.\n * @type {VectorSource|null}\n * @private\n */\n this.source_ = options.source ? options.source : null;\n\n /**\n * Target collection for drawn features.\n * @type {import(\"../Collection.js\").default|null}\n * @private\n */\n this.features_ = options.features ? options.features : null;\n\n /**\n * Pixel distance for snapping.\n * @type {number}\n * @private\n */\n this.snapTolerance_ = options.snapTolerance ? options.snapTolerance : 12;\n\n /**\n * Geometry type.\n * @type {import(\"../geom/Geometry.js\").Type}\n * @private\n */\n this.type_ = /** @type {import(\"../geom/Geometry.js\").Type} */ (\n options.type\n );\n\n /**\n * Drawing mode (derived from geometry type.\n * @type {Mode}\n * @private\n */\n this.mode_ = getMode(this.type_);\n\n /**\n * Stop click, singleclick, and doubleclick events from firing during drawing.\n * Default is `false`.\n * @type {boolean}\n * @private\n */\n this.stopClick_ = !!options.stopClick;\n\n /**\n * The number of points that must be drawn before a polygon ring or line\n * string can be finished. The default is 3 for polygon rings and 2 for\n * line strings.\n * @type {number}\n * @private\n */\n this.minPoints_ = options.minPoints\n ? options.minPoints\n : this.mode_ === 'Polygon'\n ? 3\n : 2;\n\n /**\n * The number of points that can be drawn before a polygon ring or line string\n * is finished. The default is no restriction.\n * @type {number}\n * @private\n */\n this.maxPoints_ =\n this.mode_ === 'Circle'\n ? 2\n : options.maxPoints\n ? options.maxPoints\n : Infinity;\n\n /**\n * A function to decide if a potential finish coordinate is permissible\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n this.finishCondition_ = options.finishCondition\n ? options.finishCondition\n : TRUE;\n\n /**\n * @private\n * @type {import(\"../geom/Geometry.js\").GeometryLayout}\n */\n this.geometryLayout_ = options.geometryLayout\n ? options.geometryLayout\n : 'XY';\n\n let geometryFunction = options.geometryFunction;\n if (!geometryFunction) {\n const mode = this.mode_;\n if (mode === 'Circle') {\n /**\n * @param {!LineCoordType} coordinates The coordinates.\n * @param {import(\"../geom/SimpleGeometry.js\").default|undefined} geometry Optional geometry.\n * @param {import(\"../proj/Projection.js\").default} projection The view projection.\n * @return {import(\"../geom/SimpleGeometry.js\").default} A geometry.\n */\n geometryFunction = function (coordinates, geometry, projection) {\n const circle = geometry\n ? /** @type {Circle} */ (geometry)\n : new Circle([NaN, NaN]);\n const center = fromUserCoordinate(coordinates[0], projection);\n const squaredLength = squaredCoordinateDistance(\n center,\n fromUserCoordinate(coordinates[coordinates.length - 1], projection),\n );\n circle.setCenterAndRadius(\n center,\n Math.sqrt(squaredLength),\n this.geometryLayout_,\n );\n const userProjection = getUserProjection();\n if (userProjection) {\n circle.transform(projection, userProjection);\n }\n return circle;\n };\n } else {\n let Constructor;\n if (mode === 'Point') {\n Constructor = Point;\n } else if (mode === 'LineString') {\n Constructor = LineString;\n } else if (mode === 'Polygon') {\n Constructor = Polygon;\n }\n /**\n * @param {!LineCoordType} coordinates The coordinates.\n * @param {import(\"../geom/SimpleGeometry.js\").default|undefined} geometry Optional geometry.\n * @param {import(\"../proj/Projection.js\").default} projection The view projection.\n * @return {import(\"../geom/SimpleGeometry.js\").default} A geometry.\n */\n geometryFunction = function (coordinates, geometry, projection) {\n if (geometry) {\n if (mode === 'Polygon') {\n if (coordinates[0].length) {\n // Add a closing coordinate to match the first\n geometry.setCoordinates(\n [coordinates[0].concat([coordinates[0][0]])],\n this.geometryLayout_,\n );\n } else {\n geometry.setCoordinates([], this.geometryLayout_);\n }\n } else {\n geometry.setCoordinates(coordinates, this.geometryLayout_);\n }\n } else {\n geometry = new Constructor(coordinates, this.geometryLayout_);\n }\n return geometry;\n };\n }\n }\n\n /**\n * @type {GeometryFunction}\n * @private\n */\n this.geometryFunction_ = geometryFunction;\n\n /**\n * @type {number}\n * @private\n */\n this.dragVertexDelay_ =\n options.dragVertexDelay !== undefined ? options.dragVertexDelay : 500;\n\n /**\n * Finish coordinate for the feature (first point for polygons, last point for\n * linestrings).\n * @type {import(\"../coordinate.js\").Coordinate}\n * @private\n */\n this.finishCoordinate_ = null;\n\n /**\n * Sketch feature.\n * @type {Feature}\n * @private\n */\n this.sketchFeature_ = null;\n\n /**\n * Sketch point.\n * @type {Feature}\n * @private\n */\n this.sketchPoint_ = null;\n\n /**\n * Sketch coordinates. Used when drawing a line or polygon.\n * @type {SketchCoordType}\n * @private\n */\n this.sketchCoords_ = null;\n\n /**\n * Sketch line. Used when drawing polygon.\n * @type {Feature}\n * @private\n */\n this.sketchLine_ = null;\n\n /**\n * Sketch line coordinates. Used when drawing a polygon or circle.\n * @type {LineCoordType}\n * @private\n */\n this.sketchLineCoords_ = null;\n\n /**\n * Squared tolerance for handling up events. If the squared distance\n * between a down and up event is greater than this tolerance, up events\n * will not be handled.\n * @type {number}\n * @private\n */\n this.squaredClickTolerance_ = options.clickTolerance\n ? options.clickTolerance * options.clickTolerance\n : 36;\n\n /**\n * Draw overlay where our sketch features are drawn.\n * @type {VectorLayer}\n * @private\n */\n this.overlay_ = new VectorLayer({\n source: new VectorSource({\n useSpatialIndex: false,\n wrapX: options.wrapX ? options.wrapX : false,\n }),\n style: options.style ? options.style : getDefaultStyleFunction(),\n updateWhileInteracting: true,\n });\n\n /**\n * Name of the geometry attribute for newly created features.\n * @type {string|undefined}\n * @private\n */\n this.geometryName_ = options.geometryName;\n\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n this.condition_ = options.condition ? options.condition : noModifierKeys;\n\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n this.freehandCondition_;\n if (options.freehand) {\n this.freehandCondition_ = always;\n } else {\n this.freehandCondition_ = options.freehandCondition\n ? options.freehandCondition\n : shiftKeyOnly;\n }\n\n /**\n * @type {import(\"../events/condition.js\").Condition}\n * @private\n */\n this.traceCondition_;\n this.setTrace(options.trace || false);\n\n /**\n * @type {TraceState}\n * @private\n */\n this.traceState_ = {active: false};\n\n /**\n * @type {VectorSource|null}\n * @private\n */\n this.traceSource_ = options.traceSource || options.source || null;\n\n this.addChangeListener(InteractionProperty.ACTIVE, this.updateState_);\n }\n\n /**\n * Toggle tracing mode or set a tracing condition.\n *\n * @param {boolean|import(\"../events/condition.js\").Condition} trace A boolean to toggle tracing mode or an event\n * condition that will be checked when a feature is clicked to determine if tracing should be active.\n */\n setTrace(trace) {\n let condition;\n if (!trace) {\n condition = never;\n } else if (trace === true) {\n condition = always;\n } else {\n condition = trace;\n }\n this.traceCondition_ = condition;\n }\n\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../Map.js\").default} map Map.\n */\n setMap(map) {\n super.setMap(map);\n this.updateState_();\n }\n\n /**\n * Get the overlay layer that this interaction renders sketch features to.\n * @return {VectorLayer} Overlay layer.\n * @api\n */\n getOverlay() {\n return this.overlay_;\n }\n\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} and may actually draw or finish the drawing.\n * @param {import(\"../MapBrowserEvent.js\").default} event Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n handleEvent(event) {\n if (event.originalEvent.type === EventType.CONTEXTMENU) {\n // Avoid context menu for long taps when drawing on mobile\n event.originalEvent.preventDefault();\n }\n this.freehand_ = this.mode_ !== 'Point' && this.freehandCondition_(event);\n let move = event.type === MapBrowserEventType.POINTERMOVE;\n let pass = true;\n if (\n !this.freehand_ &&\n this.lastDragTime_ &&\n event.type === MapBrowserEventType.POINTERDRAG\n ) {\n const now = Date.now();\n if (now - this.lastDragTime_ >= this.dragVertexDelay_) {\n this.downPx_ = event.pixel;\n this.shouldHandle_ = !this.freehand_;\n move = true;\n } else {\n this.lastDragTime_ = undefined;\n }\n if (this.shouldHandle_ && this.downTimeout_ !== undefined) {\n clearTimeout(this.downTimeout_);\n this.downTimeout_ = undefined;\n }\n }\n if (\n this.freehand_ &&\n event.type === MapBrowserEventType.POINTERDRAG &&\n this.sketchFeature_ !== null\n ) {\n this.addToDrawing_(event.coordinate);\n pass = false;\n } else if (\n this.freehand_ &&\n event.type === MapBrowserEventType.POINTERDOWN\n ) {\n pass = false;\n } else if (move && this.getPointerCount() < 2) {\n pass = event.type === MapBrowserEventType.POINTERMOVE;\n if (pass && this.freehand_) {\n this.handlePointerMove_(event);\n if (this.shouldHandle_) {\n // Avoid page scrolling when freehand drawing on mobile\n event.originalEvent.preventDefault();\n }\n } else if (\n event.originalEvent.pointerType === 'mouse' ||\n (event.type === MapBrowserEventType.POINTERDRAG &&\n this.downTimeout_ === undefined)\n ) {\n this.handlePointerMove_(event);\n }\n } else if (event.type === MapBrowserEventType.DBLCLICK) {\n pass = false;\n }\n\n return super.handleEvent(event) && pass;\n }\n\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @return {boolean} If the event was consumed.\n */\n handleDownEvent(event) {\n this.shouldHandle_ = !this.freehand_;\n\n if (this.freehand_) {\n this.downPx_ = event.pixel;\n if (!this.finishCoordinate_) {\n this.startDrawing_(event.coordinate);\n }\n return true;\n }\n\n if (!this.condition_(event)) {\n this.lastDragTime_ = undefined;\n return false;\n }\n\n this.lastDragTime_ = Date.now();\n this.downTimeout_ = setTimeout(() => {\n this.handlePointerMove_(\n new MapBrowserEvent(\n MapBrowserEventType.POINTERMOVE,\n event.map,\n event.originalEvent,\n false,\n event.frameState,\n ),\n );\n }, this.dragVertexDelay_);\n this.downPx_ = event.pixel;\n return true;\n }\n\n /**\n * @private\n */\n deactivateTrace_() {\n this.traceState_ = {active: false};\n }\n\n /**\n * Activate or deactivate trace state based on a browser event.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @private\n */\n toggleTraceState_(event) {\n if (!this.traceSource_ || !this.traceCondition_(event)) {\n return;\n }\n\n if (this.traceState_.active) {\n this.deactivateTrace_();\n return;\n }\n\n const map = this.getMap();\n const lowerLeft = map.getCoordinateFromPixel([\n event.pixel[0] - this.snapTolerance_,\n event.pixel[1] + this.snapTolerance_,\n ]);\n const upperRight = map.getCoordinateFromPixel([\n event.pixel[0] + this.snapTolerance_,\n event.pixel[1] - this.snapTolerance_,\n ]);\n const extent = boundingExtent([lowerLeft, upperRight]);\n const features = this.traceSource_.getFeaturesInExtent(extent);\n if (features.length === 0) {\n return;\n }\n\n const targets = getTraceTargets(event.coordinate, features);\n if (targets.length) {\n this.traceState_ = {\n active: true,\n startPx: event.pixel.slice(),\n targets: targets,\n targetIndex: -1,\n };\n }\n }\n\n /**\n * @param {TraceTarget} target The trace target.\n * @param {number} endIndex The new end index of the trace.\n * @private\n */\n addOrRemoveTracedCoordinates_(target, endIndex) {\n // three cases to handle:\n // 1. traced in the same direction and points need adding\n // 2. traced in the same direction and points need removing\n // 3. traced in a new direction\n const previouslyForward = target.startIndex <= target.endIndex;\n const currentlyForward = target.startIndex <= endIndex;\n if (previouslyForward === currentlyForward) {\n // same direction\n if (\n (previouslyForward && endIndex > target.endIndex) ||\n (!previouslyForward && endIndex < target.endIndex)\n ) {\n // case 1 - add new points\n this.addTracedCoordinates_(target, target.endIndex, endIndex);\n } else if (\n (previouslyForward && endIndex < target.endIndex) ||\n (!previouslyForward && endIndex > target.endIndex)\n ) {\n // case 2 - remove old points\n this.removeTracedCoordinates_(endIndex, target.endIndex);\n }\n } else {\n // case 3 - remove old points, add new points\n this.removeTracedCoordinates_(target.startIndex, target.endIndex);\n this.addTracedCoordinates_(target, target.startIndex, endIndex);\n }\n }\n\n /**\n * @param {number} fromIndex The start index.\n * @param {number} toIndex The end index.\n * @private\n */\n removeTracedCoordinates_(fromIndex, toIndex) {\n if (fromIndex === toIndex) {\n return;\n }\n\n let remove = 0;\n if (fromIndex < toIndex) {\n const start = Math.ceil(fromIndex);\n let end = Math.floor(toIndex);\n if (end === toIndex) {\n end -= 1;\n }\n remove = end - start + 1;\n } else {\n const start = Math.floor(fromIndex);\n let end = Math.ceil(toIndex);\n if (end === toIndex) {\n end += 1;\n }\n remove = start - end + 1;\n }\n\n if (remove > 0) {\n this.removeLastPoints_(remove);\n }\n }\n\n /**\n * @param {TraceTarget} target The trace target.\n * @param {number} fromIndex The start index.\n * @param {number} toIndex The end index.\n * @private\n */\n addTracedCoordinates_(target, fromIndex, toIndex) {\n if (fromIndex === toIndex) {\n return;\n }\n\n const coordinates = [];\n if (fromIndex < toIndex) {\n // forward trace\n const start = Math.ceil(fromIndex);\n let end = Math.floor(toIndex);\n if (end === toIndex) {\n // if end is snapped to a vertex, it will be added later\n end -= 1;\n }\n for (let i = start; i <= end; ++i) {\n coordinates.push(getCoordinate(target.coordinates, i));\n }\n } else {\n // reverse trace\n const start = Math.floor(fromIndex);\n let end = Math.ceil(toIndex);\n if (end === toIndex) {\n end += 1;\n }\n for (let i = start; i >= end; --i) {\n coordinates.push(getCoordinate(target.coordinates, i));\n }\n }\n if (coordinates.length) {\n this.appendCoordinates(coordinates);\n }\n }\n\n /**\n * Update the trace.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @private\n */\n updateTrace_(event) {\n const traceState = this.traceState_;\n if (!traceState.active) {\n return;\n }\n\n if (traceState.targetIndex === -1) {\n // check if we are ready to pick a target\n if (distance(traceState.startPx, event.pixel) < this.snapTolerance_) {\n return;\n }\n }\n\n const updatedTraceTarget = getTraceTargetUpdate(\n event.coordinate,\n traceState,\n this.getMap(),\n this.snapTolerance_,\n );\n\n if (traceState.targetIndex !== updatedTraceTarget.index) {\n // target changed\n if (traceState.targetIndex !== -1) {\n // remove points added during previous trace\n const oldTarget = traceState.targets[traceState.targetIndex];\n this.removeTracedCoordinates_(oldTarget.startIndex, oldTarget.endIndex);\n }\n // add points for the new target\n const newTarget = traceState.targets[updatedTraceTarget.index];\n this.addTracedCoordinates_(\n newTarget,\n newTarget.startIndex,\n updatedTraceTarget.endIndex,\n );\n } else {\n // target stayed the same\n const target = traceState.targets[traceState.targetIndex];\n this.addOrRemoveTracedCoordinates_(target, updatedTraceTarget.endIndex);\n }\n\n // modify the state with updated info\n traceState.targetIndex = updatedTraceTarget.index;\n const target = traceState.targets[traceState.targetIndex];\n target.endIndex = updatedTraceTarget.endIndex;\n\n // update event coordinate and pixel to match end point of final segment\n const coordinate = interpolateCoordinate(\n target.coordinates,\n target.endIndex,\n );\n const pixel = this.getMap().getPixelFromCoordinate(coordinate);\n event.coordinate = coordinate;\n event.pixel = [Math.round(pixel[0]), Math.round(pixel[1])];\n }\n\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @return {boolean} If the event was consumed.\n */\n handleUpEvent(event) {\n let pass = true;\n\n if (this.getPointerCount() === 0) {\n if (this.downTimeout_) {\n clearTimeout(this.downTimeout_);\n this.downTimeout_ = undefined;\n }\n\n this.handlePointerMove_(event);\n const tracing = this.traceState_.active;\n this.toggleTraceState_(event);\n\n if (this.shouldHandle_) {\n const startingToDraw = !this.finishCoordinate_;\n if (startingToDraw) {\n this.startDrawing_(event.coordinate);\n }\n if (!startingToDraw && this.freehand_) {\n this.finishDrawing();\n } else if (\n !this.freehand_ &&\n (!startingToDraw || this.mode_ === 'Point')\n ) {\n if (this.atFinish_(event.pixel, tracing)) {\n if (this.finishCondition_(event)) {\n this.finishDrawing();\n }\n } else {\n this.addToDrawing_(event.coordinate);\n }\n }\n pass = false;\n } else if (this.freehand_) {\n this.abortDrawing();\n }\n }\n\n if (!pass && this.stopClick_) {\n event.preventDefault();\n }\n return pass;\n }\n\n /**\n * Handle move events.\n * @param {import(\"../MapBrowserEvent.js\").default} event A move event.\n * @private\n */\n handlePointerMove_(event) {\n this.pointerType_ = event.originalEvent.pointerType;\n if (\n this.downPx_ &&\n ((!this.freehand_ && this.shouldHandle_) ||\n (this.freehand_ && !this.shouldHandle_))\n ) {\n const downPx = this.downPx_;\n const clickPx = event.pixel;\n const dx = downPx[0] - clickPx[0];\n const dy = downPx[1] - clickPx[1];\n const squaredDistance = dx * dx + dy * dy;\n this.shouldHandle_ = this.freehand_\n ? squaredDistance > this.squaredClickTolerance_\n : squaredDistance <= this.squaredClickTolerance_;\n if (!this.shouldHandle_) {\n return;\n }\n }\n\n if (!this.finishCoordinate_) {\n this.createOrUpdateSketchPoint_(event.coordinate.slice());\n return;\n }\n\n this.updateTrace_(event);\n this.modifyDrawing_(event.coordinate);\n }\n\n /**\n * Determine if an event is within the snapping tolerance of the start coord.\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @param {boolean} [tracing] Drawing in trace mode (only stop if at the starting point).\n * @return {boolean} The event is within the snapping tolerance of the start.\n * @private\n */\n atFinish_(pixel, tracing) {\n let at = false;\n if (this.sketchFeature_) {\n let potentiallyDone = false;\n let potentiallyFinishCoordinates = [this.finishCoordinate_];\n const mode = this.mode_;\n if (mode === 'Point') {\n at = true;\n } else if (mode === 'Circle') {\n at = this.sketchCoords_.length === 2;\n } else if (mode === 'LineString') {\n potentiallyDone =\n !tracing && this.sketchCoords_.length > this.minPoints_;\n } else if (mode === 'Polygon') {\n const sketchCoords = /** @type {PolyCoordType} */ (this.sketchCoords_);\n potentiallyDone = sketchCoords[0].length > this.minPoints_;\n potentiallyFinishCoordinates = [\n sketchCoords[0][0],\n sketchCoords[0][sketchCoords[0].length - 2],\n ];\n if (tracing) {\n potentiallyFinishCoordinates = [sketchCoords[0][0]];\n } else {\n potentiallyFinishCoordinates = [\n sketchCoords[0][0],\n sketchCoords[0][sketchCoords[0].length - 2],\n ];\n }\n }\n if (potentiallyDone) {\n const map = this.getMap();\n for (let i = 0, ii = potentiallyFinishCoordinates.length; i < ii; i++) {\n const finishCoordinate = potentiallyFinishCoordinates[i];\n const finishPixel = map.getPixelFromCoordinate(finishCoordinate);\n const dx = pixel[0] - finishPixel[0];\n const dy = pixel[1] - finishPixel[1];\n const snapTolerance = this.freehand_ ? 1 : this.snapTolerance_;\n at = Math.sqrt(dx * dx + dy * dy) <= snapTolerance;\n if (at) {\n this.finishCoordinate_ = finishCoordinate;\n break;\n }\n }\n }\n }\n return at;\n }\n\n /**\n * @param {import(\"../coordinate\").Coordinate} coordinates Coordinate.\n * @private\n */\n createOrUpdateSketchPoint_(coordinates) {\n if (!this.sketchPoint_) {\n this.sketchPoint_ = new Feature(new Point(coordinates));\n this.updateSketchFeatures_();\n } else {\n const sketchPointGeom = this.sketchPoint_.getGeometry();\n sketchPointGeom.setCoordinates(coordinates);\n }\n }\n\n /**\n * @param {import(\"../geom/Polygon.js\").default} geometry Polygon geometry.\n * @private\n */\n createOrUpdateCustomSketchLine_(geometry) {\n if (!this.sketchLine_) {\n this.sketchLine_ = new Feature();\n }\n const ring = geometry.getLinearRing(0);\n let sketchLineGeom = this.sketchLine_.getGeometry();\n if (!sketchLineGeom) {\n sketchLineGeom = new LineString(\n ring.getFlatCoordinates(),\n ring.getLayout(),\n );\n this.sketchLine_.setGeometry(sketchLineGeom);\n } else {\n sketchLineGeom.setFlatCoordinates(\n ring.getLayout(),\n ring.getFlatCoordinates(),\n );\n sketchLineGeom.changed();\n }\n }\n\n /**\n * Start the drawing.\n * @param {import(\"../coordinate.js\").Coordinate} start Start coordinate.\n * @private\n */\n startDrawing_(start) {\n const projection = this.getMap().getView().getProjection();\n const stride = getStrideForLayout(this.geometryLayout_);\n while (start.length < stride) {\n start.push(0);\n }\n this.finishCoordinate_ = start;\n if (this.mode_ === 'Point') {\n this.sketchCoords_ = start.slice();\n } else if (this.mode_ === 'Polygon') {\n this.sketchCoords_ = [[start.slice(), start.slice()]];\n this.sketchLineCoords_ = this.sketchCoords_[0];\n } else {\n this.sketchCoords_ = [start.slice(), start.slice()];\n }\n if (this.sketchLineCoords_) {\n this.sketchLine_ = new Feature(new LineString(this.sketchLineCoords_));\n }\n const geometry = this.geometryFunction_(\n this.sketchCoords_,\n undefined,\n projection,\n );\n this.sketchFeature_ = new Feature();\n if (this.geometryName_) {\n this.sketchFeature_.setGeometryName(this.geometryName_);\n }\n this.sketchFeature_.setGeometry(geometry);\n this.updateSketchFeatures_();\n this.dispatchEvent(\n new DrawEvent(DrawEventType.DRAWSTART, this.sketchFeature_),\n );\n }\n\n /**\n * Modify the drawing.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @private\n */\n modifyDrawing_(coordinate) {\n const map = this.getMap();\n const geometry = this.sketchFeature_.getGeometry();\n const projection = map.getView().getProjection();\n const stride = getStrideForLayout(this.geometryLayout_);\n let coordinates, last;\n while (coordinate.length < stride) {\n coordinate.push(0);\n }\n if (this.mode_ === 'Point') {\n last = this.sketchCoords_;\n } else if (this.mode_ === 'Polygon') {\n coordinates = /** @type {PolyCoordType} */ (this.sketchCoords_)[0];\n last = coordinates[coordinates.length - 1];\n if (this.atFinish_(map.getPixelFromCoordinate(coordinate))) {\n // snap to finish\n coordinate = this.finishCoordinate_.slice();\n }\n } else {\n coordinates = this.sketchCoords_;\n last = coordinates[coordinates.length - 1];\n }\n last[0] = coordinate[0];\n last[1] = coordinate[1];\n this.geometryFunction_(\n /** @type {!LineCoordType} */ (this.sketchCoords_),\n geometry,\n projection,\n );\n if (this.sketchPoint_) {\n const sketchPointGeom = this.sketchPoint_.getGeometry();\n sketchPointGeom.setCoordinates(coordinate);\n }\n if (geometry.getType() === 'Polygon' && this.mode_ !== 'Polygon') {\n this.createOrUpdateCustomSketchLine_(/** @type {Polygon} */ (geometry));\n } else if (this.sketchLineCoords_) {\n const sketchLineGeom = this.sketchLine_.getGeometry();\n sketchLineGeom.setCoordinates(this.sketchLineCoords_);\n }\n this.updateSketchFeatures_();\n }\n\n /**\n * Add a new coordinate to the drawing.\n * @param {!PointCoordType} coordinate Coordinate\n * @return {Feature} The sketch feature.\n * @private\n */\n addToDrawing_(coordinate) {\n const geometry = this.sketchFeature_.getGeometry();\n const projection = this.getMap().getView().getProjection();\n let done;\n let coordinates;\n const mode = this.mode_;\n if (mode === 'LineString' || mode === 'Circle') {\n this.finishCoordinate_ = coordinate.slice();\n coordinates = /** @type {LineCoordType} */ (this.sketchCoords_);\n if (coordinates.length >= this.maxPoints_) {\n if (this.freehand_) {\n coordinates.pop();\n } else {\n done = true;\n }\n }\n coordinates.push(coordinate.slice());\n this.geometryFunction_(coordinates, geometry, projection);\n } else if (mode === 'Polygon') {\n coordinates = /** @type {PolyCoordType} */ (this.sketchCoords_)[0];\n if (coordinates.length >= this.maxPoints_) {\n if (this.freehand_) {\n coordinates.pop();\n } else {\n done = true;\n }\n }\n coordinates.push(coordinate.slice());\n if (done) {\n this.finishCoordinate_ = coordinates[0];\n }\n this.geometryFunction_(this.sketchCoords_, geometry, projection);\n }\n this.createOrUpdateSketchPoint_(coordinate.slice());\n this.updateSketchFeatures_();\n if (done) {\n return this.finishDrawing();\n }\n return this.sketchFeature_;\n }\n\n /**\n * @param {number} n The number of points to remove.\n */\n removeLastPoints_(n) {\n if (!this.sketchFeature_) {\n return;\n }\n const geometry = this.sketchFeature_.getGeometry();\n const projection = this.getMap().getView().getProjection();\n const mode = this.mode_;\n for (let i = 0; i < n; ++i) {\n let coordinates;\n if (mode === 'LineString' || mode === 'Circle') {\n coordinates = /** @type {LineCoordType} */ (this.sketchCoords_);\n coordinates.splice(-2, 1);\n if (coordinates.length >= 2) {\n this.finishCoordinate_ = coordinates[coordinates.length - 2].slice();\n const finishCoordinate = this.finishCoordinate_.slice();\n coordinates[coordinates.length - 1] = finishCoordinate;\n this.createOrUpdateSketchPoint_(finishCoordinate);\n }\n this.geometryFunction_(coordinates, geometry, projection);\n if (geometry.getType() === 'Polygon' && this.sketchLine_) {\n this.createOrUpdateCustomSketchLine_(\n /** @type {Polygon} */ (geometry),\n );\n }\n } else if (mode === 'Polygon') {\n coordinates = /** @type {PolyCoordType} */ (this.sketchCoords_)[0];\n coordinates.splice(-2, 1);\n const sketchLineGeom = this.sketchLine_.getGeometry();\n if (coordinates.length >= 2) {\n const finishCoordinate = coordinates[coordinates.length - 2].slice();\n coordinates[coordinates.length - 1] = finishCoordinate;\n this.createOrUpdateSketchPoint_(finishCoordinate);\n }\n sketchLineGeom.setCoordinates(coordinates);\n this.geometryFunction_(this.sketchCoords_, geometry, projection);\n }\n\n if (coordinates.length === 1) {\n this.abortDrawing();\n break;\n }\n }\n\n this.updateSketchFeatures_();\n }\n\n /**\n * Remove last point of the feature currently being drawn. Does not do anything when\n * drawing POINT or MULTI_POINT geometries.\n * @api\n */\n removeLastPoint() {\n this.removeLastPoints_(1);\n }\n\n /**\n * Stop drawing and add the sketch feature to the target layer.\n * The {@link module:ol/interaction/Draw~DrawEventType.DRAWEND} event is\n * dispatched before inserting the feature.\n * @return {Feature|null} The drawn feature.\n * @api\n */\n finishDrawing() {\n const sketchFeature = this.abortDrawing_();\n if (!sketchFeature) {\n return null;\n }\n let coordinates = this.sketchCoords_;\n const geometry = sketchFeature.getGeometry();\n const projection = this.getMap().getView().getProjection();\n if (this.mode_ === 'LineString') {\n // remove the redundant last point\n coordinates.pop();\n this.geometryFunction_(coordinates, geometry, projection);\n } else if (this.mode_ === 'Polygon') {\n // remove the redundant last point in ring\n /** @type {PolyCoordType} */ (coordinates)[0].pop();\n this.geometryFunction_(coordinates, geometry, projection);\n coordinates = geometry.getCoordinates();\n }\n\n // cast multi-part geometries\n if (this.type_ === 'MultiPoint') {\n sketchFeature.setGeometry(\n new MultiPoint([/** @type {PointCoordType} */ (coordinates)]),\n );\n } else if (this.type_ === 'MultiLineString') {\n sketchFeature.setGeometry(\n new MultiLineString([/** @type {LineCoordType} */ (coordinates)]),\n );\n } else if (this.type_ === 'MultiPolygon') {\n sketchFeature.setGeometry(\n new MultiPolygon([/** @type {PolyCoordType} */ (coordinates)]),\n );\n }\n\n // First dispatch event to allow full set up of feature\n this.dispatchEvent(new DrawEvent(DrawEventType.DRAWEND, sketchFeature));\n\n // Then insert feature\n if (this.features_) {\n this.features_.push(sketchFeature);\n }\n if (this.source_) {\n this.source_.addFeature(sketchFeature);\n }\n return sketchFeature;\n }\n\n /**\n * Stop drawing without adding the sketch feature to the target layer.\n * @return {Feature|null} The sketch feature (or null if none).\n * @private\n */\n abortDrawing_() {\n this.finishCoordinate_ = null;\n const sketchFeature = this.sketchFeature_;\n this.sketchFeature_ = null;\n this.sketchPoint_ = null;\n this.sketchLine_ = null;\n this.overlay_.getSource().clear(true);\n this.deactivateTrace_();\n return sketchFeature;\n }\n\n /**\n * Stop drawing without adding the sketch feature to the target layer.\n * @api\n */\n abortDrawing() {\n const sketchFeature = this.abortDrawing_();\n if (sketchFeature) {\n this.dispatchEvent(new DrawEvent(DrawEventType.DRAWABORT, sketchFeature));\n }\n }\n\n /**\n * Append coordinates to the end of the geometry that is currently being drawn.\n * This can be used when drawing LineStrings or Polygons. Coordinates will\n * either be appended to the current LineString or the outer ring of the current\n * Polygon. If no geometry is being drawn, a new one will be created.\n * @param {!LineCoordType} coordinates Linear coordinates to be appended to\n * the coordinate array.\n * @api\n */\n appendCoordinates(coordinates) {\n const mode = this.mode_;\n const newDrawing = !this.sketchFeature_;\n if (newDrawing) {\n this.startDrawing_(coordinates[0]);\n }\n /** @type {LineCoordType} */\n let sketchCoords;\n if (mode === 'LineString' || mode === 'Circle') {\n sketchCoords = /** @type {LineCoordType} */ (this.sketchCoords_);\n } else if (mode === 'Polygon') {\n sketchCoords =\n this.sketchCoords_ && this.sketchCoords_.length\n ? /** @type {PolyCoordType} */ (this.sketchCoords_)[0]\n : [];\n } else {\n return;\n }\n\n if (newDrawing) {\n sketchCoords.shift();\n }\n\n // Remove last coordinate from sketch drawing (this coordinate follows cursor position)\n sketchCoords.pop();\n\n // Append coordinate list\n for (let i = 0; i < coordinates.length; i++) {\n this.addToDrawing_(coordinates[i]);\n }\n\n const ending = coordinates[coordinates.length - 1];\n // Duplicate last coordinate for sketch drawing (cursor position)\n this.sketchFeature_ = this.addToDrawing_(ending);\n this.modifyDrawing_(ending);\n }\n\n /**\n * Initiate draw mode by starting from an existing geometry which will\n * receive new additional points. This only works on features with\n * `LineString` geometries, where the interaction will extend lines by adding\n * points to the end of the coordinates array.\n * This will change the original feature, instead of drawing a copy.\n *\n * The function will dispatch a `drawstart` event.\n *\n * @param {!Feature} feature Feature to be extended.\n * @api\n */\n extend(feature) {\n const geometry = feature.getGeometry();\n const lineString = geometry;\n this.sketchFeature_ = feature;\n this.sketchCoords_ = lineString.getCoordinates();\n const last = this.sketchCoords_[this.sketchCoords_.length - 1];\n this.finishCoordinate_ = last.slice();\n this.sketchCoords_.push(last.slice());\n this.sketchPoint_ = new Feature(new Point(last));\n this.updateSketchFeatures_();\n this.dispatchEvent(\n new DrawEvent(DrawEventType.DRAWSTART, this.sketchFeature_),\n );\n }\n\n /**\n * Redraw the sketch features.\n * @private\n */\n updateSketchFeatures_() {\n const sketchFeatures = [];\n if (this.sketchFeature_) {\n sketchFeatures.push(this.sketchFeature_);\n }\n if (this.sketchLine_) {\n sketchFeatures.push(this.sketchLine_);\n }\n if (this.sketchPoint_) {\n sketchFeatures.push(this.sketchPoint_);\n }\n const overlaySource = this.overlay_.getSource();\n overlaySource.clear(true);\n overlaySource.addFeatures(sketchFeatures);\n }\n\n /**\n * @private\n */\n updateState_() {\n const map = this.getMap();\n const active = this.getActive();\n if (!map || !active) {\n this.abortDrawing();\n }\n this.overlay_.setMap(active ? map : null);\n }\n}\n\n/**\n * @return {import(\"../style/Style.js\").StyleFunction} Styles.\n */\nfunction getDefaultStyleFunction() {\n const styles = createEditingStyle();\n return function (feature, resolution) {\n return styles[feature.getGeometry().getType()];\n };\n}\n\n/**\n * Create a `geometryFunction` for `type: 'Circle'` that will create a regular\n * polygon with a user specified number of sides and start angle instead of a\n * {@link import(\"../geom/Circle.js\").Circle} geometry.\n * @param {number} [sides] Number of sides of the regular polygon.\n * Default is 32.\n * @param {number} [angle] Angle of the first point in counter-clockwise\n * radians. 0 means East.\n * Default is the angle defined by the heading from the center of the\n * regular polygon to the current pointer position.\n * @return {GeometryFunction} Function that draws a polygon.\n * @api\n */\nexport function createRegularPolygon(sides, angle) {\n return function (coordinates, geometry, projection) {\n const center = fromUserCoordinate(\n /** @type {LineCoordType} */ (coordinates)[0],\n projection,\n );\n const end = fromUserCoordinate(\n /** @type {LineCoordType} */ (coordinates)[coordinates.length - 1],\n projection,\n );\n const radius = Math.sqrt(squaredCoordinateDistance(center, end));\n geometry = geometry || fromCircle(new Circle(center), sides);\n\n let internalAngle = angle;\n if (!angle && angle !== 0) {\n const x = end[0] - center[0];\n const y = end[1] - center[1];\n internalAngle = Math.atan2(y, x);\n }\n makeRegular(\n /** @type {Polygon} */ (geometry),\n center,\n radius,\n internalAngle,\n );\n\n const userProjection = getUserProjection();\n if (userProjection) {\n geometry.transform(projection, userProjection);\n }\n return geometry;\n };\n}\n\n/**\n * Create a `geometryFunction` that will create a box-shaped polygon (aligned\n * with the coordinate system axes). Use this with the draw interaction and\n * `type: 'Circle'` to return a box instead of a circle geometry.\n * @return {GeometryFunction} Function that draws a box-shaped polygon.\n * @api\n */\nexport function createBox() {\n return function (coordinates, geometry, projection) {\n const extent = boundingExtent(\n /** @type {LineCoordType} */ ([\n coordinates[0],\n coordinates[coordinates.length - 1],\n ]).map(function (coordinate) {\n return fromUserCoordinate(coordinate, projection);\n }),\n );\n const boxCoordinates = [\n [\n getBottomLeft(extent),\n getBottomRight(extent),\n getTopRight(extent),\n getTopLeft(extent),\n getBottomLeft(extent),\n ],\n ];\n if (geometry) {\n geometry.setCoordinates(boxCoordinates);\n } else {\n geometry = new Polygon(boxCoordinates);\n }\n const userProjection = getUserProjection();\n if (userProjection) {\n geometry.transform(projection, userProjection);\n }\n return geometry;\n };\n}\n\n/**\n * Get the drawing mode. The mode for multi-part geometries is the same as for\n * their single-part cousins.\n * @param {import(\"../geom/Geometry.js\").Type} type Geometry type.\n * @return {Mode} Drawing mode.\n */\nfunction getMode(type) {\n switch (type) {\n case 'Point':\n case 'MultiPoint':\n return 'Point';\n case 'LineString':\n case 'MultiLineString':\n return 'LineString';\n case 'Polygon':\n case 'MultiPolygon':\n return 'Polygon';\n case 'Circle':\n return 'Circle';\n default:\n throw new Error('Invalid type: ' + type);\n }\n}\n\nexport default Draw;\n","/**\n * @module ol/interaction/Extent\n */\nimport Event from '../events/Event.js';\nimport Feature from '../Feature.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport Point from '../geom/Point.js';\nimport PointerInteraction from './Pointer.js';\nimport VectorLayer from '../layer/Vector.js';\nimport VectorSource from '../source/Vector.js';\nimport {always} from '../events/condition.js';\nimport {boundingExtent, getArea} from '../extent.js';\nimport {\n closestOnSegment,\n distance as coordinateDistance,\n squaredDistance as squaredCoordinateDistance,\n squaredDistanceToSegment,\n} from '../coordinate.js';\nimport {createEditingStyle} from '../style/Style.js';\nimport {fromExtent as polygonFromExtent} from '../geom/Polygon.js';\nimport {toUserExtent} from '../proj.js';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.always}.\n * @property {import(\"../extent.js\").Extent} [extent] Initial extent. Defaults to no\n * initial extent.\n * @property {import(\"../style/Style.js\").StyleLike} [boxStyle]\n * Style for the drawn extent box. Defaults to the `Polygon` editing style\n * documented in {@link module:ol/style/Style~Style}\n * @property {number} [pixelTolerance=10] Pixel tolerance for considering the\n * pointer close enough to a segment or vertex for editing.\n * @property {import(\"../style/Style.js\").StyleLike} [pointerStyle]\n * Style for the cursor used to draw the extent. Defaults to the `Point` editing style\n * documented in {@link module:ol/style/Style~Style}\n * @property {boolean} [wrapX=false] Wrap the drawn extent across multiple maps\n * in the X direction? Only affects visuals, not functionality.\n */\n\n/**\n * @enum {string}\n */\nconst ExtentEventType = {\n /**\n * Triggered after the extent is changed\n * @event ExtentEvent#extentchanged\n * @api\n */\n EXTENTCHANGED: 'extentchanged',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Extent~Extent} instances are\n * instances of this type.\n */\nexport class ExtentEvent extends Event {\n /**\n * @param {import(\"../extent.js\").Extent} extent the new extent\n */\n constructor(extent) {\n super(ExtentEventType.EXTENTCHANGED);\n\n /**\n * The current extent.\n * @type {import(\"../extent.js\").Extent}\n * @api\n */\n this.extent = extent;\n }\n}\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'extentchanged', ExtentEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} ExtentOnSignature\n */\n\n/**\n * @classdesc\n * Allows the user to draw a vector box by clicking and dragging on the map.\n * Once drawn, the vector box can be modified by dragging its vertices or edges.\n * This interaction is only supported for mouse devices.\n *\n * @fires ExtentEvent\n * @api\n */\nclass Extent extends PointerInteraction {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options || {};\n\n super(/** @type {import(\"./Pointer.js\").Options} */ (options));\n\n /***\n * @type {ExtentOnSignature}\n */\n this.on;\n\n /***\n * @type {ExtentOnSignature}\n */\n this.once;\n\n /***\n * @type {ExtentOnSignature}\n */\n this.un;\n\n /**\n * Condition\n * @type {import(\"../events/condition.js\").Condition}\n * @private\n */\n this.condition_ = options.condition ? options.condition : always;\n\n /**\n * Extent of the drawn box\n * @type {import(\"../extent.js\").Extent}\n * @private\n */\n this.extent_ = null;\n\n /**\n * Handler for pointer move events\n * @type {function (import(\"../coordinate.js\").Coordinate): import(\"../extent.js\").Extent|null}\n * @private\n */\n this.pointerHandler_ = null;\n\n /**\n * Pixel threshold to snap to extent\n * @type {number}\n * @private\n */\n this.pixelTolerance_ =\n options.pixelTolerance !== undefined ? options.pixelTolerance : 10;\n\n /**\n * Is the pointer snapped to an extent vertex\n * @type {boolean}\n * @private\n */\n this.snappedToVertex_ = false;\n\n /**\n * Feature for displaying the visible extent\n * @type {Feature}\n * @private\n */\n this.extentFeature_ = null;\n\n /**\n * Feature for displaying the visible pointer\n * @type {Feature}\n * @private\n */\n this.vertexFeature_ = null;\n\n if (!options) {\n options = {};\n }\n\n /**\n * Layer for the extentFeature\n * @type {VectorLayer}\n * @private\n */\n this.extentOverlay_ = new VectorLayer({\n source: new VectorSource({\n useSpatialIndex: false,\n wrapX: !!options.wrapX,\n }),\n style: options.boxStyle\n ? options.boxStyle\n : getDefaultExtentStyleFunction(),\n updateWhileAnimating: true,\n updateWhileInteracting: true,\n });\n\n /**\n * Layer for the vertexFeature\n * @type {VectorLayer}\n * @private\n */\n this.vertexOverlay_ = new VectorLayer({\n source: new VectorSource({\n useSpatialIndex: false,\n wrapX: !!options.wrapX,\n }),\n style: options.pointerStyle\n ? options.pointerStyle\n : getDefaultPointerStyleFunction(),\n updateWhileAnimating: true,\n updateWhileInteracting: true,\n });\n\n if (options.extent) {\n this.setExtent(options.extent);\n }\n }\n\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel cursor location\n * @param {import(\"../Map.js\").default} map map\n * @return {import(\"../coordinate.js\").Coordinate|null} snapped vertex on extent\n * @private\n */\n snapToVertex_(pixel, map) {\n const pixelCoordinate = map.getCoordinateFromPixelInternal(pixel);\n const sortByDistance = function (a, b) {\n return (\n squaredDistanceToSegment(pixelCoordinate, a) -\n squaredDistanceToSegment(pixelCoordinate, b)\n );\n };\n const extent = this.getExtentInternal();\n if (extent) {\n //convert extents to line segments and find the segment closest to pixelCoordinate\n const segments = getSegments(extent);\n segments.sort(sortByDistance);\n const closestSegment = segments[0];\n\n let vertex = closestOnSegment(pixelCoordinate, closestSegment);\n const vertexPixel = map.getPixelFromCoordinateInternal(vertex);\n\n //if the distance is within tolerance, snap to the segment\n if (coordinateDistance(pixel, vertexPixel) <= this.pixelTolerance_) {\n //test if we should further snap to a vertex\n const pixel1 = map.getPixelFromCoordinateInternal(closestSegment[0]);\n const pixel2 = map.getPixelFromCoordinateInternal(closestSegment[1]);\n const squaredDist1 = squaredCoordinateDistance(vertexPixel, pixel1);\n const squaredDist2 = squaredCoordinateDistance(vertexPixel, pixel2);\n const dist = Math.sqrt(Math.min(squaredDist1, squaredDist2));\n this.snappedToVertex_ = dist <= this.pixelTolerance_;\n if (this.snappedToVertex_) {\n vertex =\n squaredDist1 > squaredDist2 ? closestSegment[1] : closestSegment[0];\n }\n return vertex;\n }\n }\n return null;\n }\n\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent pointer move event\n * @private\n */\n handlePointerMove_(mapBrowserEvent) {\n const pixel = mapBrowserEvent.pixel;\n const map = mapBrowserEvent.map;\n\n let vertex = this.snapToVertex_(pixel, map);\n if (!vertex) {\n vertex = map.getCoordinateFromPixelInternal(pixel);\n }\n this.createOrUpdatePointerFeature_(vertex);\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent extent\n * @return {Feature} extent as featrue\n * @private\n */\n createOrUpdateExtentFeature_(extent) {\n let extentFeature = this.extentFeature_;\n\n if (!extentFeature) {\n if (!extent) {\n extentFeature = new Feature({});\n } else {\n extentFeature = new Feature(polygonFromExtent(extent));\n }\n this.extentFeature_ = extentFeature;\n this.extentOverlay_.getSource().addFeature(extentFeature);\n } else {\n if (!extent) {\n extentFeature.setGeometry(undefined);\n } else {\n extentFeature.setGeometry(polygonFromExtent(extent));\n }\n }\n return extentFeature;\n }\n\n /**\n * @param {import(\"../coordinate.js\").Coordinate} vertex location of feature\n * @return {Feature} vertex as feature\n * @private\n */\n createOrUpdatePointerFeature_(vertex) {\n let vertexFeature = this.vertexFeature_;\n if (!vertexFeature) {\n vertexFeature = new Feature(new Point(vertex));\n this.vertexFeature_ = vertexFeature;\n this.vertexOverlay_.getSource().addFeature(vertexFeature);\n } else {\n const geometry = vertexFeature.getGeometry();\n geometry.setCoordinates(vertex);\n }\n return vertexFeature;\n }\n\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n */\n handleEvent(mapBrowserEvent) {\n if (!mapBrowserEvent.originalEvent || !this.condition_(mapBrowserEvent)) {\n return true;\n }\n //display pointer (if not dragging)\n if (\n mapBrowserEvent.type == MapBrowserEventType.POINTERMOVE &&\n !this.handlingDownUpSequence\n ) {\n this.handlePointerMove_(mapBrowserEvent);\n }\n //call pointer to determine up/down/drag\n super.handleEvent(mapBrowserEvent);\n //return false to stop propagation\n return false;\n }\n\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n handleDownEvent(mapBrowserEvent) {\n const pixel = mapBrowserEvent.pixel;\n const map = mapBrowserEvent.map;\n\n const extent = this.getExtentInternal();\n let vertex = this.snapToVertex_(pixel, map);\n\n //find the extent corner opposite the passed corner\n const getOpposingPoint = function (point) {\n let x_ = null;\n let y_ = null;\n if (point[0] == extent[0]) {\n x_ = extent[2];\n } else if (point[0] == extent[2]) {\n x_ = extent[0];\n }\n if (point[1] == extent[1]) {\n y_ = extent[3];\n } else if (point[1] == extent[3]) {\n y_ = extent[1];\n }\n if (x_ !== null && y_ !== null) {\n return [x_, y_];\n }\n return null;\n };\n if (vertex && extent) {\n const x =\n vertex[0] == extent[0] || vertex[0] == extent[2] ? vertex[0] : null;\n const y =\n vertex[1] == extent[1] || vertex[1] == extent[3] ? vertex[1] : null;\n\n //snap to point\n if (x !== null && y !== null) {\n this.pointerHandler_ = getPointHandler(getOpposingPoint(vertex));\n //snap to edge\n } else if (x !== null) {\n this.pointerHandler_ = getEdgeHandler(\n getOpposingPoint([x, extent[1]]),\n getOpposingPoint([x, extent[3]]),\n );\n } else if (y !== null) {\n this.pointerHandler_ = getEdgeHandler(\n getOpposingPoint([extent[0], y]),\n getOpposingPoint([extent[2], y]),\n );\n }\n //no snap - new bbox\n } else {\n vertex = map.getCoordinateFromPixelInternal(pixel);\n this.setExtent([vertex[0], vertex[1], vertex[0], vertex[1]]);\n this.pointerHandler_ = getPointHandler(vertex);\n }\n return true; //event handled; start downup sequence\n }\n\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n handleDragEvent(mapBrowserEvent) {\n if (this.pointerHandler_) {\n const pixelCoordinate = mapBrowserEvent.coordinate;\n this.setExtent(this.pointerHandler_(pixelCoordinate));\n this.createOrUpdatePointerFeature_(pixelCoordinate);\n }\n }\n\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n handleUpEvent(mapBrowserEvent) {\n this.pointerHandler_ = null;\n //If bbox is zero area, set to null;\n const extent = this.getExtentInternal();\n if (!extent || getArea(extent) === 0) {\n this.setExtent(null);\n }\n return false; //Stop handling downup sequence\n }\n\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../Map.js\").default} map Map.\n */\n setMap(map) {\n this.extentOverlay_.setMap(map);\n this.vertexOverlay_.setMap(map);\n super.setMap(map);\n }\n\n /**\n * Returns the current drawn extent in the view projection (or user projection if set)\n *\n * @return {import(\"../extent.js\").Extent} Drawn extent in the view projection.\n * @api\n */\n getExtent() {\n return toUserExtent(\n this.getExtentInternal(),\n this.getMap().getView().getProjection(),\n );\n }\n\n /**\n * Returns the current drawn extent in the view projection\n *\n * @return {import(\"../extent.js\").Extent} Drawn extent in the view projection.\n * @api\n */\n getExtentInternal() {\n return this.extent_;\n }\n\n /**\n * Manually sets the drawn extent, using the view projection.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent\n * @api\n */\n setExtent(extent) {\n //Null extent means no bbox\n this.extent_ = extent ? extent : null;\n this.createOrUpdateExtentFeature_(extent);\n this.dispatchEvent(new ExtentEvent(this.extent_));\n }\n}\n\n/**\n * Returns the default style for the drawn bbox\n *\n * @return {import(\"../style/Style.js\").StyleFunction} Default Extent style\n */\nfunction getDefaultExtentStyleFunction() {\n const style = createEditingStyle();\n return function (feature, resolution) {\n return style['Polygon'];\n };\n}\n\n/**\n * Returns the default style for the pointer\n *\n * @return {import(\"../style/Style.js\").StyleFunction} Default pointer style\n */\nfunction getDefaultPointerStyleFunction() {\n const style = createEditingStyle();\n return function (feature, resolution) {\n return style['Point'];\n };\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} fixedPoint corner that will be unchanged in the new extent\n * @return {function (import(\"../coordinate.js\").Coordinate): import(\"../extent.js\").Extent} event handler\n */\nfunction getPointHandler(fixedPoint) {\n return function (point) {\n return boundingExtent([fixedPoint, point]);\n };\n}\n\n/**\n * @param {import(\"../coordinate.js\").Coordinate} fixedP1 first corner that will be unchanged in the new extent\n * @param {import(\"../coordinate.js\").Coordinate} fixedP2 second corner that will be unchanged in the new extent\n * @return {function (import(\"../coordinate.js\").Coordinate): import(\"../extent.js\").Extent|null} event handler\n */\nfunction getEdgeHandler(fixedP1, fixedP2) {\n if (fixedP1[0] == fixedP2[0]) {\n return function (point) {\n return boundingExtent([fixedP1, [point[0], fixedP2[1]]]);\n };\n }\n if (fixedP1[1] == fixedP2[1]) {\n return function (point) {\n return boundingExtent([fixedP1, [fixedP2[0], point[1]]]);\n };\n }\n return null;\n}\n\n/**\n * @param {import(\"../extent.js\").Extent} extent extent\n * @return {Array>} extent line segments\n */\nfunction getSegments(extent) {\n return [\n [\n [extent[0], extent[1]],\n [extent[0], extent[3]],\n ],\n [\n [extent[0], extent[3]],\n [extent[2], extent[3]],\n ],\n [\n [extent[2], extent[3]],\n [extent[2], extent[1]],\n ],\n [\n [extent[2], extent[1]],\n [extent[0], extent[1]],\n ],\n ];\n}\n\nexport default Extent;\n","/**\n * @module ol/events/SnapEvent\n */\nimport Event from './Event.js';\n\n/**\n * @enum {string}\n */\nexport const SnapEventType = {\n /**\n * Triggered upon snapping to vertex or edge\n * @event SnapEvent#snap\n * @api\n */\n SNAP: 'snap',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Snap~Snap} instances are instances of this\n */\nexport class SnapEvent extends Event {\n /**\n * @param {SnapEventType} type Type.\n * @param {Object} options Options.\n * @param {import(\"../coordinate.js\").Coordinate} options.vertex The snapped vertex.\n * @param {import(\"../coordinate.js\").Coordinate} options.vertexPixel The pixel of the snapped vertex.\n * @param {import(\"../Feature.js\").default} options.feature The feature being snapped.\n * @param {Array|null} options.segment Segment, or `null` if snapped to a vertex.\n */\n constructor(type, options) {\n super(type);\n /**\n * The Map coordinate of the snapped point.\n * @type {import(\"../coordinate.js\").Coordinate}\n * @api\n */\n this.vertex = options.vertex;\n /**\n * The Map pixel of the snapped point.\n * @type {Array&Array}\n * @api\n */\n this.vertexPixel = options.vertexPixel;\n /**\n * The feature closest to the snapped point.\n * @type {import(\"../Feature.js\").default}\n * @api\n */\n this.feature = options.feature;\n /**\n * The segment closest to the snapped point, if snapped to a segment.\n * @type {Array|null}\n * @api\n */\n this.segment = options.segment;\n }\n}\n","/**\n * @module ol/interaction/Snap\n */\nimport CollectionEventType from '../CollectionEventType.js';\nimport EventType from '../events/EventType.js';\nimport PointerInteraction from './Pointer.js';\nimport RBush from '../structs/RBush.js';\nimport VectorEventType from '../source/VectorEventType.js';\nimport {FALSE, TRUE} from '../functions.js';\nimport {SnapEvent, SnapEventType} from '../events/SnapEvent.js';\nimport {boundingExtent, buffer, createEmpty} from '../extent.js';\nimport {\n closestOnCircle,\n closestOnSegment,\n squaredDistance,\n} from '../coordinate.js';\nimport {fromCircle} from '../geom/Polygon.js';\nimport {\n fromUserCoordinate,\n getUserProjection,\n toUserCoordinate,\n toUserExtent,\n} from '../proj.js';\nimport {getUid} from '../util.js';\nimport {listen, unlistenByKey} from '../events.js';\n\n/**\n * @typedef {Object} Result\n * @property {import(\"../coordinate.js\").Coordinate|null} vertex Vertex.\n * @property {import(\"../pixel.js\").Pixel|null} vertexPixel VertexPixel.\n * @property {import(\"../Feature.js\").default|null} feature Feature.\n * @property {Array|null} segment Segment, or `null` if snapped to a vertex.\n */\n\n/**\n * @typedef {Object} SegmentData\n * @property {import(\"../Feature.js\").default} feature Feature.\n * @property {Array} segment Segment.\n */\n\n/**\n * @typedef {Object} Options\n * @property {import(\"../Collection.js\").default} [features] Snap to these features. Either this option or source should be provided.\n * @property {boolean} [edge=true] Snap to edges.\n * @property {boolean} [vertex=true] Snap to vertices.\n * @property {number} [pixelTolerance=10] Pixel tolerance for considering the pointer close enough to a segment or\n * vertex for snapping.\n * @property {import(\"../source/Vector.js\").default} [source] Snap to features from this source. Either this option or features should be provided\n */\n\n/**\n * @param {import(\"../source/Vector.js\").VectorSourceEvent|import(\"../Collection.js\").CollectionEvent} evt Event.\n * @return {import(\"../Feature.js\").default|null} Feature.\n */\nfunction getFeatureFromEvent(evt) {\n if (\n /** @type {import(\"../source/Vector.js\").VectorSourceEvent} */ (evt).feature\n ) {\n return /** @type {import(\"../source/Vector.js\").VectorSourceEvent} */ (evt)\n .feature;\n }\n if (\n /** @type {import(\"../Collection.js\").CollectionEvent} */ (\n evt\n ).element\n ) {\n return /** @type {import(\"../Collection.js\").CollectionEvent} */ (\n evt\n ).element;\n }\n return null;\n}\n\nconst tempSegment = [];\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'snap', SnapEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} SnapOnSignature\n */\n\n/**\n * @classdesc\n * Handles snapping of vector features while modifying or drawing them. The\n * features can come from a {@link module:ol/source/Vector~VectorSource} or {@link module:ol/Collection~Collection}\n * Any interaction object that allows the user to interact\n * with the features using the mouse can benefit from the snapping, as long\n * as it is added before.\n *\n * The snap interaction modifies map browser event `coordinate` and `pixel`\n * properties to force the snap to occur to any interaction that them.\n *\n * Example:\n *\n * import Snap from 'ol/interaction/Snap.js';\n *\n * const snap = new Snap({\n * source: source\n * });\n *\n * map.addInteraction(snap);\n *\n * @fires SnapEvent\n * @api\n */\nclass Snap extends PointerInteraction {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options ? options : {};\n\n const pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (\n options\n );\n\n if (!pointerOptions.handleDownEvent) {\n pointerOptions.handleDownEvent = TRUE;\n }\n\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n\n super(pointerOptions);\n\n /***\n * @type {SnapOnSignature}\n */\n this.on;\n\n /***\n * @type {SnapOnSignature}\n */\n this.once;\n\n /***\n * @type {SnapOnSignature}\n */\n this.un;\n\n /**\n * @type {import(\"../source/Vector.js\").default|null}\n * @private\n */\n this.source_ = options.source ? options.source : null;\n\n /**\n * @private\n * @type {boolean}\n */\n this.vertex_ = options.vertex !== undefined ? options.vertex : true;\n\n /**\n * @private\n * @type {boolean}\n */\n this.edge_ = options.edge !== undefined ? options.edge : true;\n\n /**\n * @type {import(\"../Collection.js\").default|null}\n * @private\n */\n this.features_ = options.features ? options.features : null;\n\n /**\n * @type {Array}\n * @private\n */\n this.featuresListenerKeys_ = [];\n\n /**\n * @type {Object}\n * @private\n */\n this.featureChangeListenerKeys_ = {};\n\n /**\n * Extents are preserved so indexed segment can be quickly removed\n * when its feature geometry changes\n * @type {Object}\n * @private\n */\n this.indexedFeaturesExtents_ = {};\n\n /**\n * If a feature geometry changes while a pointer drag|move event occurs, the\n * feature doesn't get updated right away. It will be at the next 'pointerup'\n * event fired.\n * @type {!Object}\n * @private\n */\n this.pendingFeatures_ = {};\n\n /**\n * @type {number}\n * @private\n */\n this.pixelTolerance_ =\n options.pixelTolerance !== undefined ? options.pixelTolerance : 10;\n\n /**\n * Segment RTree for each layer\n * @type {import(\"../structs/RBush.js\").default}\n * @private\n */\n this.rBush_ = new RBush();\n\n /**\n * @const\n * @private\n * @type {Object>, import(\"../geom/Geometry.js\").default): void>}\n */\n this.GEOMETRY_SEGMENTERS_ = {\n 'Point': this.segmentPointGeometry_.bind(this),\n 'LineString': this.segmentLineStringGeometry_.bind(this),\n 'LinearRing': this.segmentLineStringGeometry_.bind(this),\n 'Polygon': this.segmentPolygonGeometry_.bind(this),\n 'MultiPoint': this.segmentMultiPointGeometry_.bind(this),\n 'MultiLineString': this.segmentMultiLineStringGeometry_.bind(this),\n 'MultiPolygon': this.segmentMultiPolygonGeometry_.bind(this),\n 'GeometryCollection': this.segmentGeometryCollectionGeometry_.bind(this),\n 'Circle': this.segmentCircleGeometry_.bind(this),\n };\n }\n\n /**\n * Add a feature to the collection of features that we may snap to.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {boolean} [register] Whether to listen to the feature change or not\n * Defaults to `true`.\n * @api\n */\n addFeature(feature, register) {\n register = register !== undefined ? register : true;\n const feature_uid = getUid(feature);\n const geometry = feature.getGeometry();\n if (geometry) {\n const segmenter = this.GEOMETRY_SEGMENTERS_[geometry.getType()];\n if (segmenter) {\n this.indexedFeaturesExtents_[feature_uid] =\n geometry.getExtent(createEmpty());\n const segments =\n /** @type {Array>} */ ([]);\n segmenter(segments, geometry);\n if (segments.length === 1) {\n this.rBush_.insert(boundingExtent(segments[0]), {\n feature: feature,\n segment: segments[0],\n });\n } else if (segments.length > 1) {\n const extents = segments.map((s) => boundingExtent(s));\n const segmentsData = segments.map((segment) => ({\n feature: feature,\n segment: segment,\n }));\n this.rBush_.load(extents, segmentsData);\n }\n }\n }\n\n if (register) {\n this.featureChangeListenerKeys_[feature_uid] = listen(\n feature,\n EventType.CHANGE,\n this.handleFeatureChange_,\n this,\n );\n }\n }\n\n /**\n * @return {import(\"../Collection.js\").default|Array} Features.\n * @private\n */\n getFeatures_() {\n /** @type {import(\"../Collection.js\").default|Array} */\n let features;\n if (this.features_) {\n features = this.features_;\n } else if (this.source_) {\n features = this.source_.getFeatures();\n }\n return features;\n }\n\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} evt Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n handleEvent(evt) {\n const result = this.snapTo(evt.pixel, evt.coordinate, evt.map);\n if (result) {\n evt.coordinate = result.vertex.slice(0, 2);\n evt.pixel = result.vertexPixel;\n this.dispatchEvent(\n new SnapEvent(SnapEventType.SNAP, {\n vertex: evt.coordinate,\n vertexPixel: evt.pixel,\n feature: result.feature,\n segment: result.segment,\n }),\n );\n }\n return super.handleEvent(evt);\n }\n\n /**\n * @param {import(\"../source/Vector.js\").VectorSourceEvent|import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n handleFeatureAdd_(evt) {\n const feature = getFeatureFromEvent(evt);\n if (feature) {\n this.addFeature(feature);\n }\n }\n\n /**\n * @param {import(\"../source/Vector.js\").VectorSourceEvent|import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n handleFeatureRemove_(evt) {\n const feature = getFeatureFromEvent(evt);\n if (feature) {\n this.removeFeature(feature);\n }\n }\n\n /**\n * @param {import(\"../events/Event.js\").default} evt Event.\n * @private\n */\n handleFeatureChange_(evt) {\n const feature = /** @type {import(\"../Feature.js\").default} */ (evt.target);\n if (this.handlingDownUpSequence) {\n const uid = getUid(feature);\n if (!(uid in this.pendingFeatures_)) {\n this.pendingFeatures_[uid] = feature;\n }\n } else {\n this.updateFeature_(feature);\n }\n }\n\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} evt Event.\n * @return {boolean} If the event was consumed.\n */\n handleUpEvent(evt) {\n const featuresToUpdate = Object.values(this.pendingFeatures_);\n if (featuresToUpdate.length) {\n featuresToUpdate.forEach(this.updateFeature_.bind(this));\n this.pendingFeatures_ = {};\n }\n return false;\n }\n\n /**\n * Remove a feature from the collection of features that we may snap to.\n * @param {import(\"../Feature.js\").default} feature Feature\n * @param {boolean} [unlisten] Whether to unlisten to the feature change\n * or not. Defaults to `true`.\n * @api\n */\n removeFeature(feature, unlisten) {\n const unregister = unlisten !== undefined ? unlisten : true;\n const feature_uid = getUid(feature);\n const extent = this.indexedFeaturesExtents_[feature_uid];\n if (extent) {\n const rBush = this.rBush_;\n const nodesToRemove = [];\n rBush.forEachInExtent(extent, function (node) {\n if (feature === node.feature) {\n nodesToRemove.push(node);\n }\n });\n for (let i = nodesToRemove.length - 1; i >= 0; --i) {\n rBush.remove(nodesToRemove[i]);\n }\n }\n\n if (unregister) {\n unlistenByKey(this.featureChangeListenerKeys_[feature_uid]);\n delete this.featureChangeListenerKeys_[feature_uid];\n }\n }\n\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../Map.js\").default} map Map.\n */\n setMap(map) {\n const currentMap = this.getMap();\n const keys = this.featuresListenerKeys_;\n const features = /** @type {Array} */ (\n this.getFeatures_()\n );\n\n if (currentMap) {\n keys.forEach(unlistenByKey);\n keys.length = 0;\n this.rBush_.clear();\n Object.values(this.featureChangeListenerKeys_).forEach(unlistenByKey);\n this.featureChangeListenerKeys_ = {};\n }\n super.setMap(map);\n\n if (map) {\n if (this.features_) {\n keys.push(\n listen(\n this.features_,\n CollectionEventType.ADD,\n this.handleFeatureAdd_,\n this,\n ),\n listen(\n this.features_,\n CollectionEventType.REMOVE,\n this.handleFeatureRemove_,\n this,\n ),\n );\n } else if (this.source_) {\n keys.push(\n listen(\n this.source_,\n VectorEventType.ADDFEATURE,\n this.handleFeatureAdd_,\n this,\n ),\n listen(\n this.source_,\n VectorEventType.REMOVEFEATURE,\n this.handleFeatureRemove_,\n this,\n ),\n );\n }\n features.forEach((feature) => this.addFeature(feature));\n }\n }\n\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel\n * @param {import(\"../coordinate.js\").Coordinate} pixelCoordinate Coordinate\n * @param {import(\"../Map.js\").default} map Map.\n * @return {Result|null} Snap result\n */\n snapTo(pixel, pixelCoordinate, map) {\n const projection = map.getView().getProjection();\n const projectedCoordinate = fromUserCoordinate(pixelCoordinate, projection);\n\n const box = toUserExtent(\n buffer(\n boundingExtent([projectedCoordinate]),\n map.getView().getResolution() * this.pixelTolerance_,\n ),\n projection,\n );\n\n const segments = this.rBush_.getInExtent(box);\n const segmentsLength = segments.length;\n if (segmentsLength === 0) {\n return null;\n }\n\n let closestVertex;\n let minSquaredDistance = Infinity;\n let closestFeature;\n let closestSegment = null;\n\n const squaredPixelTolerance = this.pixelTolerance_ * this.pixelTolerance_;\n const getResult = () => {\n if (closestVertex) {\n const vertexPixel = map.getPixelFromCoordinate(closestVertex);\n const squaredPixelDistance = squaredDistance(pixel, vertexPixel);\n if (squaredPixelDistance <= squaredPixelTolerance) {\n return {\n vertex: closestVertex,\n vertexPixel: [\n Math.round(vertexPixel[0]),\n Math.round(vertexPixel[1]),\n ],\n feature: closestFeature,\n segment: closestSegment,\n };\n }\n }\n return null;\n };\n\n if (this.vertex_) {\n for (let i = 0; i < segmentsLength; ++i) {\n const segmentData = segments[i];\n if (segmentData.feature.getGeometry().getType() !== 'Circle') {\n segmentData.segment.forEach((vertex) => {\n const tempVertexCoord = fromUserCoordinate(vertex, projection);\n const delta = squaredDistance(projectedCoordinate, tempVertexCoord);\n if (delta < minSquaredDistance) {\n closestVertex = vertex;\n minSquaredDistance = delta;\n closestFeature = segmentData.feature;\n }\n });\n }\n }\n const result = getResult();\n if (result) {\n return result;\n }\n }\n\n if (this.edge_) {\n for (let i = 0; i < segmentsLength; ++i) {\n let vertex = null;\n const segmentData = segments[i];\n if (segmentData.feature.getGeometry().getType() === 'Circle') {\n let circleGeometry = segmentData.feature.getGeometry();\n const userProjection = getUserProjection();\n if (userProjection) {\n circleGeometry = circleGeometry\n .clone()\n .transform(userProjection, projection);\n }\n vertex = closestOnCircle(\n projectedCoordinate,\n /** @type {import(\"../geom/Circle.js\").default} */ (circleGeometry),\n );\n } else {\n const [segmentStart, segmentEnd] = segmentData.segment;\n // points have only one coordinate\n if (segmentEnd) {\n tempSegment[0] = fromUserCoordinate(segmentStart, projection);\n tempSegment[1] = fromUserCoordinate(segmentEnd, projection);\n vertex = closestOnSegment(projectedCoordinate, tempSegment);\n }\n }\n if (vertex) {\n const delta = squaredDistance(projectedCoordinate, vertex);\n if (delta < minSquaredDistance) {\n closestVertex = toUserCoordinate(vertex, projection);\n closestSegment =\n segmentData.feature.getGeometry().getType() === 'Circle'\n ? null\n : segmentData.segment;\n minSquaredDistance = delta;\n closestFeature = segmentData.feature;\n }\n }\n }\n\n const result = getResult();\n if (result) {\n return result;\n }\n }\n\n return null;\n }\n\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n updateFeature_(feature) {\n this.removeFeature(feature, false);\n this.addFeature(feature, false);\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/Circle.js\").default} geometry Geometry.\n * @private\n */\n segmentCircleGeometry_(segments, geometry) {\n const projection = this.getMap().getView().getProjection();\n let circleGeometry = geometry;\n const userProjection = getUserProjection();\n if (userProjection) {\n circleGeometry = circleGeometry\n .clone()\n .transform(userProjection, projection);\n }\n const polygon = fromCircle(circleGeometry);\n if (userProjection) {\n polygon.transform(projection, userProjection);\n }\n const coordinates = polygon.getCoordinates()[0];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/GeometryCollection.js\").default} geometry Geometry.\n * @private\n */\n segmentGeometryCollectionGeometry_(segments, geometry) {\n const geometries = geometry.getGeometriesArray();\n for (let i = 0; i < geometries.length; ++i) {\n const segmenter = this.GEOMETRY_SEGMENTERS_[geometries[i].getType()];\n if (segmenter) {\n segmenter(segments, geometries[i]);\n }\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/LineString.js\").default} geometry Geometry.\n * @private\n */\n segmentLineStringGeometry_(segments, geometry) {\n const coordinates = geometry.getCoordinates();\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/MultiLineString.js\").default} geometry Geometry.\n * @private\n */\n segmentMultiLineStringGeometry_(segments, geometry) {\n const lines = geometry.getCoordinates();\n for (let j = 0, jj = lines.length; j < jj; ++j) {\n const coordinates = lines[j];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/MultiPoint.js\").default} geometry Geometry.\n * @private\n */\n segmentMultiPointGeometry_(segments, geometry) {\n geometry.getCoordinates().forEach((point) => {\n segments.push([point]);\n });\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/MultiPolygon.js\").default} geometry Geometry.\n * @private\n */\n segmentMultiPolygonGeometry_(segments, geometry) {\n const polygons = geometry.getCoordinates();\n for (let k = 0, kk = polygons.length; k < kk; ++k) {\n const rings = polygons[k];\n for (let j = 0, jj = rings.length; j < jj; ++j) {\n const coordinates = rings[j];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n }\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/Point.js\").default} geometry Geometry.\n * @private\n */\n segmentPointGeometry_(segments, geometry) {\n segments.push([geometry.getCoordinates()]);\n }\n\n /**\n * @param {Array>} segments Segments\n * @param {import(\"../geom/Polygon.js\").default} geometry Geometry.\n * @private\n */\n segmentPolygonGeometry_(segments, geometry) {\n const rings = geometry.getCoordinates();\n for (let j = 0, jj = rings.length; j < jj; ++j) {\n const coordinates = rings[j];\n for (let i = 0, ii = coordinates.length - 1; i < ii; ++i) {\n segments.push(coordinates.slice(i, i + 2));\n }\n }\n }\n}\n\nexport default Snap;\n"],"names":["ol_control_TextButton","constructor","options","className","super","ol_control_Toggle","toggleFn","onToggle","handleClick","self","toggle","call","getActive","this","interaction_","interaction","setActive","active","on","set","title","autoActivate","bar","setSubBar","setDisable","disable","setMap","map","getMap","removeInteraction","subbar_","removeControl","addInteraction","addControl","getSubBar","setTarget","element","classList","add","getDisable","button","querySelector","disabled","b","dispatchEvent","type","key","oldValue","contains","remove","setInteraction","i","getInteraction","ol_extent_intersection","ol_coordinate_dist2d","p1","p2","dx","dy","Math","sqrt","ol_coordinate_equal","ol_coordinate_offsetCoords","coords","offset","mi","mi1","li","li1","ri","ri1","si","si1","Xi1","Yi1","p0","path","N","length","max","isClosed","push","abs","pop","ol_coordinate_findSegment","pt","index","segment","d0","v0","d1","v1","splitX","pts","x","splice","splitY","y","extent","polygon","poly","getType","geom","getCoordinates","forEach","g","c","p","ol_coordinate_sampleAt","d","start","dl","nb","round","prototype","sampleAt","line","result","concat","lines","l","res","mpoly","a","intersection","resolution","ext","getCenter","getRadius","simplify","r","hasout","ring","console","warn","splitAt","tol","k","getFirstCoordinate","getLastCoordinate","c0","ci","d2","split","ol_interaction_Delete","e","getFeatures","clear","delete","selected","bind","_getSources","layers","getLayers","sources","getSource","features","getLength","delFeatures","source","f","removeFeature","ol_interaction_DrawHole","_geometryFn","coordinates","geometry","coord","getPolygon","intersectsCoordinate","lastOKCoord","setCoordinates","geomFn","geometryFunction","_select","style","layers_","indexOf","_features","featureFilter","item","getArray","_startDrawing","_finishDrawing","removeLastPoint","_feature","getGeometry","_polygon","feature","_current","forEachFeatureAtPixel","getPixelFromCoordinate","layer","_polygonIndex","layerFilter","hole","pi","newGeom","appendLinearRing","appendPolygon","setGeometry","ol_interaction_DrawRegular","handleEvent","handleEvent_","squaredClickTolerance_","clickTolerance","maxCircleCoordinates_","maxCircleCoordinates","features_","source_","conditionFn_","condition","squareFn_","squareCondition","centeredFn_","centerCondition","canRotate_","canRotate","geometryName_","geometryName","setSides","sides","defaultStyle","sketch_","overlayLayer_","useSpatialIndex","name","displayInLayerSwitcher","removeLayer","reset","started_","parseInt","sides_","getSides","getGeom_","center_","coord_","dmax","circle","centerPx","center","square_","centered_","coordPx_","min","hasrotation","dm","atan2","startAngle","getExtent","scx","scy","sc","sign","t","applyTransform","g1","g2","dim","drawSketch_","evt","originalEvent","shiftKey","metaKey","ctrlKey","feature_","addFeature","drawPoint_","noclear","_eventTime","Date","downPx_","pixel","start_","dt","_longTouch","setTimeout","handleMoveEvent_","lastEvent","end_","upPx_","coordinate","finishDrawing","startCoordinate","square","centered","setGeometryName","PI","ol_interaction_ModifyFeature","dragging","modifying","handleDownEvent","_deleteCondition","handleUpEvent","handleDragEvent","handleMoveEvent","snapDistance_","pixelTolerance","tolerance_","cursor_","cursor","sources_","Array","filterSplit_","filter","_condition","deleteCondition","_insertVertexCondition","insertVertexCondition","sketchStyle","image","radius","fill","color","stroke","width","wrapX","setFilter","undefined","getClosestFeature","getClosestFeatureToCoordinate","getClosestPoint","di","frameState","viewState","currentFeature","deselected","getNearestCoord","dist","Number","MAX_VALUE","lstring","getLineStrings","lring","getLinearRings","getPolygons","getGeometries","getArcs","s","arcs","coord1","coord2","node","shift","c1","nbpt","closed","end","typeg","error","current","getFeaturesInExtent","_modifiedFeatures","_removePoint","getModifiedFeatures","removePoint","_getModification","geoms","found","setGeometries","setArcCoordinates","getTargetElement","previousCursor_","setCursor","getCurrentFeature","ol_interaction_Offset","handleDownEvent_","handleDragEvent_","handleUpEvent_","_filter","duplicate","_style","getFeatureAtPixel_","typeGeom","test","hit","clone","geomType","hitTolerance","current_","currentStyle_","getStyle","get","setStyle","_modifystart","seg","v2","ol_interaction_Split","snapDistance","tolerance","setSources","white","blue","featureStyle","_sketch_","getSources","getVisible","unshift","fi","gi","link","tosplit","original","linkGeometry","ol_interaction_Transform","selection_","handles_","updateWhileAnimating","updateWhileInteracting","_handleEvent","addFn_","addCondition","setPointRadius","pointRadius","translateFeature","translate","translateBBox","stretch","scale","rotate","keepAspectRatio","modifyCenter","noFlip","selection","enableRotatedTransform","keepRectangle","buffer","setDefaultStyle","oldMap","select","isTouch","getViewport","setVisible","pointStroke","strokedash","lineDash","fill0","pointFill","displacement","points","setDisplacement","getAnchor","bigpt","angle","smallpt","createStyle","img","olstyle","im","getImage","setScale","tx","getText","setOffsetX","bbox_","handle","constraint","option","some","getGeometryRotateToZero_","origGeom","viewRotation","getView","getRotation","rotGeom","_isRectangle","slice","extendExt","ptRadius","_pointRadius","ispt_","getCoordinateFromPixel","iscircle_","addFeatures","removeAt","watchFeatures_","setSelection","_featureListeners","isUpdating_","sel","mode_","opt_","constraint_","coordinate_","pixel_","geoms_","rotatedGeoms_","rotExtent","extent_","rotatedExtent_","Cursors","rotate0","angle_","setCenter","j","pt0","ispt","setCenterAndRadius","deltaX","deltaY","delta","extentCoordinates","opt","downCoordinate","dragCoordinate","downPoint","dragPoint","displacementVector","centerPoint","pointArray","pointA","pointB","pointC","pointD","pointA1","base","_countVector","projectedVector","_projectVectorOnVector","nextIndex","coordsToChange","includes","projectedLeft","projectedRight","_movePoint","default","oldgeom","oldgeoms","displacement_vector","point","opt_fast","ol_interaction_UndoRedo","_layers","_undoStack","_redoStack","_undo","_redo","level","_level","view","zoom","getZoom","action","_reduce","_doShift","_doClear","_block","_record","_defs","define","undoFn","redoFn","undo","redo","setMaxLength","size","setMaxSize","getStack","prop","custom","_mapListener","blockStart","blockEnd","_watchSources","_watchInteractions","_sourceListener","getVectorLayers","init","vectors","_onAddRemove","_interactionListener","getInteractions","_onInteraction","target","fn","_handleDo","oldGeom","newp","newProperties","oldp","oldProperties","unset","hasUndo","hasRedo","setattributestart","Object","assign","properties","rotatestart","translatestart","scalestart","modifystart","replace","m","beforesplit","deletestart","aftersplit","deleteend","ol_style_Style_defaultStyle","defaultEditStyle","edit","fillColor","Circle","layout","setFlatCoordinates","flatCoordinates","applyProperties","closestPointXY","closestPoint","minSquaredDistance","squaredDistance","stride","containsXY","getRadiusSquared_","computeExtent","intersectsExtent","circleExtent","changed","setLayout","ii","setRadius","anchor","getStride","transform","DrawEventType","DRAWSTART","DRAWEND","DRAWABORT","DrawEvent","getTraceTargets","targets","appendGeometryTraceTargets","getSquaredDistance","getCoordinate","count","getCumulativeSquaredDistance","startIndex","endIndex","lowIndex","highIndex","lowWholeIndex","ceil","highWholeIndex","floor","interpolateCoordinate","sd","appendTraceTarget","polys","jj","geometries","sharedUpdateInfo","NaN","getTraceTargetUpdate","traceState","snapTolerance","closestTargetDistance","Infinity","newTargetIndex","newEndIndex","targetIndex","minSegmentDistance","coordinateIndex","rel","getPointSegmentRelationship","along","newTarget","considerBothDirections","newCoordinate","startPx","forwardDistance","reverseDistance","sharedRel","x1","y1","x2","y2","px","py","x0","y0","Draw","pointerOptions","stopDown","once","un","shouldHandle_","downTimeout_","lastDragTime_","pointerType_","freehand_","snapTolerance_","type_","getMode","stopClick_","stopClick","minPoints_","minPoints","maxPoints_","maxPoints","finishCondition_","finishCondition","geometryLayout_","geometryLayout","mode","projection","fromUserCoordinate","squaredLength","userProjection","getUserProjection","Constructor","geometryFunction_","dragVertexDelay_","dragVertexDelay","finishCoordinate_","sketchFeature_","sketchPoint_","sketchCoords_","sketchLine_","sketchLineCoords_","overlay_","getDefaultStyleFunction","condition_","freehandCondition_","freehand","freehandCondition","traceCondition_","setTrace","trace","traceState_","traceSource_","traceSource","addChangeListener","ACTIVE","updateState_","getOverlay","event","CONTEXTMENU","preventDefault","move","POINTERMOVE","pass","POINTERDRAG","now","clearTimeout","addToDrawing_","POINTERDOWN","getPointerCount","handlePointerMove_","pointerType","DBLCLICK","startDrawing_","deactivateTrace_","toggleTraceState_","lowerLeft","upperRight","addOrRemoveTracedCoordinates_","previouslyForward","currentlyForward","addTracedCoordinates_","removeTracedCoordinates_","fromIndex","toIndex","removeLastPoints_","appendCoordinates","updateTrace_","updatedTraceTarget","oldTarget","tracing","startingToDraw","atFinish_","abortDrawing","downPx","clickPx","modifyDrawing_","createOrUpdateSketchPoint_","at","potentiallyDone","potentiallyFinishCoordinates","sketchCoords","finishCoordinate","finishPixel","sketchPointGeom","updateSketchFeatures_","createOrUpdateCustomSketchLine_","getLinearRing","sketchLineGeom","getLayout","getFlatCoordinates","getProjection","last","done","n","sketchFeature","abortDrawing_","newDrawing","ending","extend","lineString","sketchFeatures","overlaySource","styles","createEditingStyle","Error","ExtentEventType","EXTENTCHANGED","ExtentEvent","Extent","pointerHandler_","pixelTolerance_","snappedToVertex_","extentFeature_","vertexFeature_","extentOverlay_","boxStyle","getDefaultExtentStyleFunction","vertexOverlay_","pointerStyle","getDefaultPointerStyleFunction","setExtent","snapToVertex_","pixelCoordinate","getCoordinateFromPixelInternal","sortByDistance","getExtentInternal","segments","getSegments","sort","closestSegment","vertex","vertexPixel","getPixelFromCoordinateInternal","pixel1","pixel2","squaredDist1","squaredDist2","mapBrowserEvent","createOrUpdatePointerFeature_","createOrUpdateExtentFeature_","extentFeature","vertexFeature","handlingDownUpSequence","getOpposingPoint","x_","y_","getPointHandler","getEdgeHandler","toUserExtent","fixedPoint","fixedP1","fixedP2","SnapEventType","SNAP","SnapEvent","Event","getFeatureFromEvent","tempSegment","Snap","Pointer","vertex_","edge_","edge","featuresListenerKeys_","featureChangeListenerKeys_","indexedFeaturesExtents_","pendingFeatures_","rBush_","RBush","GEOMETRY_SEGMENTERS_","segmentPointGeometry_","segmentLineStringGeometry_","segmentPolygonGeometry_","segmentMultiPointGeometry_","segmentMultiLineStringGeometry_","segmentMultiPolygonGeometry_","segmentGeometryCollectionGeometry_","segmentCircleGeometry_","register","feature_uid","segmenter","insert","extents","segmentsData","load","EventType","CHANGE","handleFeatureChange_","getFeatures_","snapTo","handleFeatureAdd_","handleFeatureRemove_","uid","updateFeature_","featuresToUpdate","values","unlisten","unregister","rBush","nodesToRemove","forEachInExtent","currentMap","keys","CollectionEventType","ADD","REMOVE","VectorEventType","ADDFEATURE","REMOVEFEATURE","projectedCoordinate","box","getResolution","getInExtent","segmentsLength","closestVertex","closestFeature","squaredPixelTolerance","getResult","squaredPixelDistance","segmentData","tempVertexCoord","circleGeometry","segmentStart","segmentEnd","toUserCoordinate","getGeometriesArray","polygons","kk","rings"],"sourceRoot":""} \ No newline at end of file diff --git a/js/4710.5c91b0d3.js b/js/4710.b471ae93.js similarity index 99% rename from js/4710.5c91b0d3.js rename to js/4710.b471ae93.js index c0051f34..fcd0c24c 100644 --- a/js/4710.5c91b0d3.js +++ b/js/4710.b471ae93.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[2722,3298,4710,9409],{35254:(e,t,s)=>{s.d(t,{A:()=>a});const a={components:{FederationNotice:()=>s.e(2604).then(s.bind(s,52604)),FederationMissingNotice:()=>s.e(2869).then(s.bind(s,62869))},props:{federation:{type:Object,default:()=>({})}}}},17834:(e,t,s)=>{s.d(t,{A:()=>i});var a=s(86975);const r={cpu:"CPU usage",memory:"Memory usage",duration:"Wall time",network:"Network Transfer IO",disk:"Storage IO",storage:"Storage space"},i={computed:{hasUsageMetrics(){return a.A.size(this.usage)>0}},filters:{usageLabel(e){return r[e]?r[e]:a.A.prettifyString(e)},usageValue(e){return"number"===typeof e?e.toLocaleString():e}}}},44712:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component collections"},[t("SearchableList",{attrs:{data:e.collections,identifierKey:"id",summaryKey:"title",keywordsKey:"keywords",showKeywords:e.showKeywords,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"content-start",fn:function(s){return[e._t("content-start",null,null,s),e.missing?t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}}):e._e()]}},{key:"after-search-box",fn:function(t){return[e._t("after-search-box",null,null,t)]}},{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Collection",{attrs:{data:s.item,mapOptions:e.mapOptions,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("collection-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("collection-end",null,null,t)]}},{key:"spatial-extents",fn:function(t){return[e._t("collection-spatial-extents",null,null,t)]}},{key:"temporal-extents",fn:function(t){return[e._t("collection-temporal-extents",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"Collections",components:{Collection:()=>i.A.loadAsyncComponent(Promise.all([s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(3249)]).then(s.bind(s,3249))),SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{collections:{type:Array,default:()=>[]},mapOptions:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Collections"},collapsed:{type:Boolean,default:null},loadAdditionalData:{type:Function,default:null},showKeywords:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},90334:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component file-formats"},[t("SearchableList",{attrs:{data:e.fileFormats,summaryKey:"title",keywordsKey:"gis_data_types",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.item.name))]),t("ul",{staticClass:"badges small inline"},[e.showAll&&"input"===s.item.type?t("li",{staticClass:"badge option1"},[e._v("Import")]):e._e(),e.showAll&&"output"===s.item.type?t("li",{staticClass:"badge option2"},[e._v("Export")]):e._e(),Array.isArray(s.item.gis_data_types)?e._l(s.item.gis_data_types,(function(s){return t("li",{key:s,staticClass:"badge gis"},[e._v(e._s(s))])})):e._e()],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("FileFormat",{attrs:{id:s.summary.identifier,format:s.item,type:s.item.type,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("file-format-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("file-format-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"FileFormats",components:{SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),FileFormat:()=>i.A.loadAsyncComponent(s.e(3504).then(s.bind(s,13504)))},mixins:[o.A],props:{formats:{type:Object,default:()=>({})},showInput:{type:Boolean,default:!0},showOutput:{type:Boolean,default:!0},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"File Formats"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},computed:{showAll(){return this.showInput&&this.showOutput},typesToShow(){let e=[];return this.showInput&&e.push("input"),this.showOutput&&e.push("output"),e},fileFormats(){let e=[];for(let s of this.typesToShow)for(var t in this.formats[s]){let a=Object.assign({id:`${t}-${s}`,name:t,type:s},this.formats[s][t]);e.push(a)}return e}},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},48312:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component processes"},[t("SearchableList",{attrs:{data:e.processes,keywordsKey:"categories",showKeywords:e.showCategories,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Process",{attrs:{process:s.item,provideDownload:e.provideDownload,processUrl:e.processUrl,showGraph:e.showGraph,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("process-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("process-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"Processes",components:{Process:()=>i.A.loadAsyncComponent(s.e(6660).then(s.bind(s,34279))),SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{processes:{type:Array,default:()=>[]},provideDownload:{type:Boolean,default:!0},processUrl:String,searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Processes"},collapsed:{type:Boolean,default:null},showCategories:{type:Boolean,default:!1},showGraph:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},loadAdditionalData:{type:Function,default:null},missing:{type:Array,default:null},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},9409:(e,t,s)=>{s.r(t),s.d(t,{default:()=>c});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component search-box",class:{compact:e.compact}},[t("span",{staticClass:"icon"},[e._v("🔎")]),t("input",{directives:[{name:"model",rawName:"v-model",value:e.searchTerm,expression:"searchTerm"}],attrs:{type:"search",placeholder:e.placeholder,minlength:e.minLength,title:e.searchHint},domProps:{value:e.searchTerm},on:{input:function(t){t.target.composing||(e.searchTerm=t.target.value)}}})])},r=[];const i={name:"SearchBox",props:{value:{type:String,default:""},placeholder:{type:String,default:"Search"},minLength:{type:Number,default:1},compact:{type:Boolean,default:!1}},data(){return{searchTerm:this.value}},watch:{searchTerm(e,t){e.length1?`Searching requires at least ${this.minLength} characters.`:null}}},o=i;var n=s(81656),l=(0,n.A)(o,a,r,!1,null,null,null);const c=l.exports},91065:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component udf-runtimes"},[t("SearchableList",{attrs:{data:e.runtimes,summaryKey:"title",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.summary.identifier))]),t("ul",{staticClass:"badges small inline"},["docker"===s.item.type||s.item.docker&&s.item.tags?[t("li",{staticClass:"badge docker"},[e._v("Docker")]),e._l(s.item.tags,(function(a){return t("li",{key:a,staticClass:"badge version",class:{default:a===s.item.default}},[e._v(e._s(a))])}))]:e._l(s.item.versions,(function(a,r){return t("li",{key:r,staticClass:"badge version",class:{default:r===s.item.default}},[e._v(e._s(r))])}))],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("UdfRuntime",{attrs:{id:s.summary.identifier,runtime:s.item,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(t){return[e._t("udf-runtime-badges",null,null,t)]}},{key:"before-description",fn:function(t){return[e._t("udf-runtime-before-description",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},r=[],i=s(86975),o=s(35254);const n={name:"UdfRuntimes",components:{SearchableList:()=>i.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),UdfRuntime:()=>i.A.loadAsyncComponent(s.e(3271).then(s.bind(s,33271)))},mixins:[o.A],props:{runtimes:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"UDF Runtimes"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},...o.A.props},beforeCreate(){i.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},36107:(e,t,s)=>{s.d(t,{A:()=>g});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"discovery-toolbar"},[t("SearchBox",{model:{value:e.searchTerm,callback:function(t){e.searchTerm=t},expression:"searchTerm"}}),t("div",{staticClass:"filters"},[t("span",{staticClass:"label"},[e._v(" Show ")]),t("label",{staticClass:"show-deprecated",attrs:{title:"Show deprecated elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showDeprecated,expression:"showDeprecated"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showDeprecated)?e._i(e.showDeprecated,null)>-1:e.showDeprecated},on:{change:function(t){var s=e.showDeprecated,a=t.target,r=!!a.checked;if(Array.isArray(s)){var i=null,o=e._i(s,i);a.checked?o<0&&(e.showDeprecated=s.concat([i])):o>-1&&(e.showDeprecated=s.slice(0,o).concat(s.slice(o+1)))}else e.showDeprecated=r}}}),e._v(" deprecated ")]),t("label",{staticClass:"show-experimental",attrs:{title:"Show experimental elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showExperimental,expression:"showExperimental"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showExperimental)?e._i(e.showExperimental,null)>-1:e.showExperimental},on:{change:function(t){var s=e.showExperimental,a=t.target,r=!!a.checked;if(Array.isArray(s)){var i=null,o=e._i(s,i);a.checked?o<0&&(e.showExperimental=s.concat([i])):o>-1&&(e.showExperimental=s.slice(0,o).concat(s.slice(o+1)))}else e.showExperimental=r}}}),e._v(" experimental ")])]),t("div",{staticClass:"search-results"},[t("Collections",{staticClass:"category",attrs:{collections:e.collections,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsLoadCollection},on:{dragstart:function(t){return e.onDrag(t,"collection",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showCollectionInfo(s.id)}}},[t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()]),e.hasCollectionPreview(s)?t("button",{staticClass:"discovery-button",attrs:{type:"button",title:"View on map"},on:{click:function(t){return e.showCollectionPreview(s)}}},[t("i",{staticClass:"fas fa-map"})]):e._e()])]}}])}),t("Processes",{staticClass:"category",attrs:{processes:e.allProcesses,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:"true"},on:{dragstart:function(t){return e.onDrag(t,"process",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showProcess(s)}}},["user"===s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-sitemap",attrs:{title:"Custom Process"}}):"backend"!==s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-tag",attrs:{title:`Process from namespace '${s.namespace}'`}}):e._e(),t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}])}),e.hasUdfRuntimes?t("UdfRuntimes",{staticClass:"category",attrs:{runtimes:e.udfRuntimes,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({summary:s,item:a}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsRunUdf},on:{dragstart:function(t){return e.onDrag(t,"udf",{runtime:s.identifier,version:a.default})}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showUdfInfo(s.identifier,a)}}},[t("strong",{attrs:{title:s.identifier}},[e._v(e._s(s.identifier)+" ("+e._s(a.default)+")")]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}],null,!1,92063951)}):e._e(),t("FileFormats",{staticClass:"category",attrs:{formats:e.fileFormats,showInput:!1,heading:"Export File Formats",searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsSaveResult},on:{dragstart:function(t){return e.onDrag(t,"fileformat",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showFileFormatInfo(s)}}},[t("strong",{attrs:{title:s.name}},[e._v(e._s(s.name))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()])])]}}])})],1)],1)},r=[],i=s(61663),o=s(2566),n=s(44712),l=s(90334),c=s(48312),d=s(9409),u=s(91065);const p={name:"DiscoveryToolbar",mixins:[i.A],components:{Collections:n.A,FileFormats:l.A,Processes:c.A,SearchBox:d["default"],UdfRuntimes:u.A},props:{onAddProcess:{type:Function,required:!0},collectionPreview:{type:Boolean,default:!1},persist:{type:Boolean,default:!1}},data(){return{internalSearchTerm:"",collapsed:!0,showDeprecated:this.$config.showDeprecatedByDefault||!1,showExperimental:this.$config.showExperimentalByDefault||!1}},computed:{...o.A.mapState(["collections","udfRuntimes"]),...o.A.mapState("editor",["discoverySearchTerm"]),...o.A.mapGetters(["supports","fileFormats","processes"]),supportsLoadCollection(){return this.processes.has("load_collection")},supportsRunUdf(){return this.processes.has("run_udf")},supportsSaveResult(){return this.processes.has("save_result")},hasUdfRuntimes(){return o.A.size(this.udfRuntimes)},allProcesses(){return this.processes.all()},searchTerm:{get(){return this.persist?this.discoverySearchTerm:this.internalSearchTerm},set(e){this.persist?this.setDiscoverySearchTerm(e):this.internalSearchTerm=e}}},watch:{searchTerm:{immediate:!0,handler(e,t){!e&&t?this.collapsed=!0:e&&!t&&(this.collapsed=!1)}}},methods:{...o.A.mapMutations("editor",["setDiscoverySearchTerm","setModelDnD"]),...o.A.mapActions(["loadProcess"]),onDrag(e,t,s){let a=e=>this.setModelDnD({type:t,data:s,loading:e});"process"===t?(a(!0),this.loadProcess(s).then((()=>a(!1)))):a(!1)},showCollectionInfo(e){this.broadcast("showCollection",e)},hasCollectionPreview(e){return Boolean(this.collectionPreview&&o.A.getPreviewLinkFromSTAC(e))},showCollectionPreview(e){this.broadcast("showCollectionPreview",e)},showProcess(e){this.broadcast("showProcess",e)},showUdfInfo(e,t){this.broadcast("showModal","UdfRuntimeModal",{id:e,data:t,version:t.default})},showFileFormatInfo(e){let t={id:e.name,format:this.fileFormats.output[e.name],type:"output"};this.broadcast("showModal","FileFormatModal",t)}}},h=p;var m=s(81656),f=(0,m.A)(h,a,r,!1,null,"aacdf426",null);const g=f.exports},92385:(e,t,s)=>{s.r(t),s.d(t,{default:()=>S});var a=function(){var e=this,t=e._self._c;return t("Tabs",{ref:"tabs",staticClass:"editor",attrs:{id:"customProcessContent",position:"bottom"}},[t("Tab",{attrs:{id:"visual",name:"Visual Model",icon:"fa-project-diagram",selected:!0,allowShow:e.canSwitchView},on:{show:e.showModel}},[t("VisualEditor",{ref:"graphBuilder",staticClass:"visualEditorTab",attrs:{editable:e.editable,parent:e.parent,parentSchema:e.parentSchema,value:e.modelValue,title:e.title,id:e.id+"_visual",showDiscoveryToolbar:e.showDiscoveryToolbar,showIntro:e.showIntro,defaultValue:e.defaultValue},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1),t("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code",allowShow:e.canSwitchView},on:{show:e.showCode}},[t("TextEditor",{ref:"sourceEditor",staticClass:"textEditorTab",attrs:{editable:e.editable,value:e.codeValue,title:e.title,id:e.id+"_text",language:"processgraph"},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1)],1)},r=[],i=s(2566),o=s(4615),n=s(58379),l=function(){var e=this,t=e._self._c;return t("div",{ref:"visualEditor",staticClass:"visualEditor"},[t("div",{staticClass:"sourceHeader"},[e.title?t("strong",[e._v(e._s(e.title))]):e._e(),t("div",{staticClass:"sourceToolbar"},[e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{title:"Start from scratch - Clears the current script"},on:{click:e.confirmClear}},[t("i",{staticClass:"fas fa-file"})]),e._t("file-toolbar")],2):e._e(),e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{disabled:!e.canUndo,title:"Revert the last change"},on:{click:function(t){return e.$refs.blocks.undo()}}},[t("i",{staticClass:"fas fa-undo-alt"})]),t("BButton",{attrs:{disabled:!e.canRedo,title:"Redo the last reverted change"},on:{click:function(t){return e.$refs.blocks.redo()}}},[t("i",{staticClass:"fas fa-redo-alt"})]),t("BButton",{attrs:{disabled:!e.hasSelection,title:"Delete the selected elements from the process"},on:{click:function(t){return e.$refs.blocks.deleteSelected()}}},[t("i",{staticClass:"fas fa-trash"})])],1):e._e(),e.editable?t("span",{staticClass:"sepr"},[e.parent?e._e():t("BButton",{attrs:{title:"Edit the process metadata"},on:{click:()=>e.editProcess(e.value)}},[t("i",{staticClass:"fas fa-edit"})]),t("BButton",{attrs:{title:"Add a parameter to the process"},on:{click:e.addParameter}},[t("i",{staticClass:"fas fa-parking"})]),e.supportsMath?t("BButton",{class:{highlightFormula:e.isMath},attrs:{title:"Insert or edit a formula as part of the process"},on:{click:e.showExpressionModal}},[t("i",{staticClass:"fas fa-square-root-alt"})]):e._e()],1):e._e(),t("BButton",{class:{compactMode:e.compactMode},attrs:{title:e.compactMode?"Show the process more compact and less detailed":"Shows the process less compact and more detailed"},on:{click:function(t){return e.$refs.blocks.toggleCompact()}}},[t("i",{staticClass:"fas fa-compress-arrows-alt"})]),t("BButton",{attrs:{title:"Scale the view to match the available space"},on:{click:function(t){return e.$refs.blocks.perfectScale()}}},[t("i",{staticClass:"fas fa-arrows-alt"})]),t("FullscreenButton",{attrs:{element:()=>this.$refs.visualEditor},on:{changed:t=>{this.$refs.blocks.perfectScale(),e.isFullScreen=t}}}),e._t("toolbar")],2)]),t("div",{staticClass:"editorSplitter"},[(e.showDiscoveryToolbar||e.isFullScreen)&&e.editable?t("DiscoveryToolbar",{staticClass:"discoveryToolbar",attrs:{onAddProcess:e.insertProcess}}):e._e(),t("div",{staticClass:"graphBuilder",on:{drop:e.onDrop,dragover:e.allowDrop}},[e.showHelpOverlay?t("div",{staticClass:"model-overlay"},[t("h2",[e._v("Welcome!")]),t("p",[e._v(" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. ")]),t("p",[e._v(" Alternatively, you can also import existing processes into the model builder: "),t("ul",[e.canPaste?t("li",[e._v("Paste the JSON from your clipboard by clicking "),t("BButton",{attrs:{title:"Paste a process from your clipboard"},on:{click:e.paste}},[t("i",{staticClass:"fas fa-paste"})]),e._v(" or use "),t("kbd",[e._v("CTRL")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (Windows, Linux) or "),t("kbd",[e._v("⌘")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (MacOS) when the model builder is in focus.")],1):e._e(),t("li",[e._v("Drag and drop a JSON file from your computer")]),t("li",[e._v("Import a JSON file from your computer or another source such as the internet by clicking "),t("BButton",{attrs:{title:"Import a process from an external source"},on:{click:e.importProcess}},[t("i",{staticClass:"fas fa-cloud-download-alt"})])],1)])]),e._m(0),t("p",[e._v("Once you start interacting with this area, this message will disappear.")])]):e._e(),t("ModelBuilder",{ref:"blocks",attrs:{editable:e.editable,id:e.id,processes:e.processes,collections:e.collections,parent:e.parent,parentSchema:e.parentSchema,value:e.value},on:{input:e.commit,error:e.errorHandler,showProcess:(t,s)=>e.broadcast("showProcess",{id:t,namespace:s}),showCollection:t=>e.broadcast("showCollection",t),showParameter:(t,s)=>e.broadcast("showProcessParameter",t,s),editParameter:e.editParameter,editArguments:e.openArgumentEditor,compactMode:e=>this.compactMode=e,selectionChanged:e.selectionChanged,historyChanged:e.historyChanged}})],1)],1)])},c=[function(){var e=this,t=e._self._c;return t("p",[e._v(" You can also import the processes from the Python and R client. You need to export your process to JSON first: "),t("ul",[t("li",[e._v("In Python use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export",target:"_blank"}},[t("code",[e._v("print(result.to_json())")])])]),t("li",[e._v("In R use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-r-client/reference/index.html",target:"_blank"}},[t("code",[e._v('toJSON(as(result, "Process"))')])])])]),e._v(" In both cases, "),t("code",[e._v("result")]),e._v(" is your last return value from a data cube process such as "),t("code",[e._v("save_result")]),e._v(". For more details, please read the corresponding chapter in the "),t("a",{attrs:{href:"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json",target:"_blank"}},[e._v("openEO cookbook")]),e._v(". ")])}],d=(s(98992),s(54520),s(81454),s(4638)),u=s(36107),p=s(61663),h=s(92622),m=s(91144),f=s(31572),g=s(47067);const y={name:"VisualEditor",mixins:[p.A],components:{BButton:m.A,ModelBuilder:d["default"],DiscoveryToolbar:u.A,FullscreenButton:h.A},props:{id:String,editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},title:{type:String},defaultValue:{}},computed:{...i.A.mapState(["connection","collections"]),...i.A.mapGetters(["processes","supportsMath"]),...i.A.mapState("editor",["initialNode"]),...i.A.mapGetters("editor",["getModelNodeFromDnD"]),isMath(){return this.supportsMath&&this.processes.isMath(this.value)}},data(){return{showHelpOverlay:this.showIntro,canUndo:!1,canRedo:!1,canPaste:!1,compactMode:!1,hasSelection:!1,formula:null,isFullScreen:!1}},watch:{value:{immediate:!0,handler(e){if(e&&(this.showHelpOverlay=!1),this.initialNode&&i.A.isObject(e)&&i.A.isObject(e.process_graph))try{let t=this.initialNode;"1"==t&&i.A.size(e.process_graph)&&(t=Object.keys(e.process_graph)[0]),this.openArgumentEditorForNode(t)}catch(t){i.A.exception(this,t)}finally{this.setInitialNode(null)}}}},mounted(){this.canPaste=navigator&&navigator.clipboard&&"function"===typeof navigator.clipboard.readText},methods:{...i.A.mapMutations("editor",["setInitialNode","setModelDnD"]),commit(e){"undefined"!==typeof this.defaultValue&&i.A.isObject(e)&&0===i.A.size(e.process_graph)&&(e=this.defaultValue),this.$emit("input",e)},async paste(){this.canPaste||i.A.error(this,"error","Pasting is not supported by your browser.");try{const e=await navigator.clipboard.readText();let t=JSON.parse(e);await this.$refs.blocks.import(t)}catch(e){i.A.exception(this,e,"Paste Error")}},importProcess(){this.broadcast("importProcess")},errorHandler(e,t=null){i.A.exception(this,e,t)},selectionChanged(e,t){this.hasSelection=Boolean(e.filter((e=>e.$el.allowsDelete)).length||t.length)},historyChanged(e,t){this.canUndo=!!e[t-1],this.canRedo=!!e[t+1]},allowDrop(e){this.showHelpOverlay=!1,e.preventDefault()},async onDrop(e){const t=await this.getModelNodeFromDnD();if(t)return this.insertProcess(t,e.pageX,e.pageY),this.setModelDnD(),e.preventDefault();let s=e.dataTransfer.files;if(1===s.length){let t=e.dataTransfer.files[0];if("application/json"===t.type){var a=new FileReader;return a.onload=async e=>{try{let t=JSON.parse(e.target.result);await this.$refs.blocks.import(t)}catch(t){i.A.exception(this,t,"Parsing JSON file failed")}},a.onerror=e=>i.A.exception(this,e,"Reading JSON file failed"),a.readAsText(t,"UTF-8"),e.preventDefault()}}},getNameField(e=void 0,t="name"){return{value:e,name:t,description:"A unique identifier. Must contain only letters (`a`-`z`), digits (`0`-`9`) and underscores (`_`). `snake_case` is recommended.",label:"Name",schema:{type:"string",pattern:"^\\w+$"},default:null}},getDescriptionField(e=void 0,t=!1,s="description",a="Description"){return{value:e,name:s,description:"Provides a detailed description. CommonMark (Markdown) syntax can be used for rich text formatting.",label:a,optional:t,schema:{type:"string",subtype:"commonmark"}}},getOptionalField(e=void 0){return{value:e,name:"optional",label:"Optional",description:"Parameters by default are required. CHeck this option to make the parameter optional. For optional parameters a default value should be specified.",optional:!0,schema:{type:"boolean"},default:!1}},getDefaultField(e=void 0){return{value:e,name:"default",label:"Default Value",description:"This value is used whenever the user of this process did not specify a value for this parameter.",toggledBy:"optional",optional:!0,schema:{}}},getExperimentalField(e=void 0){return{value:e,name:"experimental",label:"Experimental",description:"Declares that this is experimental, which means that it is unstable and likely to change.",optional:!0,schema:{type:"boolean"},default:!1}},getDeprecatedField(e=void 0){return{value:e,name:"deprecated",label:"Deprecated",description:"Declares that this is deprecated with the potential to be removed in any of the next versions. It should be transitioned out of usage.",optional:!0,schema:{type:"boolean"},default:!1}},getSchemaField(e=void 0,t="schema",s="Data Types"){let a=e?"json-schema":"openeo-datatype";return{value:e,name:t,label:s,description:"Allowed data type(s) as JSON Schema.",schema:[{title:"Single data type",type:"object",subtype:a},{title:"Multiple data types",type:"array",minItems:2,items:{type:"object",subtype:a}}]}},editProcess(e){e=i.A.isObject(e)?e:{};let t=i.A.isObject(e.returns)?e.returns:{};var s=[this.getNameField(e.id,"id"),{value:e.summary,name:"summary",description:"A very short description of the process with usually less than 60 characters.",label:"Summary",optional:!0,schema:{type:"string"}},this.getDescriptionField(e.description,!0),{value:e.categories,name:"categories",label:"Categories",optional:!0,schema:{type:"array",items:{type:"string"}}},this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),{label:"Parameters",description:'The parameters can be edited directly in the "Visual Model" interface.',info:!0},this.getDescriptionField(t.description,!0,"returns_description","Return Value > Description"),this.getSchemaField(t.schema,"returns_schema","Return Value > Data Type"),{value:e.exceptions,name:"exceptions",description:"Declares exceptions (errors) that might occur during execution of this process. This list is just for informative purposes.\n\nThe keys of the object are the error codes, which should only consist of alphanumerical characters. `PascalCase` is recommended.",label:"Errors",optional:!0,schema:{type:"object",additionalProperties:{type:"object",required:["message"],properties:{message:{title:"Error Message",type:"string"},description:{title:"Description",type:"string",subtype:"commonmark"},http:{title:"HTTP Status Code",type:"integer",enum:[400,500,501]}}}}},{value:e.examples,name:"examples",label:"Examples",description:"Example calls for this process with specific values for the parameters (arguments) and the result (return value).",optional:!0,schema:{type:"array",items:{type:"object",required:["arguments"],properties:{title:{title:"Title",type:"string"},title:{title:"Description",type:"string",subtype:"commonmark"},arguments:{title:"Arguments",type:"object",default:{}},returns:{title:"Return Value"}}}}},{value:e.links,name:"links",label:"Links",description:"Links related to this process, e.g. additional documentation.",optional:!0,schema:{type:"array",items:{type:"object",required:["href","rel"],properties:{href:{title:"URL",type:"string"},rel:{title:"Relation",description:"For examples see [IANA relation types](https://www.iana.org/assignments/link-relations/link-relations.xhtml)",type:"string",default:"about"},title:{title:"Title",type:"string"},type:{title:"Media Type",description:"For examples see [IANA media types](https://www.iana.org/assignments/media-types/media-types.xhtml)",type:"string"}}}}}];this.broadcast("showDataForm","Edit Process",s,(async e=>{let t=i.A.pickFromObject(e,["id","summary","description","categories","experimental","deprecated","exception","examples","links"]);("string"===typeof t.description||i.A.isObject(t.schema))&&(t.returns={description:e.returns_description,schema:e.returns_schema});let s=this.$refs.blocks.export(!0),a=Object.assign({},s,t);const r={id:"",summary:"",description:"",categories:[],experimental:!1,deprecated:!1,examples:[],links:[],process_graph:{}};for(let o in r)i.A.equals(r[o],a[o])&&delete a[o];this.commit(a)}))},addParameter(){var e=[this.getNameField(),this.getDescriptionField(),this.getOptionalField(),this.getDefaultField(),this.getExperimentalField(),this.getDeprecatedField(),this.getSchemaField()];this.broadcast("showDataForm","Add Parameter",e,(async e=>{"string"===typeof e.name&&e.name.length>0&&await this.$refs.blocks.addPgParameter(e)}))},editParameter(e,t="Edit Parameter",s=null){var a=[this.getNameField(e.name),this.getDescriptionField(e.description),this.getOptionalField(e.optional),this.getDefaultField(e.default),this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),this.getSchemaField(e.schema)];this.broadcast("showDataForm",t,a,s)},showExpressionModal(){let e=new g.A(this.value,this.processes,this.connection,!0);e.setCallbackParameters(this.$refs.blocks.getPgParameters().map((e=>e.spec)));try{e.parse();let t={process:e},s={save:this.insertNodes};this.broadcast("showModal","ExpressionModal",t,s)}catch(t){i.A.exception(this,t)}},openArgumentEditorForNode(e){let t=i.A.deepClone(this.value),s=t.process_graph[e],a=this.processes.get(s.process_id,s.namespace);Array.isArray(a.parameters)&&a.parameters.length>0&&this.openArgumentEditor(a.parameters.map((e=>new f.ProcessParameter(e))).filter((e=>e.isEditable())),s.arguments,a.id,!0,null,(e=>{Object.assign(s,{arguments:e}),this.commit(t)}))},openArgumentEditor(e,t,s="Edit",a=!0,r=null,i=null,o=null){let n={title:s,parameters:e,data:t,editable:a,selectParameterName:r,parent:o},l={};"function"===typeof i&&(l.save=i),this.broadcast("showModal","ParameterModal",n,l)},confirmClear(){var e=confirm("Do you really want to clear the existing model?");e&&this.clear()},clear(){this.$refs.blocks&&this.$refs.blocks.clear(),this.commit(null)},insertProcess(e,t=null,s=null){try{var a=this.$refs.blocks.getPositionForPageXY(t,s);let r=e.namespace;"backend"!==r&&"user"!==r||(r=null),this.$refs.blocks.addProcess(e.process_id,e.arguments,a,r)}catch(r){i.A.exception(this,r)}},async insertNodes(e,t=!1){return await this.$refs.blocks.import({process_graph:e},{clear:t})}}},v=y;var b=s(81656),_=(0,b.A)(v,l,c,!1,null,null,null);const w=_.exports;var C=s(20600);const A={name:"Editor",components:{VisualEditor:w,TextEditor:C.A,Tabs:o["default"],Tab:n["default"]},props:{id:{type:String,default:()=>`editor_${Date.now()}`},editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},title:{type:String},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},defaultValue:{}},watch:{value(){this.updateTab()}},data(){return{modelValue:null,codeValue:null,error:null}},mounted(){this.updateTab()},methods:{...i.A.mapActions(["loadProcess"]),showModel(){this.error=null,this.modelValue=this.value},showCode(){this.error=null,this.codeValue=this.value,this.$refs.sourceEditor.updateState()},updateTab(){"source"===this.$refs.tabs.getActiveTabId()?this.showCode():this.showModel()},commit(e){this.error=null,this.$emit("input",e)},onError(e){this.error=e},activeEditor(){return"source"===this.$refs.tabs.getActiveTabId()?this.$refs.sourceEditor:this.$refs.graphBuilder},async insertProcess(e){try{await this.loadProcess({id:e.process_id,namespace:e.namespace}),this.activeEditor().insertProcess(e)}catch(t){i.A.exception(this,t)}},canSwitchView(){return!this.editable||null===this.error||(i.A.exception(this,this.error,"Process Invalid Error"),!1)}}},x=A;var k=(0,b.A)(x,a,r,!1,null,null,null);const S=k.exports},23827:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"modal",style:{"z-index":e.zIndex},on:{mousedown:e.backgroundClose}},[t(e.containerTag,{ref:"container",tag:"component",staticClass:"modal-container",class:{smooth:e.smooth},style:e.style,on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.submitFunction.apply(null,arguments)}}},[t("header",{staticClass:"modal-header",on:{mousedown:e.startMove}},[e._t("header",(function(){return[t("h2",[e._v(e._s(e.title))]),t("span",{staticClass:"close",on:{click:e.close}},[t("i",{staticClass:"fa fa-times",attrs:{"aria-hidden":"true"}})])]}))],2),t("main",{staticClass:"modal-content"},[e._t("default")],2),t("footer",{staticClass:"modal-footer"},[e._t("footer",(function(){return[e.submitFunction?t("button",{attrs:{type:"submit"}},[e._v(e._s(e.submitButtonText))]):e._e()]}))],2)])],1)},r=[],i=s(61663),o=s(2566);const n={name:"Modal",mixins:[i.A],props:{title:{type:String,default:null},minWidth:{type:String,default:null},width:{type:String,default:"auto"},height:{type:String,default:"auto"},show:{type:Boolean,default:!0},submitFunction:{type:Function,default:null},submitButtonText:{type:String,default:"Submit"}},data(){return{zIndex:1e3,position:null,dragPosition:null,smooth:!1}},computed:{...o.A.mapState("editor",["hightestModalZIndex"]),style(){let e={width:this.width};return this.minWidth&&(e["min-width"]=this.minWidth),this.height&&(e["height"]=this.height),Array.isArray(this.position)&&(e.position="absolute",e.left=this.position[0]+"px",e.top=this.position[1]+"px"),e},containerTag(){return this.submitFunction?"form":"div"}},watch:{show:{immediate:!0,handler(e){e?this.open():this.close()}},width(){this.smoothResize()},minWidth(){this.smoothResize()}},methods:{...o.A.mapMutations("editor",["openModal","closeModal"]),smoothResize(){this.smooth=!0,setTimeout((()=>this.smooth=!1),600)},submit(e){this.submitFunction(e)},open(){this.openModal(),this.zIndex=this.hightestModalZIndex,window.addEventListener("keydown",this.escCloseListener),this.$emit("shown")},close(){window.removeEventListener("keydown",this.escCloseListener),this.closeModal(),this.$emit("closed")},startMove(e){"H2"!==e.target.tagName&&(this.dragPosition=[e.clientX,e.clientY],document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.stopMove),e.preventDefault(),e.stopPropagation())},stopMove(){document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.stopMove)},move(e){e.preventDefault(),this.position=[this.$refs.container.offsetLeft-(this.dragPosition[0]-e.clientX),this.$refs.container.offsetTop-(this.dragPosition[1]-e.clientY)],this.dragPosition=[e.clientX,e.clientY]},escCloseListener(e){if("Escape"==e.key)return this.close(),e.preventDefault(),e.stopPropagation(),!1},backgroundClose(e){e.target===this.$el&&this.close()}}},l=n;var c=s(81656),d=(0,c.A)(l,a,r,!1,null,null,null);const u=d.exports},1777:(e,t,s)=>{s.r(t),s.d(t,{default:()=>_});var a=function(){var e=this,t=e._self._c;return t("Modal",{attrs:{width:"80%",title:e.title},on:{closed:function(t){return e.$emit("closed")}}},[t("Service",{attrs:{service:e.service,currency:e.currency},scopedSlots:e._u([{key:"process-graph",fn:function(){return[t("Editor",{staticClass:"infoViewer",attrs:{value:e.service.process,editable:!1,id:"servicePgViewer"}})]},proxy:!0}])})],1)},r=[],i=s(2566),o=s(23827),n=s(92385),l=function(){var e=this,t=e._self._c;return t("article",{staticClass:"vue-component service"},[e._t("title",(function(){return[t("a",{staticClass:"anchor",attrs:{name:e.service.id}}),t("h2",[e._v(e._s(e.service.title||e.service.id))])]}),null,e.$props),t("section",{staticClass:"basedata"},[t("div",{staticClass:"tabular"},[t("label",[e._v("ID:")]),t("code",{staticClass:"value"},[e._v(e._s(e.service.id))])]),t("div",{staticClass:"tabular"},[t("label",[e._v("Type:")]),t("span",{staticClass:"value"},[e._v(e._s(e.type))])]),e.service.url?t("div",{staticClass:"tabular"},[t("label",[e._v("URL:")]),t("code",{staticClass:"value"},[t("a",{attrs:{href:e.service.url,target:"_blank"}},[e._v(e._s(e.service.url))])])]):e._e(),t("div",{staticClass:"tabular"},[t("label",[e._v("Enabled:")]),t("span",{staticClass:"value boolean"},[!0===e.service.enabled?t("span",[e._v("✔️")]):!1===e.service.enabled?t("span",[e._v("❌")]):t("span",[e._v("❓")])])]),e.service.created?t("div",{staticClass:"tabular"},[t("label",[e._v("Created:")]),t("span",{staticClass:"value"},[e._v(e._s(e.created))])]):e._e()]),e._t("before-description",null,null,e.$props),e.service.description?t("summary",{staticClass:"description"},[t("h3",[e._v("Description")]),t("Description",{attrs:{description:e.service.description}})],1):e._e(),e.hasAttributes?t("section",{staticClass:"attributes"},[t("h3",[e._v("Exposed Capabilities from "+e._s(e.type))]),e._l(e.service.attributes,(function(s,a){return t("div",{key:a,staticClass:"tabular"},[t("label",[e._v(e._s(e._f("prettifyKey")(a))+":")]),t("ObjectTree",{staticClass:"value",attrs:{data:s}})],1)}))],2):e._e(),e.hasConfig?t("section",{staticClass:"parameters"},[t("h3",[e._v("Custom Settings for "+e._s(e.type))]),e._l(e.service.configuration,(function(s,a){return t("div",{key:a,staticClass:"tabular"},[t("label",[e._v(e._s(e._f("prettifyKey")(a))+":")]),t("ObjectTree",{staticClass:"value",attrs:{data:s}})],1)}))],2):e._e(),e.service.plan||e.costs||e.budget?t("section",{staticClass:"billing"},[t("h3",[e._v("Billing")]),e.service.plan?t("div",{staticClass:"tabular"},[t("label",[e._v("Billing plan:")]),t("span",{staticClass:"value"},[e._v(e._s(e.service.plan))])]):e._e(),e.costs?t("div",{staticClass:"tabular"},[t("label",[e._v("Incurred Costs:")]),t("span",{staticClass:"value"},[e._v(e._s(e.costs))])]):e._e(),e.budget?t("div",{staticClass:"tabular"},[t("label",{attrs:{title:"The allowed maximum costs, specified by the user."}},[e._v("Budget limit:")]),t("span",{staticClass:"value"},[e._v(e._s(e.budget))])]):e._e()]):e._e(),e.hasUsageMetrics?t("section",{staticClass:"usage"},[t("h3",[e._v("Usage Metrics")]),e._l(e.usage,(function(s,a){return t("div",{key:a,staticClass:"tabular"},[t("label",{staticClass:"metric"},[e._v(e._s(e._f("usageLabel")(a)))]),t("span",{staticClass:"value"},[e._v(e._s(e._f("usageValue")(s.value))+" "),t("span",{staticClass:"unit"},[e._v(e._s(s.unit))])])])}))],2):e._e(),t("section",{staticClass:"process"},[t("h3",[e._v("Process")]),t("Process",{staticClass:"inline",attrs:{process:e.service.process,provideDownload:!1,showGraph:!0},scopedSlots:e._u([{key:"process-graph",fn:function(t){return[e._t("process-graph",null,{vBind:t})]}}],null,!0)})],1),e._t("end",null,null,e.$props)],2)},c=[],d=s(86975),u=s(17834);const p={name:"Service",mixins:[u.A],components:{Description:()=>Promise.all([s.e(7261),s.e(1194)]).then(s.bind(s,27261)),ObjectTree:()=>s.e(2327).then(s.bind(s,2327)),Process:()=>s.e(6660).then(s.bind(s,34279))},props:{service:{type:Object,default:()=>({})},currency:{type:String,default:null}},computed:{budget(){return d.A.formatBudget(this.service.budget,this.currency,"No limit specified")},costs(){return d.A.formatCurrency(this.service.costs,this.currency)},created(){return d.A.formatTimestamp(this.service.created)},hasAttributes(){return d.A.size(this.service.attributes)>0},hasConfig(){return d.A.size(this.service.configuration)>0},type(){return"string"===typeof this.service.type?this.service.type.toUpperCase():"Unknown"},usage(){return this.service.usage}},beforeCreate(){d.A.enableHtmlProps(this)},filters:{prettifyKey(e){return d.A.prettifyString(e)}}},h=p;var m=s(81656),f=(0,m.A)(h,l,c,!1,null,null,null);const g=f.exports,y={name:"ServiceInfoModal",components:{Editor:n["default"],Modal:o.A,Service:g},props:{service:{type:Object}},computed:{...i.A.mapGetters(["currency"]),title(){return"Web Service: "+(this.service.title||"#"+this.service.id)}}},v=y;var b=(0,m.A)(v,a,r,!1,null,null,null);const _=b.exports},16125:(e,t,s)=>{s.d(t,{A:()=>o});s(81454);var a=s(14894),r=s(2566);class i extends a.BaseProcess{constructor(e,t){super(e),this.exporter=t}async execute(e){await this.exporter.generateFunction(e)}}class o extends a.ProcessGraph{constructor(e,t,s){super(r.A.isObject(e)?e:{},t),this.connection=s,this.code=[],this.fnCounter=1,this.allowEmpty(),this.fillUndefinedParameters()}createProcessGraphInstance(e){let t=new o(e,this.processRegistry,this.getJsonSchemaValidator());return this.copyProcessGraphInstanceProperties(t)}copyProcessGraphInstanceProperties(e){return e=super.copyProcessGraphInstanceProperties(e),e.connection=this.connection,e}createProcessInstance(e){return new i(e,this)}isKeyword(e){return this.getKeywords().includes(e.toLowerCase())}getKeywords(){return[]}comment(){}generateImports(){}generateConnection(){}generateAuthentication(){}generateBuilder(){}generateMetadata(){}generateMissingParameter(){}async generateFunction(){}generateFunctionParams(e){return e.map((e=>"undefined"!==typeof e.default?`${e.name} = ${this.e(e.default)}`:e.name))}async generateCallback(){}generateResult(){}makeNull(){return"null"}makeBoolean(e){return e?"true":"false"}makeArray(e){return`[${e.join(", ")}]`}makeObject(e){let t=r.A.mapObject(e,((e,t)=>`${this.makeString(t)}: ${e}`));return`{${t.join(", ")}}`}makeString(e){return JSON.stringify(e)}makeNumber(e){return e}e(e){return null===e?this.makeNull():"boolean"===typeof e?this.makeBoolean(e):"number"===typeof e?this.makeNumber(e):"string"===typeof e?this.makeString(e):Array.isArray(e)?this.makeArray(e.map((e=>this.e(e)))):r.A.isObject(e)?this.makeObject(r.A.mapObjectValues(e,(e=>this.e(e)))):"function"===typeof e?e():this.makeNull()}generateMetadata(){let e=!1;for(let t in this.process){if("process_graph"===t)continue;let s=this.process[t];Array.isArray(s)&&0===s.length||("string"===typeof s&&0===s.length||("boolean"!==typeof s||s)&&(e||(this.newLine(),this.comment("Set the metadata for the process"),e=!0),this.generateMetadataEntry(t,s)))}}async resolveArguments(e,t,s){let a=Array.isArray(e)?[]:{};for(let i in e){let n=e[i];if(!s||!s(i,n))if(r.A.isObject(n)){if(n.from_node){a[i]=()=>this.var(n.from_node,this.varPrefix());continue}if(n.from_parameter){a[i]=()=>this.var(n.from_parameter);continue}if(n instanceof o){let e=await t(i);a[i]=()=>e;continue}a[i]=await this.resolveArguments(n,t,s)}else Array.isArray(n)?a[i]=await this.resolveArguments(n,t,s):a[i]=n}return a}async resolveCallback(e,t){let s;if("load_collection"===e.process_id){let a=e.getArgument("properties");s=a[t]}else s=e.getArgument(t);let a=s.getCallbackParameters();await s.execute(a);let r=this.var(`${t}${this.fnCounter++}`,"fn_"),i=await this.generateCallback(s,a,r);return i||r}async generateArguments(e,t=!1,s=null){let a=await this.resolveArguments(e.arguments,(async t=>await this.resolveCallback(e,t)),s);return t&&(a=this.orderArguments(e,a)),a}orderArguments(e,t){let s=e.getProcessGraph().getProcess(e);if(s&&Array.isArray(s.parameters)){let e=s.parameters.map((e=>"undefined"!==typeof t[e.name]?t[e.name]:e.optional?void 0:null)),a=!1;for(let t=e.length-1;t>=0;t--)"undefined"===typeof e[t]?a?e[t]=null:e.pop():a=!0;return e}}varPrefix(){return this.getParent()?"data":"datacube"}var(e,t="var"){return e=String(e),this.isKeyword(e)?`${e}_`:e.match(/^[a-z_]\w*$/)?e:t+e.replace(/[^\w]+/g,"_")}getTab(){return"\t"}addCode(e,t="",s=0){if("string"!==typeof e)return;let a=this.getTab().repeat(s),r=e.trim().split(/\r\n|\r|\n/g);for(let i of r)this.code.push(`${a}${t}${i}\n`)}newLine(e=1){for(let t=0;t0){this.comment("ToDo: Here you need to set values for the parameters");for(let e of t)this.generateMissingParameter(e);this.newLine()}return await this.execute(),e||(this.newLine(),this.comment("The process can be executed synchronously (see below), as batch job or as web service now")),this.generateResult(this.getResultNode(),e),this.code.join("").trim()}async execute(){return await this.validate(),this.reset(),await this.executeNodes(this.getStartNodes()),this.getResultNode()}isMath(){return"undefined"===typeof this._isMath&&(this._isMath=this.processRegistry.isMath(this)),this._isMath}}},47067:(e,t,s)=>{s.d(t,{A:()=>n});s(98992),s(54520),s(81454);var a=s(2566),r=s(16125),i=s(73902);const o=["abstract","arguments","await","boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","eval","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","let","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with","yield","builder","connection","formula","openeo","result"];class n extends r.A{constructor(e,t,s,a=!1){super(e,t,s),this.generateFormula=a}createProcessGraphInstance(e){let t=new n(e,this.processRegistry,this.getJsonSchemaValidator(),this.generateFormula);return this.copyProcessGraphInstanceProperties(t)}parse(){this.parsed||super.parse()}getKeywords(){return o}comment(e){this.addCode(e,"// ")}generateImports(){this.addCode("import { OpenEO, Formula } from '@openeo/js-client';")}generateConnection(){this.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`)}generateAuthentication(){this.comment("ToDo: Here you need to add your authentication steps")}generateBuilder(){this.addCode("let builder = await connection.buildProcess();")}generateMetadataEntry(e,t){this.addCode(`builder.${e} = ${this.e(t)};`)}async generateFunction(e){let t=e.getParent()?"this":"builder",s=this.var(e.id,this.varPrefix()),r=await this.generateArguments(e,!e.namespace);if(this.comment(e.description),a.A.isObject(r)){let a=e.namespace?`${e.process_id}@${e.namespace}`:e.process_id;this.addCode(`let ${s} = ${t}.process("${a}", ${this.e(r)});`)}else this.addCode(`let ${s} = ${t}.${e.process_id}(${r.map((e=>this.e(e))).join(", ")});`)}generateMissingParameter(e){this.comment(e.description);let t=this.var(e.name,"param"),s="undefined"!==typeof e.default?e.default:null;this.addCode(`let ${t} = ${this.e(s)};`)}async generateCallback(e,t,s){if(this.generateFormula&&e&&e.isMath()){let t=e.toFormulaString(),s=JSON.stringify(t);return`new Formula(${s})`}{let a=this.generateFunctionParams(t);this.newLine(),this.addCode(`let ${s} = function(${a.join(", ")}) {`),this.addCode(await e.toCode(!0),"",1),this.addCode("}")}}generateResult(e,t){if(!e)return;let s=this.var(e.id,this.varPrefix());t?this.addCode(`return ${s};`):this.addCode(`let result = await connection.computeResult(${s});`)}toFormulaString(){return this.isMath()?this.nodeToFormula(this.getResultNode()):""}getArrayElementPlaceholder(e){if("array_element"===e.process_id&&"parameter"===e.getArgumentType("data")){let t=e.getRawArgument("data").from_parameter,s=this.getCallbackParameters().findIndex((e=>e.name===t));if(s>=0)return"$".repeat(s+1)+(e.getArgument("label")||e.getArgument("index"))}return null}nodeToFormula(e,t=null){if("array_element"===e.process_id){let t=this.getArrayElementPlaceholder(e);if(t)return t}let s=i.Formula.reverseOperatorMapping[e.process_id],r=this.processRegistry.get(e.process_id),o="undefined"!==typeof i.Formula.arrayOperatorMapping[e.process_id],n=t=>{if(a.A.isObject(t))if(t.from_node){let a=e.getProcessGraph().getNode(t.from_node);t=a?this.nodeToFormula(a,s):"#"+t.from_node}else{if(!t.from_parameter)throw new Error("Objects not allowed");t=t.from_parameter}return t},l=[],c=Array.isArray(r.parameters)?r.parameters:[];for(let a of c){let t=n(e.getRawArgument(a.name));if(o&&Array.isArray(t)&&"data"===a.name){l=t.map((e=>n(e)));break}if("undefined"!==typeof t)l.push(t);else{if("undefined"===typeof a.default)throw new Error('Argument for parameter "'+a.name+'" missing');l.push(a.default)}}if(o&&(l=l.filter((e=>null!==e))),s){let e=["/","*"],a=["-","+"],r=l.map((e=>e<0?"("+e+")":e)).join(s);return!t||a.includes(t)&&a.includes(s)||"^"===s||a.includes(t)&&e.includes(s)?r:"("+r+")"}return e.process_id+"("+l.join(", ")+")"}}}}]); -//# sourceMappingURL=4710.5c91b0d3.js.map \ No newline at end of file +//# sourceMappingURL=4710.b471ae93.js.map \ No newline at end of file diff --git a/js/4710.5c91b0d3.js.map b/js/4710.b471ae93.js.map similarity index 99% rename from js/4710.5c91b0d3.js.map rename to js/4710.b471ae93.js.map index 922efdcc..15881c01 100644 --- a/js/4710.5c91b0d3.js.map +++ b/js/4710.b471ae93.js.map @@ -1 +1 @@ -{"version":3,"file":"js/4710.5c91b0d3.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/UsageMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039","webpack://@openeo/web-editor/./src/components/modals/ServiceInfoModal.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Service.vue?827c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Service.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Service.vue?5ee3","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Service.vue","webpack://@openeo/web-editor/src/components/modals/ServiceInfoModal.vue","webpack://@openeo/web-editor/./src/components/modals/ServiceInfoModal.vue?5cf5","webpack://@openeo/web-editor/./src/components/modals/ServiceInfoModal.vue?d203","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","import Utils from '../../utils';\n\nconst usageLabels = {\n\tcpu: \"CPU usage\",\n\tmemory: \"Memory usage\",\n\tduration: \"Wall time\",\n\tnetwork: \"Network Transfer IO\",\n\tdisk: \"Storage IO\",\n\tstorage: \"Storage space\"\n};\n\nexport default {\n\tcomputed: {\n\t\thasUsageMetrics() {\n\t\t\treturn Utils.size(this.usage) > 0;\n\t\t}\n\t},\n\tfilters: {\n\t\tusageLabel(key) {\n\t\t\tif (usageLabels[key]) {\n\t\t\t\treturn usageLabels[key];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Utils.prettifyString(key);\n\t\t\t}\n\t\t},\n\t\tusageValue(num) {\n\t\t\tif (typeof num === 'number') {\n\t\t\t\treturn num.toLocaleString();\n\t\t\t}\n\t\t\treturn num;\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],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!./Modal.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!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=57347c15\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=57347c15&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('Modal',{attrs:{\"width\":\"80%\",\"title\":_vm.title},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('Service',{attrs:{\"service\":_vm.service,\"currency\":_vm.currency},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(){return [_c('Editor',{staticClass:\"infoViewer\",attrs:{\"value\":_vm.service.process,\"editable\":false,\"id\":\"servicePgViewer\"}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('article',{staticClass:\"vue-component service\"},[_vm._t(\"title\",function(){return [_c('a',{staticClass:\"anchor\",attrs:{\"name\":_vm.service.id}}),_c('h2',[_vm._v(_vm._s(_vm.service.title || _vm.service.id))])]},null,_vm.$props),_c('section',{staticClass:\"basedata\"},[_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"ID:\")]),_c('code',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.service.id))])]),_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Type:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.type))])]),(_vm.service.url)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"URL:\")]),_c('code',{staticClass:\"value\"},[_c('a',{attrs:{\"href\":_vm.service.url,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.service.url))])])]):_vm._e(),_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Enabled:\")]),_c('span',{staticClass:\"value boolean\"},[(_vm.service.enabled === true)?_c('span',[_vm._v(\"✔️\")]):(_vm.service.enabled === false)?_c('span',[_vm._v(\"❌\")]):_c('span',[_vm._v(\"❓\")])])]),(_vm.service.created)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Created:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.created))])]):_vm._e()]),_vm._t(\"before-description\",null,null,_vm.$props),(_vm.service.description)?_c('summary',{staticClass:\"description\"},[_c('h3',[_vm._v(\"Description\")]),_c('Description',{attrs:{\"description\":_vm.service.description}})],1):_vm._e(),(_vm.hasAttributes)?_c('section',{staticClass:\"attributes\"},[_c('h3',[_vm._v(\"Exposed Capabilities from \"+_vm._s(_vm.type))]),_vm._l((_vm.service.attributes),function(value,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',[_vm._v(_vm._s(_vm._f(\"prettifyKey\")(key))+\":\")]),_c('ObjectTree',{staticClass:\"value\",attrs:{\"data\":value}})],1)})],2):_vm._e(),(_vm.hasConfig)?_c('section',{staticClass:\"parameters\"},[_c('h3',[_vm._v(\"Custom Settings for \"+_vm._s(_vm.type))]),_vm._l((_vm.service.configuration),function(value,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',[_vm._v(_vm._s(_vm._f(\"prettifyKey\")(key))+\":\")]),_c('ObjectTree',{staticClass:\"value\",attrs:{\"data\":value}})],1)})],2):_vm._e(),(_vm.service.plan || _vm.costs || _vm.budget)?_c('section',{staticClass:\"billing\"},[_c('h3',[_vm._v(\"Billing\")]),(_vm.service.plan)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Billing plan:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.service.plan))])]):_vm._e(),(_vm.costs)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Incurred Costs:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.costs))])]):_vm._e(),(_vm.budget)?_c('div',{staticClass:\"tabular\"},[_c('label',{attrs:{\"title\":\"The allowed maximum costs, specified by the user.\"}},[_vm._v(\"Budget limit:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.budget))])]):_vm._e()]):_vm._e(),(_vm.hasUsageMetrics)?_c('section',{staticClass:\"usage\"},[_c('h3',[_vm._v(\"Usage Metrics\")]),_vm._l((_vm.usage),function(metric,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',{staticClass:\"metric\"},[_vm._v(_vm._s(_vm._f(\"usageLabel\")(key)))]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"usageValue\")(metric.value))+\" \"),_c('span',{staticClass:\"unit\"},[_vm._v(_vm._s(metric.unit))])])])})],2):_vm._e(),_c('section',{staticClass:\"process\"},[_c('h3',[_vm._v(\"Process\")]),_c('Process',{staticClass:\"inline\",attrs:{\"process\":_vm.service.process,\"provideDownload\":false,\"showGraph\":true},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(p){return [_vm._t(\"process-graph\",null,{\"vBind\":p})]}}],null,true)})],1),_vm._t(\"end\",null,null,_vm.$props)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Service.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Service.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Service.vue?vue&type=template&id=5c8fba94\"\nimport script from \"./Service.vue?vue&type=script&lang=js\"\nexport * from \"./Service.vue?vue&type=script&lang=js\"\nimport style0 from \"./Service.vue?vue&type=style&index=0&id=5c8fba94&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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\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!./ServiceInfoModal.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!./ServiceInfoModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ServiceInfoModal.vue?vue&type=template&id=18f5b0b5\"\nimport script from \"./ServiceInfoModal.vue?vue&type=script&lang=js\"\nexport * from \"./ServiceInfoModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./ServiceInfoModal.vue?vue&type=style&index=0&id=18f5b0b5&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","usageLabels","cpu","memory","duration","network","disk","storage","computed","hasUsageMetrics","size","this","usage","filters","usageLabel","key","prettifyString","usageValue","num","toLocaleString","render","_vm","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","title","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","style","zIndex","backgroundClose","containerTag","smooth","stopPropagation","submitFunction","apply","startMove","close","submitButtonText","minWidth","width","height","show","position","dragPosition","left","top","open","smoothResize","setTimeout","submit","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","tagName","clientX","clientY","document","move","stopMove","container","offsetLeft","offsetTop","service","currency","$props","url","created","_f","plan","costs","budget","metric","unit","UsageMixin","Description","ObjectTree","formatBudget","formatCurrency","formatTimestamp","hasAttributes","attributes","hasConfig","configuration","toUpperCase","prettifyKey","Editor","Modal","Service","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","code","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","obj","mapObject","makeString","str","stringify","makeNumber","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","i","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/4710.b471ae93.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/UsageMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/modals/Modal.vue","webpack://@openeo/web-editor/src/components/modals/Modal.vue","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?e840","webpack://@openeo/web-editor/./src/components/modals/Modal.vue?5039","webpack://@openeo/web-editor/./src/components/modals/ServiceInfoModal.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Service.vue?827c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Service.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Service.vue?5ee3","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Service.vue","webpack://@openeo/web-editor/src/components/modals/ServiceInfoModal.vue","webpack://@openeo/web-editor/./src/components/modals/ServiceInfoModal.vue?5cf5","webpack://@openeo/web-editor/./src/components/modals/ServiceInfoModal.vue?d203","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","import Utils from '../../utils';\n\nconst usageLabels = {\n\tcpu: \"CPU usage\",\n\tmemory: \"Memory usage\",\n\tduration: \"Wall time\",\n\tnetwork: \"Network Transfer IO\",\n\tdisk: \"Storage IO\",\n\tstorage: \"Storage space\"\n};\n\nexport default {\n\tcomputed: {\n\t\thasUsageMetrics() {\n\t\t\treturn Utils.size(this.usage) > 0;\n\t\t}\n\t},\n\tfilters: {\n\t\tusageLabel(key) {\n\t\t\tif (usageLabels[key]) {\n\t\t\t\treturn usageLabels[key];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Utils.prettifyString(key);\n\t\t\t}\n\t\t},\n\t\tusageValue(num) {\n\t\t\tif (typeof num === 'number') {\n\t\t\t\treturn num.toLocaleString();\n\t\t\t}\n\t\t\treturn num;\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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',{staticClass:\"modal\",style:({'z-index': _vm.zIndex}),on:{\"mousedown\":_vm.backgroundClose}},[_c(_vm.containerTag,{ref:\"container\",tag:\"component\",staticClass:\"modal-container\",class:{smooth: _vm.smooth},style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submitFunction.apply(null, arguments)}}},[_c('header',{staticClass:\"modal-header\",on:{\"mousedown\":_vm.startMove}},[_vm._t(\"header\",function(){return [_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fa fa-times\",attrs:{\"aria-hidden\":\"true\"}})])]})],2),_c('main',{staticClass:\"modal-content\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",function(){return [(_vm.submitFunction)?_c('button',{attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.submitButtonText))]):_vm._e()]})],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!./Modal.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!./Modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=57347c15\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=57347c15&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('Modal',{attrs:{\"width\":\"80%\",\"title\":_vm.title},on:{\"closed\":function($event){return _vm.$emit('closed')}}},[_c('Service',{attrs:{\"service\":_vm.service,\"currency\":_vm.currency},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(){return [_c('Editor',{staticClass:\"infoViewer\",attrs:{\"value\":_vm.service.process,\"editable\":false,\"id\":\"servicePgViewer\"}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('article',{staticClass:\"vue-component service\"},[_vm._t(\"title\",function(){return [_c('a',{staticClass:\"anchor\",attrs:{\"name\":_vm.service.id}}),_c('h2',[_vm._v(_vm._s(_vm.service.title || _vm.service.id))])]},null,_vm.$props),_c('section',{staticClass:\"basedata\"},[_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"ID:\")]),_c('code',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.service.id))])]),_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Type:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.type))])]),(_vm.service.url)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"URL:\")]),_c('code',{staticClass:\"value\"},[_c('a',{attrs:{\"href\":_vm.service.url,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.service.url))])])]):_vm._e(),_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Enabled:\")]),_c('span',{staticClass:\"value boolean\"},[(_vm.service.enabled === true)?_c('span',[_vm._v(\"✔️\")]):(_vm.service.enabled === false)?_c('span',[_vm._v(\"❌\")]):_c('span',[_vm._v(\"❓\")])])]),(_vm.service.created)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Created:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.created))])]):_vm._e()]),_vm._t(\"before-description\",null,null,_vm.$props),(_vm.service.description)?_c('summary',{staticClass:\"description\"},[_c('h3',[_vm._v(\"Description\")]),_c('Description',{attrs:{\"description\":_vm.service.description}})],1):_vm._e(),(_vm.hasAttributes)?_c('section',{staticClass:\"attributes\"},[_c('h3',[_vm._v(\"Exposed Capabilities from \"+_vm._s(_vm.type))]),_vm._l((_vm.service.attributes),function(value,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',[_vm._v(_vm._s(_vm._f(\"prettifyKey\")(key))+\":\")]),_c('ObjectTree',{staticClass:\"value\",attrs:{\"data\":value}})],1)})],2):_vm._e(),(_vm.hasConfig)?_c('section',{staticClass:\"parameters\"},[_c('h3',[_vm._v(\"Custom Settings for \"+_vm._s(_vm.type))]),_vm._l((_vm.service.configuration),function(value,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',[_vm._v(_vm._s(_vm._f(\"prettifyKey\")(key))+\":\")]),_c('ObjectTree',{staticClass:\"value\",attrs:{\"data\":value}})],1)})],2):_vm._e(),(_vm.service.plan || _vm.costs || _vm.budget)?_c('section',{staticClass:\"billing\"},[_c('h3',[_vm._v(\"Billing\")]),(_vm.service.plan)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Billing plan:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.service.plan))])]):_vm._e(),(_vm.costs)?_c('div',{staticClass:\"tabular\"},[_c('label',[_vm._v(\"Incurred Costs:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.costs))])]):_vm._e(),(_vm.budget)?_c('div',{staticClass:\"tabular\"},[_c('label',{attrs:{\"title\":\"The allowed maximum costs, specified by the user.\"}},[_vm._v(\"Budget limit:\")]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.budget))])]):_vm._e()]):_vm._e(),(_vm.hasUsageMetrics)?_c('section',{staticClass:\"usage\"},[_c('h3',[_vm._v(\"Usage Metrics\")]),_vm._l((_vm.usage),function(metric,key){return _c('div',{key:key,staticClass:\"tabular\"},[_c('label',{staticClass:\"metric\"},[_vm._v(_vm._s(_vm._f(\"usageLabel\")(key)))]),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(_vm._f(\"usageValue\")(metric.value))+\" \"),_c('span',{staticClass:\"unit\"},[_vm._v(_vm._s(metric.unit))])])])})],2):_vm._e(),_c('section',{staticClass:\"process\"},[_c('h3',[_vm._v(\"Process\")]),_c('Process',{staticClass:\"inline\",attrs:{\"process\":_vm.service.process,\"provideDownload\":false,\"showGraph\":true},scopedSlots:_vm._u([{key:\"process-graph\",fn:function(p){return [_vm._t(\"process-graph\",null,{\"vBind\":p})]}}],null,true)})],1),_vm._t(\"end\",null,null,_vm.$props)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Service.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Service.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Service.vue?vue&type=template&id=5c8fba94\"\nimport script from \"./Service.vue?vue&type=script&lang=js\"\nexport * from \"./Service.vue?vue&type=script&lang=js\"\nimport style0 from \"./Service.vue?vue&type=style&index=0&id=5c8fba94&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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\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!./ServiceInfoModal.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!./ServiceInfoModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ServiceInfoModal.vue?vue&type=template&id=18f5b0b5\"\nimport script from \"./ServiceInfoModal.vue?vue&type=script&lang=js\"\nexport * from \"./ServiceInfoModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./ServiceInfoModal.vue?vue&type=style&index=0&id=18f5b0b5&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 { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","usageLabels","cpu","memory","duration","network","disk","storage","computed","hasUsageMetrics","size","this","usage","filters","usageLabel","key","prettifyString","usageValue","num","toLocaleString","render","_vm","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","title","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","required","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","event","loading","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","BButton","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","e","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","confirm","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","style","zIndex","backgroundClose","containerTag","smooth","stopPropagation","submitFunction","apply","startMove","close","submitButtonText","minWidth","width","height","show","position","dragPosition","left","top","open","smoothResize","setTimeout","submit","openModal","hightestModalZIndex","window","addEventListener","escCloseListener","removeEventListener","closeModal","tagName","clientX","clientY","document","move","stopMove","container","offsetLeft","offsetTop","service","currency","$props","url","created","_f","plan","costs","budget","metric","unit","UsageMixin","Description","ObjectTree","formatBudget","formatCurrency","formatTimestamp","hasAttributes","attributes","hasConfig","configuration","toUpperCase","prettifyKey","Editor","Modal","Service","ProcessImpl","BaseProcess","constructor","exporter","super","execute","generateFunction","Exporter","ProcessGraph","registry","code","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","includes","toLowerCase","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","obj","mapObject","makeString","str","stringify","makeNumber","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","async","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","i","pop","getParent","prefix","match","getTab","addCode","level","repeat","lines","trim","split","line","count","getServerUrl","getUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","Error","argList","v","strongOps","weakOps"],"sourceRoot":""} \ No newline at end of file diff --git a/js/510.9d459a06.js b/js/510.5a6e3195.js similarity index 99% rename from js/510.9d459a06.js rename to js/510.5a6e3195.js index f4557e07..01ace9f8 100644 --- a/js/510.9d459a06.js +++ b/js/510.5a6e3195.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[510],{77264:(e,t,a)=>{a.r(t),a.d(t,{default:()=>_e});var s=function(){var e=this,t=e._self._c;return e.selectedSchema?t("div",{staticClass:"fieldContainer"},[e.showDataTypeChooser?t("div",{staticClass:"dataTypeChooser"},[t("select",{attrs:{name:"dataType",disabled:!e.editable},domProps:{value:e.selectedType},on:{input:e.onSelectType}},[e.selectableTypes.length>1?e._l(e.selectableTypes,(function(a){return t("optgroup",{key:a.name,attrs:{label:a.name}},e._l(a.types,(function(a,s){return t("option",{key:s,domProps:{value:s}},[e._v(e._s(e._f("dataTypeTitle")(a)))])})),0)})):e._l(e.selectableTypes[0].types,(function(a,s){return t("option",{key:s,domProps:{value:s}},[e._v(e._s(e._f("dataTypeTitle")(a)))])}))],2)]):e._e(),!e.isItem&&e.selectedSchema.description()?t("div",{staticClass:"description"},[t("i",{staticClass:"fas fa-info-circle"}),t("Description",{attrs:{description:e.selectedSchema.description(),compact:!0}})],1):e._e(),t("ParameterDataType",{attrs:{editable:e.editable,parameter:e.parameter,schema:e.selectedSchema,context:e.context,parent:e.parent},on:{changeType:e.setSelected,reset:e.resetValue},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}})],1):e._e()},i=[],r=(a(98992),a(54520),a(72577),a(2566)),n=a(14894),o=a(28019),l=a.n(o),d=a(31572),c=null;class u extends n.JsonSchemaValidator{static create(e){return null===c&&(c=new u(e)),c}constructor(e){super(),this.store=e,this.setFileFormats(this.store.getters.fileFormats)}async validateBandName(e){return e.length>0}async validateEpsgCode(e){if(await this.store.dispatch("editor/loadEpsgCodes"),this.store.state.editor.epsgCodes[e])return!0;throw new(l().ValidationError)([{message:"Invalid EPSG code '"+e+"' specified."}])}async validateCollectionId(e){if(this.store.state.collections.filter((t=>t.id===e)).length>0)return!0;throw new(l().ValidationError)([{message:"Collection with id '"+e+"' doesn't exist."}])}async validateFilePath(e){if(this.store.getters["files/getById"](e))return!0;throw new(l().ValidationError)([{message:"File at '"+e+"' doesn't exist."}])}async validateInputFormatOptions(e){throw"Not supported"}async validateOutputFormatOptions(e){throw"Not supported"}async validateJobId(e){if(this.store.getters["jobs/getById"](e))return!0;throw new(l().ValidationError)([{message:"Job with id '"+e+"' doesn't exist."}])}async validateUri(e){if(e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/))return!0;throw new(l().ValidationError)([{message:"URI is invalid"}])}async validateUdfCode(e){if(e.match(/(\r|\n)/))return!0;throw new(l().ValidationError)([{message:"UDF Code is invalid"}])}async validateUdfRuntime(e){if(e in this.store.state.udfRuntimes)return!0;throw new(l().ValidationError)([{message:"UDF runtime '"+e+"' is not supported."}])}async validateUdfRuntimeVersion(e){if(d.Versions.validate(e))return!0;throw new(l().ValidationError)([{message:"UDF runtime version '"+e+"' is not a valid version number."}])}}var p=function(){var e=this,t=e._self._c;return t("div",{staticClass:"fieldEditorContainer"},[e.isResult?[t("div",{staticClass:"fieldValue externalData fromNode"},[t("span",[e._v("Output of "),t("code",[e._v("#"+e._s(e.state.from_node))])])]),"array"===e.nativeParameterType?t("button",{attrs:{type:"button"},on:{click:function(t){return e.convertToArray()}}},[t("i",{staticClass:"fas fa-list"}),e._v(" Convert to array")]):e._e()]:"raster-cube"===e.type||"vector-cube"===e.type||"datacube"===e.type?t("div",{staticClass:"fieldValue description"},[t("i",{staticClass:"fas fa-exclamation-circle"}),t("p",[e._v('This parameter can only be set by creating a connection between an "Output" / "Result" and this parameter in the Visual Model.')])]):e.isPgParameter?[t("div",{staticClass:"fieldValue externalData fromArgument"},[t("span",[e._v("Value of process parameter "),t("code",[e._v(e._s(e.state.from_parameter))])])]),"array"===e.nativeParameterType?t("button",{attrs:{type:"button"},on:{click:function(t){return e.convertToArray()}}},[t("i",{staticClass:"fas fa-list"}),e._v(" Convert to array")]):e._e()]:"undefined"===e.type?t("div",{staticClass:"description"},[t("i",{staticClass:"fas fa-info-circle"}),t("p",[e._v("No value is set.")])]):"null"===e.type?t("div",{staticClass:"description"},[t("i",{staticClass:"fas fa-info-circle"}),e._m(0)]):e.isSelection?t("SelectBox",{key:e.type,attrs:{type:e.type,editable:e.editable,schema:e.schema,context:e.dependency,openDirection:"band-name"===e.type?"below":"auto"},on:{onDetails:e.onSelectDetails},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):e.isTemporal?t("TemporalPicker",{key:e.type,attrs:{type:e.type,editable:e.editable},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"bounding-box"===e.type?t("MapAreaSelect",{key:e.type,staticClass:"areaSelector",attrs:{editable:e.editable},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"geojson"===e.type?t("GeoJsonEditor",{key:e.type,staticClass:"geoJsonEditor",attrs:{editable:e.editable},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"process-graph"===e.type?t("Editor",{staticClass:"callbackEditor",attrs:{editable:e.editable,parent:e.parent,parentSchema:e.schema,showDiscoveryToolbar:!0,defaultValue:e.editorDefaultValue},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"output-format-options"===e.type||"input-format-options"===e.type?t("FileFormatOptionsEditor",{ref:"fileFormatOptionsEditor",attrs:{type:e.type,format:e.dependency},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"budget"===e.type?t("Budget",{attrs:{editable:e.editable},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"duration"===e.type?t("Duration",{attrs:{editable:e.editable},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"kernel"===e.type?t("Kernel",{attrs:{editable:e.editable},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"udf-code"===e.type?t("TextEditor",{staticClass:"fieldValue textarea",attrs:{id:e.name,editable:e.editable,language:e.dependency},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"commonmark"===e.type?t("TextEditor",{staticClass:"fieldValue textarea",attrs:{id:e.name,editable:e.editable,language:"markdown"},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"wkt2-definition"===e.type||"proj-definition"===e.type?t("TextEditor",{staticClass:"fieldValue textarea",attrs:{id:e.name,editable:e.editable},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"json"==e.type?t("TextEditor",{staticClass:"fieldValue textarea",attrs:{id:e.name,editable:e.editable,language:"json"},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):"boolean"===e.type?t("input",{directives:[{name:"model",rawName:"v-model",value:e.state,expression:"state"}],staticClass:"fieldValue",attrs:{type:"checkbox",name:e.name,disabled:!e.editable},domProps:{checked:Array.isArray(e.state)?e._i(e.state,null)>-1:e.state},on:{change:function(t){var a=e.state,s=t.target,i=!!s.checked;if(Array.isArray(a)){var r=null,n=e._i(a,r);s.checked?n<0&&(e.state=a.concat([r])):n>-1&&(e.state=a.slice(0,n).concat(a.slice(n+1)))}else e.state=i}}}):"integer"===e.type||"number"===e.type?t("input",{directives:[{name:"model",rawName:"v-model.number",value:e.state,expression:"state",modifiers:{number:!0}}],staticClass:"fieldValue",attrs:{type:"number",min:e.numericMin,max:e.numericMax,step:e.numericStep,name:e.name,disabled:!e.editable},domProps:{value:e.state},on:{input:function(t){t.target.composing||(e.state=e._n(t.target.value))},blur:function(t){return e.$forceUpdate()}}}):"url"===e.type||"uri"===e.type?t("input",{directives:[{name:"model",rawName:"v-model",value:e.state,expression:"state"}],staticClass:"fieldValue",attrs:{type:"url",name:e.name,disabled:!e.editable},domProps:{value:e.state},on:{input:function(t){t.target.composing||(e.state=t.target.value)}}}):"object"===e.nativeType||"array"===e.nativeType?t("ObjectEditor",{key:e.type,attrs:{editable:e.editable,parameter:e.parameter,schema:e.schema,isObject:"object"===e.nativeType,parent:e.parent,context:e.context},model:{value:e.state,callback:function(t){e.state=t},expression:"state"}}):t("input",{directives:[{name:"model",rawName:"v-model",value:e.state,expression:"state"}],staticClass:"fieldValue",attrs:{type:"text",name:e.name,disabled:!e.editable},domProps:{value:e.state},on:{input:function(t){t.target.composing||(e.state=t.target.value)}}})],2)},m=[function(){var e=this,t=e._self._c;return t("p",[e._v("This is set to "),t("strong",[t("code",[e._v("null")])]),e._v(", which is usually used as placeholder for no-data values or a default value.")])}],h=a(61663),f=function(){var e=this,t=e._self._c;return t("div",{staticClass:"object-editor",on:{drop:e.onDrop,dragover:e.allowDrop}},[e.isTopLevel?[t("Tabs",{ref:"tabs",attrs:{id:"object-tabs",position:"bottom"}},[t("Tab",{attrs:{id:"visual",name:"Visual",icon:"fa-project-diagram",selected:!0},on:{show:e.showVisual}},[e.visual?t("ObjectEditorDnD",{ref:"visual",attrs:{parameter:e.parameter,editable:e.editable,schema:e.schema,parent:e.parent,context:e.context,value:e.data,isObject:e.isObject},on:{input:e.updateFromVisual}}):e._e()],1),t("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code"},on:{show:e.showCode}},[t("TextEditor",{ref:"sourceEditor",attrs:{editable:e.editable,value:e.data,id:"object-texteditor",language:"json"},on:{input:e.updateFromCode}})],1)],1),e.editable&&e.isObject?t("small",{staticClass:"info"},[e._v(" To easily import an object, you can drag & drop a JSON file into this area. ")]):e._e()]:[t("ObjectEditorDnD",{ref:"visual",attrs:{parameter:e.parameter,editable:e.editable,schema:e.schema,parent:e.parent,context:e.context,value:e.data,isObject:e.isObject},on:{input:e.updateFromVisual}})]],2)},y=[],b=a(4615),g=a(58379),v=function(){var e=this,t=e._self._c;return t("div",{class:{editor:!0,array:!e.isObject,object:e.isObject}},[t("div",{staticClass:"buttons"},[e.editable&&e.canAdd?t("button",{staticClass:"addBtn",attrs:{type:"button",disabled:e.count>=e.maxCount},on:{click:function(t){return e.add()}}},[t("i",{staticClass:"fas fa-plus"}),e._v(" Add")]):e._e(),t("FullscreenButton",{attrs:{element:()=>this.$el}})],1),e.elements.length?t("draggable",{attrs:{handle:".mover"},model:{value:e.elements,callback:function(t){e.elements=t},expression:"elements"}},e._l(e.elements,(function(a,s){return t("div",{key:a.id,staticClass:"fieldValue element"},[t("div",{staticClass:"row"},[t("label",{staticClass:"fieldLabel"},[e.isObject&&(a.prop.title||a.prop.required)?[e._v(e._s(a.prop.title||a.key))]:e.isObject?t("input",{directives:[{name:"model",rawName:"v-model",value:a.key,expression:"e.key"}],attrs:{type:"text",disabled:!e.editable},domProps:{value:a.key},on:{input:function(t){t.target.composing||e.$set(a,"key",t.target.value)}}}):[e._v(e._s(s+1))]],2),t("ParameterDataTypes",{attrs:{editable:e.editable,parameter:e.elementSchema(s,a.key),isItem:!0,parent:e.parent,context:e.context},model:{value:a.value,callback:function(t){e.$set(a,"value",t)},expression:"e.value"}}),e.editable&&!a.prop.required?t("button",{staticClass:"deleteBtn",attrs:{disabled:e.count<=e.minCount,type:"button"},on:{click:function(t){return e.remove(s)}}},[t("i",{staticClass:"fas fa-trash"})]):e._e(),t("button",{directives:[{name:"show",rawName:"v-show",value:e.editable&&!e.isObject,expression:"editable && !isObject"}],staticClass:"mover",attrs:{type:"button"}},[t("i",{staticClass:"fas fa-arrows-alt"})])],1),a.prop.description?t("div",{staticClass:"row"},[t("div",{staticClass:"description"},[t("i",{staticClass:"fas fa-info-circle"}),t("Description",{attrs:{description:a.prop.description,compact:!0}})],1)]):e._e()])})),0):t("div",{staticClass:"empty description"},[t("i",{staticClass:"fas fa-info-circle"}),e.isObject?[e._v(" Object is empty")]:[e._v(" Array is empty")]],2)],1)},x=[],w=(a(81454),a(432)),T=a.n(w),j=a(27261),A=a(92622);const _={name:"ObjectEditorDnD",components:{draggable:T(),Description:j["default"],FullscreenButton:A.A,ParameterDataTypes:()=>Promise.resolve().then(a.bind(a,77264))},props:{parameter:Object,editable:{type:Boolean,default:!0},schema:Object,value:{},isObject:{type:Boolean,default:!1},parent:Object,context:{}},data(){return{elements:[]}},computed:{count(){return r.A.size(this.elements)},maxCount(){return(this.isObject?this.schema.schema.maxProperties:this.schema.schema.maxItems)||Number.MAX_VALUE},minCount(){return(this.isObject?this.schema.schema.minProperties:this.schema.schema.minItems)||0},canAdd(){return!this.isObject||!1!==this.schema.schema.additionalProperties},prefill(){let e=this.schema.schema;if(this.isObject&&r.A.isObject(e.properties)){let t=[];for(let a in e.properties){const s=e.properties[a];if(s.not)continue;let i=!1;Array.isArray(e.required)&&e.required.includes(a)&&(i=!0),t.push(Object.assign({name:a,required:i},s))}return t}return!this.isObject&&this.minCount>0?[...Array(this.minCount).keys()].map((e=>({name:e}))):[]},newValue(){if(this.isObject){let e={};for(let t of this.elements)e[t.key]=t.value;return e}return this.elements.map((e=>e.value))}},watch:{newValue:{deep:!0,handler(e){this.$emit("input",e)}},value:{immediate:!0,handler(e){if(this.newValue!==e)if(this.elements=[],0===r.A.size(e)&&this.prefill.length>0)for(let t of this.prefill)this.add(t.name,void 0,t);else if(e&&"object"===typeof e)for(let t in e)this.add(t,e[t])}}},methods:{elementSchema(e,t=null){let a=d.ProcessUtils.getElementJsonSchema(this.schema.schema,t||e),s=new d.ProcessSchema(a);return this.schema.parent instanceof d.ProcessSchema&&(s.refs=this.schema.parent.refs||[]),s},add(e=null,t=void 0,a={}){let s={id:String(this.elements.length),value:t};this.isObject&&(s.key=e||"unnamed"+this.elements.length),s.prop=a,"undefined"===typeof s.value&&("undefined"!==typeof a.default?s.value=a.default:s.value=this.elementSchema(this.elements.length,s.key).default),this.elements.push(s)},remove(e){this.elements.splice(e,1)}}},S=_;var C=a(81656),O=(0,C.A)(S,v,x,!1,null,"4e9c9c72",null);const P=O.exports;var E=a(20600);const D={name:"ObjectEditor",components:{ObjectEditorDnD:P,Tab:g["default"],Tabs:b["default"],TextEditor:E.A},data(){return{data:this.value,visual:!0,isTopLevel:!0}},props:{parameter:Object,editable:{type:Boolean,default:!0},schema:Object,value:{},isObject:{type:Boolean,default:!1},parent:Object,context:{}},watch:{value(e){this.data=e},data(e){this.$emit("input",e)}},mounted(){let e=this.$parent;while(e){if("ObjectEditor"===e.$options.name){this.isTopLevel=!1;break}e=e.$parent}},methods:{showVisual(){this.visual=!0},showCode(){this.visual=!1,this.$refs.sourceEditor.updateState()},updateFromCode(e){this.visual||(this.data=e)},updateFromVisual(e){this.visual&&(this.data=e)},allowDrop(e){this.editable&&this.isTopLevel&&e.preventDefault()},onDrop(e){let t=e.dataTransfer.files;if(1===t.length){let t=e.dataTransfer.files[0],s=["text/json","application/json","application/geo+json","text/plain"],i=t.name.toLowerCase(),n=s.includes(t.type)||i.endsWith(".geojson")||i.endsWith(".json");if(n){var a=new FileReader;a.onload=async e=>{let t;try{t=JSON.parse(e.target.result)}catch(a){return console.error(a),r.A.error(this,"The provided file is not a valid JSON file")}this.isObject&&r.A.isObject(t)||!this.isObject&&Array.isArray(t)?this.data=t:r.A.error(this,"The provided file doesn't seem to be a JSON file that contains an object")},a.onerror=e=>r.A.exception(this,e,"Reading the file failed"),a.readAsText(t,"UTF-8")}}else r.A.error(this,"Please provide a single JSON file");return e.preventDefault()}}},V=D;var k=(0,C.A)(V,f,y,!1,null,"909fe7a6",null);const F=k.exports;var B=function(){var e=this,t=e._self._c;return t("div",{staticClass:"datatypeEditor budget"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.hasBudget,expression:"hasBudget"}],attrs:{type:"checkbox",disabled:!e.editable},domProps:{checked:Array.isArray(e.hasBudget)?e._i(e.hasBudget,null)>-1:e.hasBudget},on:{change:function(t){var a=e.hasBudget,s=t.target,i=!!s.checked;if(Array.isArray(a)){var r=null,n=e._i(a,r);s.checked?n<0&&(e.hasBudget=a.concat([r])):n>-1&&(e.hasBudget=a.slice(0,n).concat(a.slice(n+1)))}else e.hasBudget=i}}}),t("input",{directives:[{name:"model",rawName:"v-model.number",value:e.amount,expression:"amount",modifiers:{number:!0}}],attrs:{type:"number",min:"0.00",max:e.max,step:"0.01",disabled:!e.hasBudget||!e.editable},domProps:{value:e.amount},on:{input:function(t){t.target.composing||(e.amount=e._n(t.target.value))},blur:function(t){return e.$forceUpdate()}}}),e._v(" "+e._s(e.capabilities.currency())+" ")])},N=[];const J={name:"Budget",computed:{...r.A.mapState(["userInfo"]),...r.A.mapGetters(["capabilities"]),max(){return this.userInfo.budget>0?this.userInfo.budget:Number.MAX_VALUE}},props:{value:{type:Number,default:null},editable:{type:Boolean,default:!0}},data(){return{hasBudget:"number"===typeof this.value,amount:this.value}},watch:{hasBudget(){this.updateData()},amount(){this.updateData()}},methods:{updateData(){this.$emit("input",this.hasBudget&&!Number.isNaN(this.amount)?this.amount:null)}}},I=J;var $=(0,C.A)(I,B,N,!1,null,null,null);const R=$.exports;var M=a(15486),G=function(){var e=this,t=e._self._c;return t("div",{staticClass:"geojson-editor",on:{drop:e.onDrop,dragover:e.allowDrop}},[t("Tabs",{ref:"tabs",attrs:{id:"geojson-tabs",position:"bottom"}},[t("Tab",{attrs:{id:"map",name:"Map",icon:"fa-map",selected:!0},on:{show:e.showMap}},[t("GeoJsonMapEditor",{ref:"map",attrs:{editable:e.editable},model:{value:e.data,callback:function(t){e.data=t},expression:"data"}})],1),t("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code"},on:{show:e.showCode}},[t("TextEditor",{ref:"sourceEditor",attrs:{editable:e.editable,id:"geojson-texteditor",language:"json"},model:{value:e.data,callback:function(t){e.data=t},expression:"data"}})],1)],1),e.editable?t("small",{staticClass:"info"},[e._v(" To easily import your area of interest, you can drag & drop GeoJSON and KML files into this area. ")]):e._e()],1)},U=[],L=function(){var e=this,t=e._self._c;return t("div",{staticClass:"geojson-map-editor",attrs:{id:e.id}},[t("ProgressControl",{ref:"progress",attrs:{map:e.map}}),t("UserLocationControl",{attrs:{map:e.map}})],1)},q=[],W=a(95104),K=a(66451),z=a(31660),Y=a(41312),X=a(78983),H=a(70915),Q=a(43070),Z=a(7683),ee=a(26186),te=a(47921);const ae={name:"GeoJsonMapEditor",mixins:[z.A,W.A,K.A],props:{value:{type:Object,default:null}},data(){return{geoJsonLayer:null}},methods:{async renderMap(){let e=!0;if(this.value){let t=this.createGeoJsonSource(this.value),a=t.getExtent();(0,H.Im)(a)||(e=!1!==r.A.isBboxInWebMercator(r.A.extentToBBox(a)))}if(await this.createMap(e?"EPSG:3857":"EPSG:4326"),this.addBasemaps(),this.editable?this.geoJsonLayer=this.geoJsonEditor(e?this.value:source):this.geoJsonLayer=this.addGeoJson(e?this.value:source),this.editable){var t=()=>this.$emit("input",this.getGeoJson());this.geoJsonLayer.getSource().on("change",t),this.addGeocoder((e=>{if(!e)return;let t=(new Y.A).readFeature(e,{featureProjection:this.map.getView().getProjection()});this.geoJsonLayer.getSource().addFeature(t),this.map.getView().fit(this.geoJsonLayer.getSource().getExtent(),this.getFitOptions())}),!0)}},geoJsonEditor(e){var t=this.addGeoJson(e),a=new Q.A;this.map.addControl(a);var s=new ee.A({source:t.getSource(),interactions:{Info:!1,DrawHole:!1,Offset:!1,Split:!1}});a.addControl(s);var i=new te.A;this.map.addInteraction(i),i.on("undo",(e=>{"addfeature"===e.action.type&&(s.getInteraction("Select").getFeatures().clear(),s.getInteraction("Transform").select())}));var r=new Q.A({group:!0,controls:[new Z.A({html:'',title:"Undo",handleClick:()=>i.undo()}),new Z.A({html:'',title:"Redo",handleClick:()=>i.redo()})]});return a.addControl(r),this.map.addInteraction(new X.A({source:t.getSource()})),t},getGeoJson(){var e=new Y.A,t=this.geoJsonLayer.getSource().getFeatures(),a=[];for(var s in t)a.push(e.writeFeatureObject(t[s],{dataProjection:"EPSG:4326",featureProjection:this.map.getView().getProjection()}));return 0===a.length?null:1===a.length?!a[0].properties&&a[0].geometry?a[0].geometry:a[0]:{type:"FeatureCollection",features:a}}}},se=ae;var ie=(0,C.A)(se,L,q,!1,null,null,null);const re=ie.exports;var ne=a(20992);const oe={name:"GeoJsonEditor",components:{GeoJsonMapEditor:re,Tab:g["default"],Tabs:b["default"],TextEditor:E.A},data(){return{data:this.value}},props:{editable:{type:Boolean,default:!0},value:{type:Object,default:null}},watch:{value(e){this.data=e},data(e){this.$emit("input",e)}},methods:{showMap(){this.$refs.map.renderMap()},showCode(){this.$refs.sourceEditor.updateState()},allowDrop(e){this.editable&&e.preventDefault()},onDrop(e){let t=e.dataTransfer.files;if(1===t.length){let t=e.dataTransfer.files[0],s=["text/json","application/json","application/geo+json","text/plain"],i=["text/xml","application/xml","application/vnd.google-earth.kml+xml"],n=t.name.toLowerCase(),o=s.includes(t.type)||n.endsWith(".geojson")||n.endsWith(".json"),l=i.includes(t.type)||n.endsWith(".kml")||n.endsWith(".xml");if(o||l){var a=new FileReader;a.onload=async e=>{let t;if(l)try{t=(0,ne.bW)((new DOMParser).parseFromString(e.target.result,"text/xml"))}catch(a){return console.error(a),r.A.error(this,"The provided file is not a valid KML file")}else try{t=JSON.parse(e.target.result)}catch(a){return console.error(a),r.A.error(this,"The provided file is not a valid JSON file")}r.A.detectGeoJson(t)?(this.data=t,this.$refs.map&&this.$refs.map.renderMap()):r.A.error(this,"The provided file doesn't seem to be a GeoJSON file")},a.onerror=e=>r.A.exception(this,e,"Reading the file failed"),a.readAsText(t,"UTF-8")}}else r.A.error(this,"Please provide a single JSON or GeoJSON file");return e.preventDefault()}}},le=oe;var de=(0,C.A)(le,G,U,!1,null,"6d150dd6",null);const ce=de.exports;var ue=a(60478);const pe={name:"ParameterDataType",mixins:[h.A],components:{ObjectEditor:F,Budget:R,MapAreaSelect:M.A,GeoJsonEditor:ce,TextEditor:E.A,Editor:()=>Promise.all([a.e(4638),a.e(3298)]).then(a.bind(a,92385)),FileFormatOptionsEditor:()=>a.e(4016).then(a.bind(a,54016)),ParameterDataTypes:()=>Promise.resolve().then(a.bind(a,77264)),Duration:()=>a.e(3165).then(a.bind(a,63165)),Kernel:()=>a.e(1203).then(a.bind(a,1203)),SelectBox:()=>Promise.all([a.e(5262),a.e(5213)]).then(a.bind(a,5213)),TemporalPicker:()=>Promise.all([a.e(7349),a.e(4741)]).then(a.bind(a,27349))},props:{parameter:Object,editable:{type:Boolean,default:!0},schema:Object,value:{},context:{},parent:{}},data(){return{state:this.value}},computed:{type(){return this.schema.dataType()},nativeType(){return this.schema.nativeDataType()},nativeParameterType(){return this.parameter.nativeDataType()},editorDefaultValue(){if("process-graph"===this.type){if("undefined"!==typeof this.parameter.default)return this.parameter.default;if(this.parameter.nullable())return null}},isTemporal(){return"date"===this.type||"time"===this.type||"date-time"===this.type||"temporal-interval"===this.type||"year"===this.type},isSelection(){switch(this.type){case"collection-id":case"job-id":case"file-path":case"file-paths":case"epsg-code":case"input-format":case"openeo-datatype":case"output-format":case"service-type":case"billing-plan":case"udf-runtime":case"udf-runtime-version":return!0;case"band-name":return!!this.dependency;default:return this.schema.isEnum()}},name(){return this.parameter.name+(Array.isArray(this.parameter.value)?"[]":"")},isResult(){return Boolean(r.A.isObject(this.state)&&this.state.from_node&&1===r.A.size(this.state)&&this.schema.schema.isRef)},isPgParameter(){return Boolean(r.A.isObject(this.state)&&this.state.from_parameter&&1===r.A.size(this.state)&&this.schema.schema.isRef)},numericMin(){return"number"===typeof this.schema.minimum?this.schema.minimum:""},numericMax(){return"number"===typeof this.schema.maximum?this.schema.maximum:""},numericStep(){return"number"===typeof this.schema.multipleOf?this.schema.multipleOf:"integer"===this.type?1:"any"},newValue(){if("number"===this.type){var e=Number.parseFloat(this.state);return Number.isNaN(e)?null:e}if("integer"===this.type){e=Number.parseInt(this.state);return Number.isNaN(e)?null:e}if("null"===this.type)return null;if("string"===typeof this.state&&this.state.length>0&&("any"===this.type||"mixed"===this.type)){e=Number(this.state);return Number.isNaN(e)?this.state:e}return this.state},dependency(){switch(this.type){case"output-format-options":case"input-format-options":return this.getValueFromOtherParameterByDataType(this.type.replace("-options",""));case"udf-runtime-version":case"udf-code":return this.getValueFromOtherParameterByDataType("udf-runtime");case"band-name":return this.getValueFromOtherParameterByDataType("collection-id");case"array":if("band-name"===ue.A.arrayOf(this.schema))return this.getValueFromOtherParameterByDataType("collection-id");default:return}}},watch:{value(e){e!==this.newValue&&(this.state=this.value)},newValue(e){this.$emit("input",e)},dependency(e,t){"undefined"!==typeof t&&e!==t&&this.$emit("reset")}},methods:{getValueFromOtherParameterByDataType(e){if(r.A.isObject(this.context)&&r.A.isObject(this.context.schemas)&&r.A.isObject(this.context.values))for(let t in this.context.schemas){let a=this.context.schemas[t];if(r.A.isObject(a)&&a.dataType()===e)return this.context.values[t]}},convertToArray(){this.state=[this.state],this.$emit("input",this.state),this.$emit("changeType","array")},onSelectDetails(){"collection-id"===this.type&&this.broadcast("showCollection",this.state)}}},me=pe;var he=(0,C.A)(me,p,m,!1,null,"0b98f1e9",null);const fe=he.exports;var ye=a(63610);const be=["Basics","References","Spatial","Temporal","File and Folders","Resources","CRS","UDF","Other"],ge=e=>e&&"object"===typeof e?r.A.deepClone(e):e,ve=()=>(new Date).toISOString().replace(/\.\d+/,""),xe=[{subtype:"undefined",title:"No Value",const:void 0,not:{},group:"Basics"},{type:"null",const:null,group:"Basics"},{type:"string",default:"",group:"Basics"},{type:"integer",default:0,group:"Basics"},{type:"number",default:0,group:"Basics"},{type:"boolean",default:!1,group:"Basics"},{type:"array",default:[],group:"Basics"},{type:"object",default:{},group:"Basics",properties:{from_node:{not:{}},from_parameter:{not:{}}},default:{}},{type:"string",subtype:"date-time",format:"date-time",title:"Date and Time",group:"Temporal",default:()=>ve()},{type:"string",subtype:"date",format:"date",title:"Date only",group:"Temporal",default:()=>ve().substring(0,10)},{type:"string",subtype:"time",format:"time",title:"Time only",group:"Temporal",default:()=>ve().substring(11)},{type:"string",subtype:"year",title:"Year only",group:"Temporal"},{type:"array",subtype:"temporal-interval",title:"Temporal interval",group:"Temporal"},{type:"array",subtype:"temporal-intervals",title:"Temporal intervals (multiple)",group:"Temporal",default:[]},{type:"object",subtype:"geojson",title:"GeoJSON",group:"Spatial"},{type:"object",subtype:"bounding-box",title:"Bounding Box",group:"Spatial"},{type:"string",subtype:"band-name",title:"Band",group:"Resources"},{type:"string",subtype:"collection-id",title:"Collection",group:"Resources"},{type:"string",subtype:"job-id",title:"Batch Job",group:"Resources"},{type:"string",subtype:"udf-code",title:"UDF Source Code",group:"UDF",default:""},{type:"string",subtype:"udf-runtime",title:"UDF Runtime",group:"UDF"},{type:"string",subtype:"udf-runtime-version",title:"UDF Runtime Version",group:"UDF",any:!1},{type:"integer",subtype:"epsg-code",title:"EPSG Code (CRS)",group:"CRS"},{type:"string",subtype:"proj-definition",title:"PROJ defintiion (CRS)",group:"CRS",default:""},{type:"string",subtype:"wkt2-definition",title:"WKT2 defintiion (CRS)",group:"CRS",default:""},{type:"array",subtype:"file-path",title:"File path",group:"File and Folders"},{type:"array",subtype:"file-paths",title:"File paths (multiple)",group:"File and Folders",default:[]},{type:"string",subtype:"uri",format:"uri",title:"URI / URL",group:"File and Folders"},{type:"string",subtype:"output-format",title:"Export file format",group:"File and Folders"},{type:"object",subtype:"output-format-options",title:"Export file format parameters",group:"File and Folders",any:!1},{type:"string",subtype:"input-format",title:"Import file format",group:"File and Folders"},{type:"object",subtype:"input-format-options",title:"Import file format parameters",group:"File and Folders",any:!1},{type:"object",subtype:"process-graph",title:"Custom Process"},{tyoe:"object",subtype:"json-schema",title:"Data Type (JSON Schema)",any:!1},{subtype:"json",title:"JSON",noAutoDetect:!0}],we={type:"object",additionalProperties:!1,properties:{from_node:{type:"string"},from_parameter:{type:"string"}}},Te={name:"ParameterDataTypes",mixins:[h.A],components:{Description:j["default"],ParameterDataType:fe},props:{parameter:{type:Object,default:()=>new d.ProcessParameter({})},editable:{type:Boolean,default:!0},value:{},isItem:{type:Boolean,default:!1},context:{},parent:{}},data(){return{state:void 0,selectedType:null,selectedNativeType:null,selectedSchema:null,jsonSchemaValidator:u.create(this.$store)}},filters:{dataTypeTitle(e){if(e.schema&&!e.schema.title){let t=xe.find((t=>t.subtype===e.schema.subtype||t.type===e.schema.type));if(t&&t.title)return t.title}return e.title()}},async created(){await this.detectType()},computed:{refSchemas(){if(!Array.isArray(this.parameter.refs))return{};let e={};for(let t of this.parameter.refs){let a;t.from_node?(a="from_node:"+t.from_node,e[a]=new d.ProcessDataType({type:"object",group:"References",subtype:a,isRef:"from_node",from_node:t.from_node,title:"Output of #"+t.from_node,required:["from_node"],properties:{from_node:{type:"string",const:t.from_node}},default:t,additionalProperties:!1})):t.from_parameter&&(a="from_parameter:"+t.from_parameter,e[a]=new d.ProcessDataType({type:"object",group:"References",subtype:a,isRef:"from_parameter",from_parameter:t.from_parameter,title:'Value of process parameter "'+t.from_parameter+'"',required:["from_parameter"],properties:{from_parameter:{type:"string",const:t.from_parameter}},default:t,additionalProperties:!1}))}return e},showDataTypeChooser(){return r.A.size(this.allowedTypes)>1},allowedTypes(){let e={};if("any"===this.parameter.dataType())Object.assign(e,this.supportedTypes);else for(let t of this.parameter.schemas){const a=this.getUniqueKey(e,t.dataType());e[a]=t}return Object.assign(e,this.refSchemas),e},supportedTypes(){let e={};for(let t of xe){if(!1===t.any)continue;const a=t.subtype||t.type,s=Object.assign({},ye.API_TYPES[a],t);e[a]=new d.ProcessDataType(s,this.parameter)}return e},selectableTypes(){let e={};for(let a in this.allowedTypes){let t=this.allowedTypes[a],s=t.group();r.A.isObject(e[s])||(e[s]={}),e[s][a]=t}let t=be.map((t=>({name:t,types:e[t]||[]}))).filter((e=>0!==e.types.length));return t},detectableTypes(){const e={};for(let t in this.allowedTypes){let a=this.allowedTypes[t];a.schema.noAutoDetect||(e[t]=a)}return e}},watch:{value:{immediate:!0,handler(e){"undefined"!==typeof this.state&&e===this.state||("undefined"!==typeof e||this.allowedTypes.undefined?this.state=e:this.state=ge(this.parameter.default))}},state:{deep:!0,handler(e){this.$emit("input",e)}},selectedType(e){this.$emit("schemaSelected",this.supportedTypes[e])}},methods:{getUniqueKey(e,t){let a=t,s=2;while(e[a])a=t+String(s),s++;return a},async isValueInvalid(e,t){let a=r.A.deepClone(t);"array"===a.type&&r.A.isObject(a.items)&&(a.items={oneOf:[a.items,we]});let s=await this.jsonSchemaValidator.validateValue(e,a);return s.length>0},async getTypeForValue(e,t){const a=[];for(let i in e){let r=e[i];try{if(await this.isValueInvalid(t,r.schema))continue;a.push(i)}catch(s){}}return a},async detectType(){let e=Object.keys(this.allowedTypes),t="undefined"===typeof this.state;if(0===e.length)await this.setSelected("json");else if(1===e.length)await this.setSelected(e[0],t);else if(t)if(this.allowedTypes.undefined)await this.setSelected(this.allowedTypes.undefined,!1);else{let t=e.filter((e=>"null"!==e));await this.setSelected(t[0],!0)}else{let e=await this.getTypeForValue(this.detectableTypes,this.state);if(0===e.length)await this.setSelected("json");else if(1===e.length)await this.setSelected(e[0]);else{e.includes("integer")&&e.includes("number")&&(e=e.filter((e=>"integer"!==e))),!r.A.isRef(this.state)&&e.length>1&&console.warn("A parameter is ambiguous. Potential types: "+e.join(", ")+". Value: "+JSON.stringify(this.state));let t=e.findIndex((e=>ye.NATIVE_TYPES.includes(e)));-1===t&&(t=0),await this.setSelected(e[t])}}},async onSelectType(e){await this.setSelected(e.target.value,!0)},resetValue(){this.state=ge(this.parameter.default),this.detectType()},async setSelected(e,t=!1){let a=e;if(e instanceof d.ProcessDataType?(this.selectedSchema=e,this.selectedType=e.dataType(),a=e.nativeDataType()):(this.selectedSchema=this.allowedTypes[e]?this.allowedTypes[e]:this.supportedTypes[e],this.selectedType=e),t){if("number"===typeof this.state&&"string"===a)this.state=String(this.state);else if("string"===typeof this.state&&"integer"===a){if(this.state.match(/^([+-]?\d+)$/)){let e=Number.parseInt(this.state,10);Number.isNaN(e)||(this.state=e)}}else if("string"===typeof this.state&&"number"===a){let e=Number.parseFloat(this.state);Number.isNaN(e)||(this.state=e)}if(this.selectedSchema.isNull())this.state=null;else if("undefined"!==typeof this.selectedSchema.const)this.state=this.selectedSchema.const;else if(this.selectedSchema.isEnum()&&1===this.selectedSchema.getEnumChoices().length)this.state=this.selectedSchema.getEnumChoices()[0];else{let e=ge(this.selectedSchema.default());try{("undefined"===typeof this.state||await this.isValueInvalid(this.state,this.selectedSchema))&&(this.state=e)}catch(s){this.state=e}}}}}},je=Te;var Ae=(0,C.A)(je,s,i,!1,null,null,null);const _e=Ae.exports},10510:(e,t,a)=>{a.d(t,{A:()=>p});var s=function(){var e=this,t=e._self._c;return t("div",{staticClass:"parameters"},e._l(e.parameters,(function(a,s){return t("div",{directives:[{name:"show",rawName:"v-show",value:e.toggleParamVisibility(a),expression:"toggleParamVisibility(param)"}],key:s,staticClass:"fieldRow"},[t("label",{class:{fieldLabel:!0,highlight:a.name===e.selectParameter,info:a.info}},[e._v(" "+e._s(e.displayLabel(a))+" "),a.info||a.optional?e._e():t("strong",{staticClass:"required",attrs:{title:"required"}},[e._v("*")]),a.description?t("div",{staticClass:"description"},[t("Description",{attrs:{description:a.description}})],1):e._e()]),a.info?e._e():t("ParameterDataTypes",{ref:a.name,refInFor:!0,attrs:{editable:e.editable,parameter:a,context:e.context,parent:e.parent},on:{schemaSelected:function(t){return e.updateType(a,t)}},model:{value:e.value[a.name],callback:function(t){e.$set(e.value,a.name,t)},expression:"value[param.name]"}}),!a.info&&a.unspecified?t("button",{staticClass:"deleteBtn",attrs:{title:"Delete unspecified parameter",type:"button"},on:{click:function(t){return e.deleteParam(s)}}},[t("i",{staticClass:"fas fa-trash"})]):e._e()],1)})),0)},i=[],r=a(2566),n=a(27261),o=a(77264);const l={name:"Parameters",components:{Description:n["default"],ParameterDataTypes:o["default"]},props:{parameters:{type:Array,required:!0},value:{type:Object,required:!0},editable:{type:Boolean,default:!0},selectParameter:{type:String,default:null},parent:{type:Object,default:null}},data(){return{show:!0,schemas:{}}},computed:{context(){return{values:this.value,schemas:this.schemas,parameters:this.parameters}}},watch:{value:{deep:!0,handler(){this.$emit("input",this.value)}}},mounted(){this.$nextTick((()=>this.setSelected()))},methods:{toggleParamVisibility(e){return!e||!e.toggledBy||!!this.value[e.toggledBy]},deleteParam(e){let t=this.parameters[e].name;this.$delete(this.parameters,e),this.$delete(this.schemas,t),this.$delete(this.value,t)},updateType(e,t){this.$set(this.schemas,e.name,t)},displayLabel(e){return"string"===typeof e.label&&e.label.length>0?e.label:r.A.prettifyString(e.name)},componentforParameter(e){return e&&Array.isArray(this.$refs[e])&&this.$refs[e][0]?this.$refs[e][0]:null},setSelected(e=0){let t;this.selectParameter?t=this.componentforParameter(this.selectParameter):this.parameters.length>0&&(t=this.componentforParameter(this.parameters[0].name)),t&&(t.$el&&t.$el.scrollIntoView?(this.selectParameter&&t.$el.scrollIntoView(),this.setInputFocus(t.$el)):e<10&&setTimeout((()=>this.setSelected(++e)),250))},setInputFocus(e,t=0){if(e.querySelector){let t=e.querySelector('input:not([type="hidden"]):not([disabled]):not([class~="multiselect__input"]), button:not([disabled]), textarea:not([disabled]), select:not([disabled]), datalist:not([disabled])');t&&t.focus()}else t<10&&setTimeout((()=>this.setInputFocus(e,++t)),250)}}},d=l;var c=a(81656),u=(0,c.A)(d,s,i,!1,null,"e173c10e",null);const p=u.exports},31660:(e,t,a)=>{a.d(t,{A:()=>p});a(81454);var s=a(66684),i=a.n(s);a(98992),a(54520);class r{constructor(e,t=!1){this.url=e,this.geojson=t}getParameters(e){return{url:this.url,params:{q:e.query,format:"json",limit:10,"accept-language":"en",polygon_geojson:this.geojson?1:0,polygon_threshold:.001}}}handleResponse(e){return 0===e.length?[]:e.filter((e=>["boundary","geological","leisure","natural","place","water","waterway"].includes(e.class))).map((e=>({lon:e.lon,lat:e.lat,bbox:e.boundingbox,address:{name:e.display_name},original:{formatted:e.display_name,details:e.address,geojson:e.geojson}})))}}const n={methods:{addGeocoder(e,t=!1){if(!this.$config.geocoder)return;const a={provider:new r(this.$config.geocoder,t),placeholder:"Search for ...",keepOpen:!0,preventDefault:!0},s=new(i())("nominatim",a);s.on("addresschosen",(a=>{if(t)e(a.place?.original?.geojson,a);else if(a.place.bbox){let t=a.place.bbox.map((e=>parseFloat(e))),s={west:t[2],east:t[3],north:t[1],south:t[0]};e(s,a)}else e(null,a)})),this.map.addControl(s)}}},o=n;var l,d,c=a(81656),u=(0,c.A)(o,l,d,!1,null,null,null);const p=u.exports},15486:(e,t,a)=>{a.d(t,{A:()=>x});a(81454);var s=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:e.id}},[t("ProgressControl",{ref:"progress",attrs:{map:e.map}}),t("UserLocationControl",{attrs:{map:e.map}}),t("TextControl",{attrs:{text:e.help,map:e.map}})],1)},i=[],r=a(66451),n=a(31660),o=a(95104),l=a(2566),d=a(73926),c=a(89718),u=a(70915),p=a(29276),m=a(63105),h=a(953),f=a(13628);const y={name:"MapAreaSelect",mixins:[r.A,n.A,o.A],components:{TextControl:m.A},props:{value:{type:[Object,Array],default:()=>null},showMaxExtent:{type:[Object,Array],default:()=>null}},data(){return{interaction:null,extent:this.toExtent(this.value)}},computed:{returnAsObject(){return!Array.isArray(this.value)},projectedExtent(){return this.extent?(0,c.transformExtent)(this.extent,"EPSG:4326",this.map.getView().getProjection()):null},outerArea(){if(!this.showMaxExtent)return null;let{west:e,east:t,north:a,south:s}=this.showMaxExtent;return{type:"Polygon",coordinates:[[[-180,90],[-180,-90],[180,-90],[180,90],[-180,90]],[[e,a],[e,s],[t,s],[t,a],[e,a]]]}},bbox(){return l.A.extentToBBox(this.extent)},help(){return this.extent?"Click inside the bounding box to remove it.":"Click on the map to add a bounding box."}},methods:{update(e){e.extent?this.extent=(0,c.transformExtent)(e.extent,this.map.getView().getProjection(),"EPSG:4326"):this.extent=null,this.$emit("input",this.returnAsObject?this.bbox:this.extent)},async renderMap(){let e=!1!==l.A.isBboxInWebMercator(this.bbox);if(await this.createMap(e?"EPSG:3857":"EPSG:4326"),this.addBasemaps(),this.addGeocoder((e=>{if(!e)return;let t=this.toExtent(e);t=(0,c.transformExtent)(t,"EPSG:4326",this.map.getView().getProjection()),this.interaction.setExtent(t),this.fitMap()})),this.showMaxExtent){const e=new p["default"]({fill:new f.A({color:"#00000099"}),stroke:new h.A({width:0,color:"#00000000"})});this.addGeoJson(this.outerArea,!1,"unsupported area",e);let t=this.toExtent(this.showMaxExtent);t=(0,c.transformExtent)(t,"EPSG:4326",this.map.getView().getProjection()),this.map.getView().fit(t,this.getFitOptions(1))}let t=e=>{if(!this.editable)return!1;if("singleclick"===e.type){if(!this.extent){let t=this.map.getSize().map((e=>.2*e)),a=this.map.getView().calculateExtent(t),s=[a[2]-a[0],a[3]-a[1]],i=[e.coordinate[0]-s[0],e.coordinate[1]-s[1],e.coordinate[0]+s[0],e.coordinate[1]+s[1]];return this.interaction.setExtent(i),!1}(0,u.Rj)(this.projectedExtent,...e.coordinate)&&(this.interaction.setExtent(null),this.interaction.vertexOverlay_.getSource().clear(),this.interaction.vertexFeature_=null)}else if(this.interaction.handlingDownUpSequence||this.interaction.snapToVertex_(e.pixel,e.map))return!0;return!1};this.interaction=new d.A({extent:this.projectedExtent,condition:t,boxStyle:(0,p.createDefaultStyle)(),pixelTolerance:15}),this.editable&&this.interaction.on("extentchanged",this.update),this.map.addInteraction(this.interaction),this.fitMap()},fitMap(){if(this.projectedExtent){var e=this.getFitOptions(this.editable?10:33);this.map.getView().fit(this.projectedExtent,e)}}}},b=y;var g=a(81656),v=(0,g.A)(b,s,i,!1,null,null,null);const x=v.exports},63105:(e,t,a)=>{a.d(t,{A:()=>c});var s=function(){var e=this,t=e._self._c;return e.texts.length>0?t("div",{staticClass:"ol-unselectable ol-control value",class:{pointer:e.texts.length>1},on:{click:e.toggle}},[e._v(e._s(e.current))]):e._e()},i=[],r=a(23634);const n={name:"TextControl",mixins:[r.A],data(){return{i:0}},computed:{texts(){return Array.isArray(this.text)?this.text:"string"===typeof this.text&&this.text.length>0?[this.text]:[]},current(){return 0===this.texts.length?"":this.texts[this.i%this.text.length]}},props:{text:{type:[String,Array],default:""}},methods:{toggle(){this.i++}}},o=n;var l=a(81656),d=(0,l.A)(o,s,i,!1,null,"b1521986",null);const c=d.exports},63610:(e,t,a)=>{a.r(t),a.d(t,{API_TYPES:()=>i,NATIVE_TYPES:()=>r});var s=a(2566);const i=s.A.resolveJsonRefs(a(96318)).definitions,r=["string","integer","number","boolean","array","object"]}}]); -//# sourceMappingURL=510.9d459a06.js.map \ No newline at end of file +//# sourceMappingURL=510.5a6e3195.js.map \ No newline at end of file diff --git a/js/510.9d459a06.js.map b/js/510.5a6e3195.js.map similarity index 99% rename from js/510.9d459a06.js.map rename to js/510.5a6e3195.js.map index 5afe07bf..bc423365 100644 --- a/js/510.9d459a06.js.map +++ b/js/510.5a6e3195.js.map @@ -1 +1 @@ -{"version":3,"file":"js/510.9d459a06.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/ParameterDataTypes.vue","webpack://@openeo/web-editor/./src/components/jsonSchema.js","webpack://@openeo/web-editor/./src/components/ParameterDataType.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditor.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditorDnD.vue","webpack://@openeo/web-editor/src/components/datatypes/ObjectEditorDnD.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditorDnD.vue?c9d9","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditorDnD.vue?cf02","webpack://@openeo/web-editor/src/components/datatypes/ObjectEditor.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditor.vue?83c1","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditor.vue?4916","webpack://@openeo/web-editor/./src/components/datatypes/Budget.vue","webpack://@openeo/web-editor/src/components/datatypes/Budget.vue","webpack://@openeo/web-editor/./src/components/datatypes/Budget.vue?1c0c","webpack://@openeo/web-editor/./src/components/datatypes/Budget.vue?bc62","webpack://@openeo/web-editor/./src/components/datatypes/GeoJsonEditor.vue","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMapEditor.vue","webpack://@openeo/web-editor/src/components/maps/GeoJsonMapEditor.vue","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMapEditor.vue?74f8","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMapEditor.vue?145a","webpack://@openeo/web-editor/src/components/datatypes/GeoJsonEditor.vue","webpack://@openeo/web-editor/./src/components/datatypes/GeoJsonEditor.vue?4242","webpack://@openeo/web-editor/./src/components/datatypes/GeoJsonEditor.vue?27cf","webpack://@openeo/web-editor/src/components/ParameterDataType.vue","webpack://@openeo/web-editor/./src/components/ParameterDataType.vue?7e04","webpack://@openeo/web-editor/./src/components/ParameterDataType.vue?b8a4","webpack://@openeo/web-editor/src/components/ParameterDataTypes.vue","webpack://@openeo/web-editor/./src/components/ParameterDataTypes.vue?9dff","webpack://@openeo/web-editor/./src/components/ParameterDataTypes.vue?6f16","webpack://@openeo/web-editor/./src/components/Parameters.vue","webpack://@openeo/web-editor/src/components/Parameters.vue","webpack://@openeo/web-editor/./src/components/Parameters.vue?f04c","webpack://@openeo/web-editor/./src/components/Parameters.vue?aecd","webpack://@openeo/web-editor/./src/components/maps/osmgeocoder.js","webpack://@openeo/web-editor/src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue?9845","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/MapAreaSelect.vue","webpack://@openeo/web-editor/src/components/maps/MapAreaSelect.vue","webpack://@openeo/web-editor/./src/components/maps/MapAreaSelect.vue?6e22","webpack://@openeo/web-editor/./src/components/maps/MapAreaSelect.vue?fc6c","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue","webpack://@openeo/web-editor/src/components/maps/TextControl.vue","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?1df8","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?c848","webpack://@openeo/web-editor/./src/components/datatypes/api.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.selectedSchema)?_c('div',{staticClass:\"fieldContainer\"},[(_vm.showDataTypeChooser)?_c('div',{staticClass:\"dataTypeChooser\"},[_c('select',{attrs:{\"name\":\"dataType\",\"disabled\":!_vm.editable},domProps:{\"value\":_vm.selectedType},on:{\"input\":_vm.onSelectType}},[(_vm.selectableTypes.length > 1)?_vm._l((_vm.selectableTypes),function(group){return _c('optgroup',{key:group.name,attrs:{\"label\":group.name}},_vm._l((group.types),function(type,key){return _c('option',{key:key,domProps:{\"value\":key}},[_vm._v(_vm._s(_vm._f(\"dataTypeTitle\")(type)))])}),0)}):_vm._l((_vm.selectableTypes[0].types),function(type,key){return _c('option',{key:key,domProps:{\"value\":key}},[_vm._v(_vm._s(_vm._f(\"dataTypeTitle\")(type)))])})],2)]):_vm._e(),(!_vm.isItem && _vm.selectedSchema.description())?_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('Description',{attrs:{\"description\":_vm.selectedSchema.description(),\"compact\":true}})],1):_vm._e(),_c('ParameterDataType',{attrs:{\"editable\":_vm.editable,\"parameter\":_vm.parameter,\"schema\":_vm.selectedSchema,\"context\":_vm.context,\"parent\":_vm.parent},on:{\"changeType\":_vm.setSelected,\"reset\":_vm.resetValue},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { JsonSchemaValidator } from '@openeo/js-processgraphs';\nimport ajv from 'ajv';\nimport { Versions } from '@openeo/js-commons';\n\nvar instance = null;\n\nexport default class JsonSchema extends JsonSchemaValidator {\n\n\tstatic create(store) {\n\t\tif (instance === null) {\n\t\t\tinstance = new JsonSchema(store);\n\t\t}\n\t\treturn instance;\n\t}\n\n\tconstructor(store) {\n\t\tsuper();\n\t\tthis.store = store;\n\t\tthis.setFileFormats(this.store.getters.fileFormats);\n\t}\n\n\tasync validateBandName(data) {\n\t\treturn data.length > 0;\n\t}\n\n\tasync validateEpsgCode(data) {\n\t\tawait this.store.dispatch('editor/loadEpsgCodes');\n\t\tif (this.store.state.editor.epsgCodes[data]) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"Invalid EPSG code '\" + data + \"' specified.\"\n\t\t}]);\n\t}\n\n\tasync validateCollectionId(data) {\n\t\tif (this.store.state.collections.filter(c => c.id === data).length > 0) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"Collection with id '\" + data + \"' doesn't exist.\"\n\t\t}]);\n\t}\n\n\tasync validateFilePath(data) {\n\t\tif (this.store.getters['files/getById'](data)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"File at '\" + data + \"' doesn't exist.\"\n\t\t}]);\n\t}\n\n\tasync validateInputFormatOptions(data) {\n\t\tthrow \"Not supported\";\n\t}\n\n\tasync validateOutputFormatOptions(data) {\n\t\tthrow \"Not supported\";\n\t}\n\n\tasync validateJobId(data) {\n\t\tif (this.store.getters['jobs/getById'](data)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"Job with id '\" + data + \"' doesn't exist.\"\n\t\t}]);\n\t}\n\n\tasync validateUri(data) {\n\t\tif (data.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"URI is invalid\"\n\t\t}]);\n\t}\n\n\tasync validateUdfCode(data) {\n\t\t// This is no real validation, but most data types don't have line breaks so trying this for now...\n\t\tif (data.match(/(\\r|\\n)/)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"UDF Code is invalid\"\n\t\t}]);\n\t}\n\n\tasync validateUdfRuntime(data) {\n\t\tif (data in this.store.state.udfRuntimes) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"UDF runtime '\" + data + \"' is not supported.\"\n\t\t}]);\n\t}\n\n\tasync validateUdfRuntimeVersion(data) {\n\t\t// Can't completely check yet whether it's a valid version as I don't know which udf runtime it's for, but for now can check that it's a valid version number\n\t\tif (Versions.validate(data)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"UDF runtime version '\" + data + \"' is not a valid version number.\"\n\t\t}]);\n\t}\n\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"fieldEditorContainer\"},[(_vm.isResult)?[_c('div',{staticClass:\"fieldValue externalData fromNode\"},[_c('span',[_vm._v(\"Output of \"),_c('code',[_vm._v(\"#\"+_vm._s(_vm.state.from_node))])])]),(_vm.nativeParameterType === 'array')?_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.convertToArray()}}},[_c('i',{staticClass:\"fas fa-list\"}),_vm._v(\" Convert to array\")]):_vm._e()]:(_vm.type === 'raster-cube' || _vm.type === 'vector-cube' || _vm.type === 'datacube')?_c('div',{staticClass:\"fieldValue description\"},[_c('i',{staticClass:\"fas fa-exclamation-circle\"}),_c('p',[_vm._v(\"This parameter can only be set by creating a connection between an \\\"Output\\\" / \\\"Result\\\" and this parameter in the Visual Model.\")])]):(_vm.isPgParameter)?[_c('div',{staticClass:\"fieldValue externalData fromArgument\"},[_c('span',[_vm._v(\"Value of process parameter \"),_c('code',[_vm._v(_vm._s(_vm.state.from_parameter))])])]),(_vm.nativeParameterType === 'array')?_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.convertToArray()}}},[_c('i',{staticClass:\"fas fa-list\"}),_vm._v(\" Convert to array\")]):_vm._e()]:(_vm.type === 'undefined')?_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('p',[_vm._v(\"No value is set.\")])]):(_vm.type === 'null')?_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_vm._m(0)]):(_vm.isSelection)?_c('SelectBox',{key:_vm.type,attrs:{\"type\":_vm.type,\"editable\":_vm.editable,\"schema\":_vm.schema,\"context\":_vm.dependency,\"openDirection\":_vm.type === 'band-name' ? 'below' : 'auto'},on:{\"onDetails\":_vm.onSelectDetails},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.isTemporal)?_c('TemporalPicker',{key:_vm.type,attrs:{\"type\":_vm.type,\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'bounding-box')?_c('MapAreaSelect',{key:_vm.type,staticClass:\"areaSelector\",attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'geojson')?_c('GeoJsonEditor',{key:_vm.type,staticClass:\"geoJsonEditor\",attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'process-graph')?_c('Editor',{staticClass:\"callbackEditor\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.schema,\"showDiscoveryToolbar\":true,\"defaultValue\":_vm.editorDefaultValue},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'output-format-options' || _vm.type === 'input-format-options')?_c('FileFormatOptionsEditor',{ref:\"fileFormatOptionsEditor\",attrs:{\"type\":_vm.type,\"format\":_vm.dependency},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'budget')?_c('Budget',{attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'duration')?_c('Duration',{attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'kernel')?_c('Kernel',{attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'udf-code')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable,\"language\":_vm.dependency},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'commonmark')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable,\"language\":\"markdown\"},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'wkt2-definition' || _vm.type === 'proj-definition')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type == 'json')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable,\"language\":\"json\"},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'boolean')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.state),expression:\"state\"}],staticClass:\"fieldValue\",attrs:{\"type\":\"checkbox\",\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"checked\":Array.isArray(_vm.state)?_vm._i(_vm.state,null)>-1:(_vm.state)},on:{\"change\":function($event){var $$a=_vm.state,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.state=$$a.concat([$$v]))}else{$$i>-1&&(_vm.state=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.state=$$c}}}}):(_vm.type === 'integer' || _vm.type === 'number')?_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.state),expression:\"state\",modifiers:{\"number\":true}}],staticClass:\"fieldValue\",attrs:{\"type\":\"number\",\"min\":_vm.numericMin,\"max\":_vm.numericMax,\"step\":_vm.numericStep,\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"value\":(_vm.state)},on:{\"input\":function($event){if($event.target.composing)return;_vm.state=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}):(_vm.type === 'url' || _vm.type === 'uri')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.state),expression:\"state\"}],staticClass:\"fieldValue\",attrs:{\"type\":\"url\",\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"value\":(_vm.state)},on:{\"input\":function($event){if($event.target.composing)return;_vm.state=$event.target.value}}}):(_vm.nativeType === 'object' || _vm.nativeType === 'array')?_c('ObjectEditor',{key:_vm.type,attrs:{\"editable\":_vm.editable,\"parameter\":_vm.parameter,\"schema\":_vm.schema,\"isObject\":_vm.nativeType === 'object',\"parent\":_vm.parent,\"context\":_vm.context},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.state),expression:\"state\"}],staticClass:\"fieldValue\",attrs:{\"type\":\"text\",\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"value\":(_vm.state)},on:{\"input\":function($event){if($event.target.composing)return;_vm.state=$event.target.value}}})],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\"This is set to \"),_c('strong',[_c('code',[_vm._v(\"null\")])]),_vm._v(\", which is usually used as placeholder for no-data values or a default value.\")])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"object-editor\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.isTopLevel)?[_c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"object-tabs\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual\",\"icon\":\"fa-project-diagram\",\"selected\":true},on:{\"show\":_vm.showVisual}},[(_vm.visual)?_c('ObjectEditorDnD',{ref:\"visual\",attrs:{\"parameter\":_vm.parameter,\"editable\":_vm.editable,\"schema\":_vm.schema,\"parent\":_vm.parent,\"context\":_vm.context,\"value\":_vm.data,\"isObject\":_vm.isObject},on:{\"input\":_vm.updateFromVisual}}):_vm._e()],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\"},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",attrs:{\"editable\":_vm.editable,\"value\":_vm.data,\"id\":\"object-texteditor\",\"language\":\"json\"},on:{\"input\":_vm.updateFromCode}})],1)],1),(_vm.editable && _vm.isObject)?_c('small',{staticClass:\"info\"},[_vm._v(\" To easily import an object, you can drag & drop a JSON file into this area. \")]):_vm._e()]:[_c('ObjectEditorDnD',{ref:\"visual\",attrs:{\"parameter\":_vm.parameter,\"editable\":_vm.editable,\"schema\":_vm.schema,\"parent\":_vm.parent,\"context\":_vm.context,\"value\":_vm.data,\"isObject\":_vm.isObject},on:{\"input\":_vm.updateFromVisual}})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{editor: true, array: !_vm.isObject, object: _vm.isObject}},[_c('div',{staticClass:\"buttons\"},[(_vm.editable && _vm.canAdd)?_c('button',{staticClass:\"addBtn\",attrs:{\"type\":\"button\",\"disabled\":_vm.count >= _vm.maxCount},on:{\"click\":function($event){return _vm.add()}}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add\")]):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1),(!_vm.elements.length)?_c('div',{staticClass:\"empty description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),(_vm.isObject)?[_vm._v(\" Object is empty\")]:[_vm._v(\" Array is empty\")]],2):_c('draggable',{attrs:{\"handle\":\".mover\"},model:{value:(_vm.elements),callback:function ($$v) {_vm.elements=$$v},expression:\"elements\"}},_vm._l((_vm.elements),function(e,k){return _c('div',{key:e.id,staticClass:\"fieldValue element\"},[_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"fieldLabel\"},[(_vm.isObject && (e.prop.title || e.prop.required))?[_vm._v(_vm._s(e.prop.title || e.key))]:(_vm.isObject)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(e.key),expression:\"e.key\"}],attrs:{\"type\":\"text\",\"disabled\":!_vm.editable},domProps:{\"value\":(e.key)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(e, \"key\", $event.target.value)}}}):[_vm._v(_vm._s(k+1))]],2),_c('ParameterDataTypes',{attrs:{\"editable\":_vm.editable,\"parameter\":_vm.elementSchema(k, e.key),\"isItem\":true,\"parent\":_vm.parent,\"context\":_vm.context},model:{value:(e.value),callback:function ($$v) {_vm.$set(e, \"value\", $$v)},expression:\"e.value\"}}),(_vm.editable && !e.prop.required)?_c('button',{staticClass:\"deleteBtn\",attrs:{\"disabled\":_vm.count <= _vm.minCount,\"type\":\"button\"},on:{\"click\":function($event){return _vm.remove(k)}}},[_c('i',{staticClass:\"fas fa-trash\"})]):_vm._e(),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.editable && !_vm.isObject),expression:\"editable && !isObject\"}],staticClass:\"mover\",attrs:{\"type\":\"button\"}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})])],1),(e.prop.description)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('Description',{attrs:{\"description\":e.prop.description,\"compact\":true}})],1)]):_vm._e()])}),0)],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!./ObjectEditorDnD.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!./ObjectEditorDnD.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ObjectEditorDnD.vue?vue&type=template&id=4e9c9c72&scoped=true\"\nimport script from \"./ObjectEditorDnD.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectEditorDnD.vue?vue&type=script&lang=js\"\nimport style0 from \"./ObjectEditorDnD.vue?vue&type=style&index=0&id=4e9c9c72&prod&scoped=true&lang=css\"\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 \"4e9c9c72\",\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!./ObjectEditor.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!./ObjectEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ObjectEditor.vue?vue&type=template&id=909fe7a6&scoped=true\"\nimport script from \"./ObjectEditor.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./ObjectEditor.vue?vue&type=style&index=0&id=909fe7a6&prod&lang=scss\"\nimport style1 from \"./ObjectEditor.vue?vue&type=style&index=1&id=909fe7a6&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 \"909fe7a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"datatypeEditor budget\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.hasBudget),expression:\"hasBudget\"}],attrs:{\"type\":\"checkbox\",\"disabled\":!_vm.editable},domProps:{\"checked\":Array.isArray(_vm.hasBudget)?_vm._i(_vm.hasBudget,null)>-1:(_vm.hasBudget)},on:{\"change\":function($event){var $$a=_vm.hasBudget,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.hasBudget=$$a.concat([$$v]))}else{$$i>-1&&(_vm.hasBudget=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.hasBudget=$$c}}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.amount),expression:\"amount\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"min\":\"0.00\",\"max\":_vm.max,\"step\":\"0.01\",\"disabled\":!_vm.hasBudget || !_vm.editable},domProps:{\"value\":(_vm.amount)},on:{\"input\":function($event){if($event.target.composing)return;_vm.amount=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),_vm._v(\" \"+_vm._s(_vm.capabilities.currency())+\" \")])\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!./Budget.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!./Budget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Budget.vue?vue&type=template&id=41395d32\"\nimport script from \"./Budget.vue?vue&type=script&lang=js\"\nexport * from \"./Budget.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:\"geojson-editor\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[_c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"geojson-tabs\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"map\",\"name\":\"Map\",\"icon\":\"fa-map\",\"selected\":true},on:{\"show\":_vm.showMap}},[_c('GeoJsonMapEditor',{ref:\"map\",attrs:{\"editable\":_vm.editable},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\"},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",attrs:{\"editable\":_vm.editable,\"id\":\"geojson-texteditor\",\"language\":\"json\"},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}})],1)],1),(_vm.editable)?_c('small',{staticClass:\"info\"},[_vm._v(\" To easily import your area of interest, you can drag & drop GeoJSON and KML files into this area. \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"geojson-map-editor\",attrs:{\"id\":_vm.id}},[_c('ProgressControl',{ref:\"progress\",attrs:{\"map\":_vm.map}}),_c('UserLocationControl',{attrs:{\"map\":_vm.map}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./GeoJsonMapEditor.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!./GeoJsonMapEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./GeoJsonMapEditor.vue?vue&type=template&id=2012daca\"\nimport script from \"./GeoJsonMapEditor.vue?vue&type=script&lang=js\"\nexport * from \"./GeoJsonMapEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\nimport style1 from \"./GeoJsonMapEditor.vue?vue&type=style&index=1&id=2012daca&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\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!./GeoJsonEditor.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!./GeoJsonEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./GeoJsonEditor.vue?vue&type=template&id=6d150dd6&scoped=true\"\nimport script from \"./GeoJsonEditor.vue?vue&type=script&lang=js\"\nexport * from \"./GeoJsonEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\nimport style1 from \"./GeoJsonEditor.vue?vue&type=style&index=1&id=6d150dd6&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 \"6d150dd6\",\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!./ParameterDataType.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!./ParameterDataType.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ParameterDataType.vue?vue&type=template&id=0b98f1e9&scoped=true\"\nimport script from \"./ParameterDataType.vue?vue&type=script&lang=js\"\nexport * from \"./ParameterDataType.vue?vue&type=script&lang=js\"\nimport style0 from \"./ParameterDataType.vue?vue&type=style&index=0&id=0b98f1e9&prod&scoped=true&lang=css\"\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 \"0b98f1e9\",\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!./ParameterDataTypes.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!./ParameterDataTypes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ParameterDataTypes.vue?vue&type=template&id=5bbcc7b1\"\nimport script from \"./ParameterDataTypes.vue?vue&type=script&lang=js\"\nexport * from \"./ParameterDataTypes.vue?vue&type=script&lang=js\"\nimport style0 from \"./ParameterDataTypes.vue?vue&type=style&index=0&id=5bbcc7b1&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',{staticClass:\"parameters\"},_vm._l((_vm.parameters),function(param,k){return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.toggleParamVisibility(param)),expression:\"toggleParamVisibility(param)\"}],key:k,staticClass:\"fieldRow\"},[_c('label',{class:{ fieldLabel: true, highlight: param.name === _vm.selectParameter, info: param.info }},[_vm._v(\" \"+_vm._s(_vm.displayLabel(param))+\" \"),(!param.info && !param.optional)?_c('strong',{staticClass:\"required\",attrs:{\"title\":\"required\"}},[_vm._v(\"*\")]):_vm._e(),(param.description)?_c('div',{staticClass:\"description\"},[_c('Description',{attrs:{\"description\":param.description}})],1):_vm._e()]),(!param.info)?_c('ParameterDataTypes',{ref:param.name,refInFor:true,attrs:{\"editable\":_vm.editable,\"parameter\":param,\"context\":_vm.context,\"parent\":_vm.parent},on:{\"schemaSelected\":function($event){return _vm.updateType(param, $event)}},model:{value:(_vm.value[param.name]),callback:function ($$v) {_vm.$set(_vm.value, param.name, $$v)},expression:\"value[param.name]\"}}):_vm._e(),(!param.info && param.unspecified)?_c('button',{staticClass:\"deleteBtn\",attrs:{\"title\":\"Delete unspecified parameter\",\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteParam(k)}}},[_c('i',{staticClass:\"fas fa-trash\"})]):_vm._e()],1)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./Parameters.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!./Parameters.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Parameters.vue?vue&type=template&id=e173c10e&scoped=true\"\nimport script from \"./Parameters.vue?vue&type=script&lang=js\"\nexport * from \"./Parameters.vue?vue&type=script&lang=js\"\nimport style0 from \"./Parameters.vue?vue&type=style&index=0&id=e173c10e&prod&lang=scss&scoped=true\"\nimport style1 from \"./Parameters.vue?vue&type=style&index=1&id=e173c10e&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 \"e173c10e\",\n null\n \n)\n\nexport default component.exports","export default class OSMGeocoder {\n\tconstructor(url, geojson = false) {\n\t\tthis.url = url;\n\t\tthis.geojson = geojson;\n\t}\n\n\tgetParameters(opt) {\n\t\treturn {\n\t\t\turl: this.url,\n\t\t\tparams: {\n\t\t\t\tq: opt.query,\n\t\t\t\tformat: 'json',\n\t\t\t\tlimit: 10,\n\t\t\t\t'accept-language': 'en',\n\t\t\t\tpolygon_geojson: this.geojson ? 1 : 0,\n\t\t\t\tpolygon_threshold: 0.001,\n\t\t\t},\n\t\t};\n\t}\n\n\thandleResponse(results) {\n\t\tif (results.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn results\n\t\t\t.filter(result => [\"boundary\", \"geological\", \"leisure\", \"natural\", \"place\", \"water\", \"waterway\"].includes(result.class))\n\t\t\t.map(result => ({\n\t\t\t\tlon: result.lon,\n\t\t\t\tlat: result.lat,\n\t\t\t\tbbox: result.boundingbox,\n\t\t\t\taddress: {\n\t\t\t\t\tname: result.display_name\n\t\t\t\t},\n\t\t\t\toriginal: {\n\t\t\t\t\tformatted: result.display_name,\n\t\t\t\t\tdetails: result.address,\n\t\t\t\t\tgeojson: result.geojson\n\t\t\t\t}\n\t\t\t}));\n\t}\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!./GeocoderMixin.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!./GeocoderMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nimport style0 from \"@kirtandesai/ol-geocoder/dist/ol-geocoder.min.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./GeocoderMixin.vue?vue&type=style&index=1&id=643f6883&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',{attrs:{\"id\":_vm.id}},[_c('ProgressControl',{ref:\"progress\",attrs:{\"map\":_vm.map}}),_c('UserLocationControl',{attrs:{\"map\":_vm.map}}),_c('TextControl',{attrs:{\"text\":_vm.help,\"map\":_vm.map}})],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!./MapAreaSelect.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!./MapAreaSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MapAreaSelect.vue?vue&type=template&id=c6d9ceda\"\nimport script from \"./MapAreaSelect.vue?vue&type=script&lang=js\"\nexport * from \"./MapAreaSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\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 (_vm.texts.length > 0)?_c('div',{staticClass:\"ol-unselectable ol-control value\",class:{pointer: _vm.texts.length > 1},on:{\"click\":_vm.toggle}},[_vm._v(_vm._s(_vm.current))]):_vm._e()\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!./TextControl.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!./TextControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextControl.vue?vue&type=template&id=b1521986&scoped=true\"\nimport script from \"./TextControl.vue?vue&type=script&lang=js\"\nexport * from \"./TextControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextControl.vue?vue&type=style&index=0&id=b1521986&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 \"b1521986\",\n null\n \n)\n\nexport default component.exports","import Utils from '../../utils';\nexport const API_TYPES = Utils.resolveJsonRefs(require('@openeo/js-processgraphs/assets/subtype-schemas.json')).definitions;\nexport const NATIVE_TYPES = [\n\t'string',\n\t'integer',\n\t'number',\n\t'boolean',\n\t'array',\n\t'object'\n];"],"names":["render","_vm","this","_c","_self","selectedSchema","staticClass","showDataTypeChooser","attrs","editable","domProps","selectedType","on","onSelectType","selectableTypes","length","_l","group","key","name","types","type","_v","_s","_f","_e","isItem","description","parameter","context","parent","setSelected","resetValue","model","value","state","callback","$$v","expression","staticRenderFns","instance","JsonSchema","JsonSchemaValidator","create","store","constructor","super","setFileFormats","getters","fileFormats","validateBandName","data","validateEpsgCode","dispatch","editor","epsgCodes","ajv","message","validateCollectionId","collections","filter","c","id","validateFilePath","validateInputFormatOptions","validateOutputFormatOptions","validateJobId","validateUri","match","validateUdfCode","validateUdfRuntime","udfRuntimes","validateUdfRuntimeVersion","Versions","validate","isResult","from_node","nativeParameterType","$event","convertToArray","isPgParameter","from_parameter","_m","isSelection","schema","dependency","onSelectDetails","isTemporal","editorDefaultValue","ref","directives","rawName","Array","isArray","_i","$$a","$$el","target","$$c","checked","$$i","concat","slice","modifiers","numericMin","numericMax","numericStep","composing","_n","$forceUpdate","nativeType","onDrop","allowDrop","isTopLevel","showVisual","visual","isObject","updateFromVisual","showCode","updateFromCode","class","array","object","canAdd","count","maxCount","add","element","$el","elements","e","k","prop","title","required","$set","elementSchema","minCount","remove","components","draggable","Description","FullscreenButton","ParameterDataTypes","props","Object","Boolean","default","computed","Utils","size","maxProperties","maxItems","Number","MAX_VALUE","minProperties","minItems","additionalProperties","prefill","properties","arr","propSchema","not","includes","push","assign","keys","map","newValue","obj","v","watch","deep","handler","$emit","immediate","undefined","methods","index","ProcessUtils","getElementJsonSchema","ProcessSchema","refs","String","splice","component","ObjectEditorDnD","Tab","Tabs","TextEditor","mounted","$parent","$options","$refs","sourceEditor","updateState","event","preventDefault","files","dataTransfer","file","jsonTypes","toLowerCase","isJson","endsWith","reader","FileReader","onload","json","JSON","parse","result","error","console","onerror","exception","readAsText","hasBudget","amount","max","capabilities","currency","mapState","mapGetters","userInfo","budget","updateData","isNaN","showMap","mixins","GeocoderMixin","MapMixin","ExtentMixin","geoJsonLayer","renderMap","isWebMercatorCompatible","source","createGeoJsonSource","extent","getExtent","extentIsEmpty","isBboxInWebMercator","extentToBBox","createMap","addBasemaps","geoJsonEditor","addGeoJson","getGeoJson","getSource","addGeocoder","polygon","feature","GeoJSON","readFeature","featureProjection","getView","getProjection","addFeature","fit","getFitOptions","geojson","layer","mainbar","Bar","addControl","editbar","EditBar","interactions","Info","DrawHole","Offset","Split","undoInteraction","UndoRedo","addInteraction","action","getInteraction","getFeatures","clear","select","bar","controls","Button","html","handleClick","undo","redo","Snap","olFeatures","gjFeatures","i","writeFeatureObject","dataProjection","geometry","features","GeoJsonMapEditor","geojsonTypes","kmlTypes","isGeoJson","isKml","kml","DOMParser","parseFromString","detectGeoJson","EventBusMixin","ObjectEditor","Budget","MapAreaSelect","GeoJsonEditor","Editor","FileFormatOptionsEditor","Duration","Kernel","SelectBox","TemporalPicker","dataType","nativeDataType","nullable","isEnum","isRef","minimum","maximum","multipleOf","num","parseFloat","parseInt","getValueFromOtherParameterByDataType","replace","Process","arrayOf","newVal","oldVal","schemas","values","broadcast","TYPE_GROUPS","cloneDefault","deepClone","now","Date","toISOString","SUPPORTED_TYPES","subtype","const","format","substring","any","tyoe","noAutoDetect","refSchema","ParameterDataType","ProcessParameter","selectedNativeType","jsonSchemaValidator","$store","filters","dataTypeTitle","supportedType","find","st","created","detectType","refSchemas","r","ProcessDataType","allowedTypes","allowed","supportedTypes","getUniqueKey","s","API_TYPES","grouped","groups","detectableTypes","detectable","basename","isValueInvalid","schema2","items","oneOf","errors","validateValue","getTypeForValue","validTypes","valueUndefined","nonNullKeys","t","warn","join","stringify","findIndex","NATIVE_TYPES","evt","setValue","isNull","getEnumChoices","defaultValue","parameters","param","toggleParamVisibility","fieldLabel","highlight","selectParameter","info","displayLabel","optional","refInFor","updateType","unspecified","deleteParam","show","$nextTick","toggledBy","$delete","label","prettifyString","componentforParameter","callCounter","scrollIntoView","setInputFocus","setTimeout","node","querySelector","firstElement","focus","OSMGeocoder","url","getParameters","opt","params","q","query","limit","polygon_geojson","polygon_threshold","handleResponse","results","lon","lat","bbox","boundingbox","address","display_name","original","formatted","details","$config","geocoder","options","provider","placeholder","keepOpen","Geocoder","place","bboxOpenEO","west","east","north","south","help","GeoJsonMixin","TextControl","showMaxExtent","interaction","toExtent","returnAsObject","projectedExtent","transformExtent","outerArea","update","setExtent","fitMap","style","Style","fill","Fill","color","stroke","Stroke","width","condition","pixelSize","getSize","xy","calculateExtent","mouseExtent","coordinate","containsXY","vertexOverlay_","vertexFeature_","handlingDownUpSequence","snapToVertex_","pixel","ExtentInteraction","boxStyle","createDefaultStyle","pixelTolerance","fitOptions","texts","pointer","toggle","current","ControlMixin","text","resolveJsonRefs","require","definitions"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/510.5a6e3195.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/ParameterDataTypes.vue","webpack://@openeo/web-editor/./src/components/jsonSchema.js","webpack://@openeo/web-editor/./src/components/ParameterDataType.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditor.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditorDnD.vue","webpack://@openeo/web-editor/src/components/datatypes/ObjectEditorDnD.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditorDnD.vue?c9d9","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditorDnD.vue?cf02","webpack://@openeo/web-editor/src/components/datatypes/ObjectEditor.vue","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditor.vue?83c1","webpack://@openeo/web-editor/./src/components/datatypes/ObjectEditor.vue?4916","webpack://@openeo/web-editor/./src/components/datatypes/Budget.vue","webpack://@openeo/web-editor/src/components/datatypes/Budget.vue","webpack://@openeo/web-editor/./src/components/datatypes/Budget.vue?1c0c","webpack://@openeo/web-editor/./src/components/datatypes/Budget.vue?bc62","webpack://@openeo/web-editor/./src/components/datatypes/GeoJsonEditor.vue","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMapEditor.vue","webpack://@openeo/web-editor/src/components/maps/GeoJsonMapEditor.vue","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMapEditor.vue?74f8","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMapEditor.vue?145a","webpack://@openeo/web-editor/src/components/datatypes/GeoJsonEditor.vue","webpack://@openeo/web-editor/./src/components/datatypes/GeoJsonEditor.vue?4242","webpack://@openeo/web-editor/./src/components/datatypes/GeoJsonEditor.vue?27cf","webpack://@openeo/web-editor/src/components/ParameterDataType.vue","webpack://@openeo/web-editor/./src/components/ParameterDataType.vue?7e04","webpack://@openeo/web-editor/./src/components/ParameterDataType.vue?b8a4","webpack://@openeo/web-editor/src/components/ParameterDataTypes.vue","webpack://@openeo/web-editor/./src/components/ParameterDataTypes.vue?9dff","webpack://@openeo/web-editor/./src/components/ParameterDataTypes.vue?6f16","webpack://@openeo/web-editor/./src/components/Parameters.vue","webpack://@openeo/web-editor/src/components/Parameters.vue","webpack://@openeo/web-editor/./src/components/Parameters.vue?f04c","webpack://@openeo/web-editor/./src/components/Parameters.vue?aecd","webpack://@openeo/web-editor/./src/components/maps/osmgeocoder.js","webpack://@openeo/web-editor/src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue?9845","webpack://@openeo/web-editor/./src/components/maps/GeocoderMixin.vue","webpack://@openeo/web-editor/./src/components/maps/MapAreaSelect.vue","webpack://@openeo/web-editor/src/components/maps/MapAreaSelect.vue","webpack://@openeo/web-editor/./src/components/maps/MapAreaSelect.vue?6e22","webpack://@openeo/web-editor/./src/components/maps/MapAreaSelect.vue?fc6c","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue","webpack://@openeo/web-editor/src/components/maps/TextControl.vue","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?1df8","webpack://@openeo/web-editor/./src/components/maps/TextControl.vue?c848","webpack://@openeo/web-editor/./src/components/datatypes/api.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.selectedSchema)?_c('div',{staticClass:\"fieldContainer\"},[(_vm.showDataTypeChooser)?_c('div',{staticClass:\"dataTypeChooser\"},[_c('select',{attrs:{\"name\":\"dataType\",\"disabled\":!_vm.editable},domProps:{\"value\":_vm.selectedType},on:{\"input\":_vm.onSelectType}},[(_vm.selectableTypes.length > 1)?_vm._l((_vm.selectableTypes),function(group){return _c('optgroup',{key:group.name,attrs:{\"label\":group.name}},_vm._l((group.types),function(type,key){return _c('option',{key:key,domProps:{\"value\":key}},[_vm._v(_vm._s(_vm._f(\"dataTypeTitle\")(type)))])}),0)}):_vm._l((_vm.selectableTypes[0].types),function(type,key){return _c('option',{key:key,domProps:{\"value\":key}},[_vm._v(_vm._s(_vm._f(\"dataTypeTitle\")(type)))])})],2)]):_vm._e(),(!_vm.isItem && _vm.selectedSchema.description())?_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('Description',{attrs:{\"description\":_vm.selectedSchema.description(),\"compact\":true}})],1):_vm._e(),_c('ParameterDataType',{attrs:{\"editable\":_vm.editable,\"parameter\":_vm.parameter,\"schema\":_vm.selectedSchema,\"context\":_vm.context,\"parent\":_vm.parent},on:{\"changeType\":_vm.setSelected,\"reset\":_vm.resetValue},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { JsonSchemaValidator } from '@openeo/js-processgraphs';\nimport ajv from 'ajv';\nimport { Versions } from '@openeo/js-commons';\n\nvar instance = null;\n\nexport default class JsonSchema extends JsonSchemaValidator {\n\n\tstatic create(store) {\n\t\tif (instance === null) {\n\t\t\tinstance = new JsonSchema(store);\n\t\t}\n\t\treturn instance;\n\t}\n\n\tconstructor(store) {\n\t\tsuper();\n\t\tthis.store = store;\n\t\tthis.setFileFormats(this.store.getters.fileFormats);\n\t}\n\n\tasync validateBandName(data) {\n\t\treturn data.length > 0;\n\t}\n\n\tasync validateEpsgCode(data) {\n\t\tawait this.store.dispatch('editor/loadEpsgCodes');\n\t\tif (this.store.state.editor.epsgCodes[data]) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"Invalid EPSG code '\" + data + \"' specified.\"\n\t\t}]);\n\t}\n\n\tasync validateCollectionId(data) {\n\t\tif (this.store.state.collections.filter(c => c.id === data).length > 0) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"Collection with id '\" + data + \"' doesn't exist.\"\n\t\t}]);\n\t}\n\n\tasync validateFilePath(data) {\n\t\tif (this.store.getters['files/getById'](data)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"File at '\" + data + \"' doesn't exist.\"\n\t\t}]);\n\t}\n\n\tasync validateInputFormatOptions(data) {\n\t\tthrow \"Not supported\";\n\t}\n\n\tasync validateOutputFormatOptions(data) {\n\t\tthrow \"Not supported\";\n\t}\n\n\tasync validateJobId(data) {\n\t\tif (this.store.getters['jobs/getById'](data)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"Job with id '\" + data + \"' doesn't exist.\"\n\t\t}]);\n\t}\n\n\tasync validateUri(data) {\n\t\tif (data.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"URI is invalid\"\n\t\t}]);\n\t}\n\n\tasync validateUdfCode(data) {\n\t\t// This is no real validation, but most data types don't have line breaks so trying this for now...\n\t\tif (data.match(/(\\r|\\n)/)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"UDF Code is invalid\"\n\t\t}]);\n\t}\n\n\tasync validateUdfRuntime(data) {\n\t\tif (data in this.store.state.udfRuntimes) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"UDF runtime '\" + data + \"' is not supported.\"\n\t\t}]);\n\t}\n\n\tasync validateUdfRuntimeVersion(data) {\n\t\t// Can't completely check yet whether it's a valid version as I don't know which udf runtime it's for, but for now can check that it's a valid version number\n\t\tif (Versions.validate(data)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new ajv.ValidationError([{\n\t\t\tmessage: \"UDF runtime version '\" + data + \"' is not a valid version number.\"\n\t\t}]);\n\t}\n\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"fieldEditorContainer\"},[(_vm.isResult)?[_c('div',{staticClass:\"fieldValue externalData fromNode\"},[_c('span',[_vm._v(\"Output of \"),_c('code',[_vm._v(\"#\"+_vm._s(_vm.state.from_node))])])]),(_vm.nativeParameterType === 'array')?_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.convertToArray()}}},[_c('i',{staticClass:\"fas fa-list\"}),_vm._v(\" Convert to array\")]):_vm._e()]:(_vm.type === 'raster-cube' || _vm.type === 'vector-cube' || _vm.type === 'datacube')?_c('div',{staticClass:\"fieldValue description\"},[_c('i',{staticClass:\"fas fa-exclamation-circle\"}),_c('p',[_vm._v(\"This parameter can only be set by creating a connection between an \\\"Output\\\" / \\\"Result\\\" and this parameter in the Visual Model.\")])]):(_vm.isPgParameter)?[_c('div',{staticClass:\"fieldValue externalData fromArgument\"},[_c('span',[_vm._v(\"Value of process parameter \"),_c('code',[_vm._v(_vm._s(_vm.state.from_parameter))])])]),(_vm.nativeParameterType === 'array')?_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.convertToArray()}}},[_c('i',{staticClass:\"fas fa-list\"}),_vm._v(\" Convert to array\")]):_vm._e()]:(_vm.type === 'undefined')?_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('p',[_vm._v(\"No value is set.\")])]):(_vm.type === 'null')?_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_vm._m(0)]):(_vm.isSelection)?_c('SelectBox',{key:_vm.type,attrs:{\"type\":_vm.type,\"editable\":_vm.editable,\"schema\":_vm.schema,\"context\":_vm.dependency,\"openDirection\":_vm.type === 'band-name' ? 'below' : 'auto'},on:{\"onDetails\":_vm.onSelectDetails},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.isTemporal)?_c('TemporalPicker',{key:_vm.type,attrs:{\"type\":_vm.type,\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'bounding-box')?_c('MapAreaSelect',{key:_vm.type,staticClass:\"areaSelector\",attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'geojson')?_c('GeoJsonEditor',{key:_vm.type,staticClass:\"geoJsonEditor\",attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'process-graph')?_c('Editor',{staticClass:\"callbackEditor\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.schema,\"showDiscoveryToolbar\":true,\"defaultValue\":_vm.editorDefaultValue},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'output-format-options' || _vm.type === 'input-format-options')?_c('FileFormatOptionsEditor',{ref:\"fileFormatOptionsEditor\",attrs:{\"type\":_vm.type,\"format\":_vm.dependency},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'budget')?_c('Budget',{attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'duration')?_c('Duration',{attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'kernel')?_c('Kernel',{attrs:{\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'udf-code')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable,\"language\":_vm.dependency},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'commonmark')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable,\"language\":\"markdown\"},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'wkt2-definition' || _vm.type === 'proj-definition')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type == 'json')?_c('TextEditor',{staticClass:\"fieldValue textarea\",attrs:{\"id\":_vm.name,\"editable\":_vm.editable,\"language\":\"json\"},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):(_vm.type === 'boolean')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.state),expression:\"state\"}],staticClass:\"fieldValue\",attrs:{\"type\":\"checkbox\",\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"checked\":Array.isArray(_vm.state)?_vm._i(_vm.state,null)>-1:(_vm.state)},on:{\"change\":function($event){var $$a=_vm.state,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.state=$$a.concat([$$v]))}else{$$i>-1&&(_vm.state=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.state=$$c}}}}):(_vm.type === 'integer' || _vm.type === 'number')?_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.state),expression:\"state\",modifiers:{\"number\":true}}],staticClass:\"fieldValue\",attrs:{\"type\":\"number\",\"min\":_vm.numericMin,\"max\":_vm.numericMax,\"step\":_vm.numericStep,\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"value\":(_vm.state)},on:{\"input\":function($event){if($event.target.composing)return;_vm.state=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}):(_vm.type === 'url' || _vm.type === 'uri')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.state),expression:\"state\"}],staticClass:\"fieldValue\",attrs:{\"type\":\"url\",\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"value\":(_vm.state)},on:{\"input\":function($event){if($event.target.composing)return;_vm.state=$event.target.value}}}):(_vm.nativeType === 'object' || _vm.nativeType === 'array')?_c('ObjectEditor',{key:_vm.type,attrs:{\"editable\":_vm.editable,\"parameter\":_vm.parameter,\"schema\":_vm.schema,\"isObject\":_vm.nativeType === 'object',\"parent\":_vm.parent,\"context\":_vm.context},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.state),expression:\"state\"}],staticClass:\"fieldValue\",attrs:{\"type\":\"text\",\"name\":_vm.name,\"disabled\":!_vm.editable},domProps:{\"value\":(_vm.state)},on:{\"input\":function($event){if($event.target.composing)return;_vm.state=$event.target.value}}})],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\"This is set to \"),_c('strong',[_c('code',[_vm._v(\"null\")])]),_vm._v(\", which is usually used as placeholder for no-data values or a default value.\")])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"object-editor\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.isTopLevel)?[_c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"object-tabs\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual\",\"icon\":\"fa-project-diagram\",\"selected\":true},on:{\"show\":_vm.showVisual}},[(_vm.visual)?_c('ObjectEditorDnD',{ref:\"visual\",attrs:{\"parameter\":_vm.parameter,\"editable\":_vm.editable,\"schema\":_vm.schema,\"parent\":_vm.parent,\"context\":_vm.context,\"value\":_vm.data,\"isObject\":_vm.isObject},on:{\"input\":_vm.updateFromVisual}}):_vm._e()],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\"},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",attrs:{\"editable\":_vm.editable,\"value\":_vm.data,\"id\":\"object-texteditor\",\"language\":\"json\"},on:{\"input\":_vm.updateFromCode}})],1)],1),(_vm.editable && _vm.isObject)?_c('small',{staticClass:\"info\"},[_vm._v(\" To easily import an object, you can drag & drop a JSON file into this area. \")]):_vm._e()]:[_c('ObjectEditorDnD',{ref:\"visual\",attrs:{\"parameter\":_vm.parameter,\"editable\":_vm.editable,\"schema\":_vm.schema,\"parent\":_vm.parent,\"context\":_vm.context,\"value\":_vm.data,\"isObject\":_vm.isObject},on:{\"input\":_vm.updateFromVisual}})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{editor: true, array: !_vm.isObject, object: _vm.isObject}},[_c('div',{staticClass:\"buttons\"},[(_vm.editable && _vm.canAdd)?_c('button',{staticClass:\"addBtn\",attrs:{\"type\":\"button\",\"disabled\":_vm.count >= _vm.maxCount},on:{\"click\":function($event){return _vm.add()}}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add\")]):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1),(!_vm.elements.length)?_c('div',{staticClass:\"empty description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),(_vm.isObject)?[_vm._v(\" Object is empty\")]:[_vm._v(\" Array is empty\")]],2):_c('draggable',{attrs:{\"handle\":\".mover\"},model:{value:(_vm.elements),callback:function ($$v) {_vm.elements=$$v},expression:\"elements\"}},_vm._l((_vm.elements),function(e,k){return _c('div',{key:e.id,staticClass:\"fieldValue element\"},[_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"fieldLabel\"},[(_vm.isObject && (e.prop.title || e.prop.required))?[_vm._v(_vm._s(e.prop.title || e.key))]:(_vm.isObject)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(e.key),expression:\"e.key\"}],attrs:{\"type\":\"text\",\"disabled\":!_vm.editable},domProps:{\"value\":(e.key)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(e, \"key\", $event.target.value)}}}):[_vm._v(_vm._s(k+1))]],2),_c('ParameterDataTypes',{attrs:{\"editable\":_vm.editable,\"parameter\":_vm.elementSchema(k, e.key),\"isItem\":true,\"parent\":_vm.parent,\"context\":_vm.context},model:{value:(e.value),callback:function ($$v) {_vm.$set(e, \"value\", $$v)},expression:\"e.value\"}}),(_vm.editable && !e.prop.required)?_c('button',{staticClass:\"deleteBtn\",attrs:{\"disabled\":_vm.count <= _vm.minCount,\"type\":\"button\"},on:{\"click\":function($event){return _vm.remove(k)}}},[_c('i',{staticClass:\"fas fa-trash\"})]):_vm._e(),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.editable && !_vm.isObject),expression:\"editable && !isObject\"}],staticClass:\"mover\",attrs:{\"type\":\"button\"}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})])],1),(e.prop.description)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"description\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('Description',{attrs:{\"description\":e.prop.description,\"compact\":true}})],1)]):_vm._e()])}),0)],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!./ObjectEditorDnD.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!./ObjectEditorDnD.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ObjectEditorDnD.vue?vue&type=template&id=4e9c9c72&scoped=true\"\nimport script from \"./ObjectEditorDnD.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectEditorDnD.vue?vue&type=script&lang=js\"\nimport style0 from \"./ObjectEditorDnD.vue?vue&type=style&index=0&id=4e9c9c72&prod&scoped=true&lang=css\"\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 \"4e9c9c72\",\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!./ObjectEditor.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!./ObjectEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ObjectEditor.vue?vue&type=template&id=909fe7a6&scoped=true\"\nimport script from \"./ObjectEditor.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./ObjectEditor.vue?vue&type=style&index=0&id=909fe7a6&prod&lang=scss\"\nimport style1 from \"./ObjectEditor.vue?vue&type=style&index=1&id=909fe7a6&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 \"909fe7a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"datatypeEditor budget\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.hasBudget),expression:\"hasBudget\"}],attrs:{\"type\":\"checkbox\",\"disabled\":!_vm.editable},domProps:{\"checked\":Array.isArray(_vm.hasBudget)?_vm._i(_vm.hasBudget,null)>-1:(_vm.hasBudget)},on:{\"change\":function($event){var $$a=_vm.hasBudget,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.hasBudget=$$a.concat([$$v]))}else{$$i>-1&&(_vm.hasBudget=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.hasBudget=$$c}}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.amount),expression:\"amount\",modifiers:{\"number\":true}}],attrs:{\"type\":\"number\",\"min\":\"0.00\",\"max\":_vm.max,\"step\":\"0.01\",\"disabled\":!_vm.hasBudget || !_vm.editable},domProps:{\"value\":(_vm.amount)},on:{\"input\":function($event){if($event.target.composing)return;_vm.amount=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),_vm._v(\" \"+_vm._s(_vm.capabilities.currency())+\" \")])\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!./Budget.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!./Budget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Budget.vue?vue&type=template&id=41395d32\"\nimport script from \"./Budget.vue?vue&type=script&lang=js\"\nexport * from \"./Budget.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:\"geojson-editor\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[_c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"geojson-tabs\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"map\",\"name\":\"Map\",\"icon\":\"fa-map\",\"selected\":true},on:{\"show\":_vm.showMap}},[_c('GeoJsonMapEditor',{ref:\"map\",attrs:{\"editable\":_vm.editable},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\"},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",attrs:{\"editable\":_vm.editable,\"id\":\"geojson-texteditor\",\"language\":\"json\"},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}})],1)],1),(_vm.editable)?_c('small',{staticClass:\"info\"},[_vm._v(\" To easily import your area of interest, you can drag & drop GeoJSON and KML files into this area. \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"geojson-map-editor\",attrs:{\"id\":_vm.id}},[_c('ProgressControl',{ref:\"progress\",attrs:{\"map\":_vm.map}}),_c('UserLocationControl',{attrs:{\"map\":_vm.map}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./GeoJsonMapEditor.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!./GeoJsonMapEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./GeoJsonMapEditor.vue?vue&type=template&id=2012daca\"\nimport script from \"./GeoJsonMapEditor.vue?vue&type=script&lang=js\"\nexport * from \"./GeoJsonMapEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\nimport style1 from \"./GeoJsonMapEditor.vue?vue&type=style&index=1&id=2012daca&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\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!./GeoJsonEditor.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!./GeoJsonEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./GeoJsonEditor.vue?vue&type=template&id=6d150dd6&scoped=true\"\nimport script from \"./GeoJsonEditor.vue?vue&type=script&lang=js\"\nexport * from \"./GeoJsonEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\nimport style1 from \"./GeoJsonEditor.vue?vue&type=style&index=1&id=6d150dd6&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 \"6d150dd6\",\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!./ParameterDataType.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!./ParameterDataType.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ParameterDataType.vue?vue&type=template&id=0b98f1e9&scoped=true\"\nimport script from \"./ParameterDataType.vue?vue&type=script&lang=js\"\nexport * from \"./ParameterDataType.vue?vue&type=script&lang=js\"\nimport style0 from \"./ParameterDataType.vue?vue&type=style&index=0&id=0b98f1e9&prod&scoped=true&lang=css\"\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 \"0b98f1e9\",\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!./ParameterDataTypes.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!./ParameterDataTypes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ParameterDataTypes.vue?vue&type=template&id=5bbcc7b1\"\nimport script from \"./ParameterDataTypes.vue?vue&type=script&lang=js\"\nexport * from \"./ParameterDataTypes.vue?vue&type=script&lang=js\"\nimport style0 from \"./ParameterDataTypes.vue?vue&type=style&index=0&id=5bbcc7b1&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',{staticClass:\"parameters\"},_vm._l((_vm.parameters),function(param,k){return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.toggleParamVisibility(param)),expression:\"toggleParamVisibility(param)\"}],key:k,staticClass:\"fieldRow\"},[_c('label',{class:{ fieldLabel: true, highlight: param.name === _vm.selectParameter, info: param.info }},[_vm._v(\" \"+_vm._s(_vm.displayLabel(param))+\" \"),(!param.info && !param.optional)?_c('strong',{staticClass:\"required\",attrs:{\"title\":\"required\"}},[_vm._v(\"*\")]):_vm._e(),(param.description)?_c('div',{staticClass:\"description\"},[_c('Description',{attrs:{\"description\":param.description}})],1):_vm._e()]),(!param.info)?_c('ParameterDataTypes',{ref:param.name,refInFor:true,attrs:{\"editable\":_vm.editable,\"parameter\":param,\"context\":_vm.context,\"parent\":_vm.parent},on:{\"schemaSelected\":function($event){return _vm.updateType(param, $event)}},model:{value:(_vm.value[param.name]),callback:function ($$v) {_vm.$set(_vm.value, param.name, $$v)},expression:\"value[param.name]\"}}):_vm._e(),(!param.info && param.unspecified)?_c('button',{staticClass:\"deleteBtn\",attrs:{\"title\":\"Delete unspecified parameter\",\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteParam(k)}}},[_c('i',{staticClass:\"fas fa-trash\"})]):_vm._e()],1)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./Parameters.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!./Parameters.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Parameters.vue?vue&type=template&id=e173c10e&scoped=true\"\nimport script from \"./Parameters.vue?vue&type=script&lang=js\"\nexport * from \"./Parameters.vue?vue&type=script&lang=js\"\nimport style0 from \"./Parameters.vue?vue&type=style&index=0&id=e173c10e&prod&lang=scss&scoped=true\"\nimport style1 from \"./Parameters.vue?vue&type=style&index=1&id=e173c10e&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 \"e173c10e\",\n null\n \n)\n\nexport default component.exports","export default class OSMGeocoder {\n\tconstructor(url, geojson = false) {\n\t\tthis.url = url;\n\t\tthis.geojson = geojson;\n\t}\n\n\tgetParameters(opt) {\n\t\treturn {\n\t\t\turl: this.url,\n\t\t\tparams: {\n\t\t\t\tq: opt.query,\n\t\t\t\tformat: 'json',\n\t\t\t\tlimit: 10,\n\t\t\t\t'accept-language': 'en',\n\t\t\t\tpolygon_geojson: this.geojson ? 1 : 0,\n\t\t\t\tpolygon_threshold: 0.001,\n\t\t\t},\n\t\t};\n\t}\n\n\thandleResponse(results) {\n\t\tif (results.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn results\n\t\t\t.filter(result => [\"boundary\", \"geological\", \"leisure\", \"natural\", \"place\", \"water\", \"waterway\"].includes(result.class))\n\t\t\t.map(result => ({\n\t\t\t\tlon: result.lon,\n\t\t\t\tlat: result.lat,\n\t\t\t\tbbox: result.boundingbox,\n\t\t\t\taddress: {\n\t\t\t\t\tname: result.display_name\n\t\t\t\t},\n\t\t\t\toriginal: {\n\t\t\t\t\tformatted: result.display_name,\n\t\t\t\t\tdetails: result.address,\n\t\t\t\t\tgeojson: result.geojson\n\t\t\t\t}\n\t\t\t}));\n\t}\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!./GeocoderMixin.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!./GeocoderMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeocoderMixin.vue?vue&type=script&lang=js\"\nimport style0 from \"@kirtandesai/ol-geocoder/dist/ol-geocoder.min.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./GeocoderMixin.vue?vue&type=style&index=1&id=643f6883&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',{attrs:{\"id\":_vm.id}},[_c('ProgressControl',{ref:\"progress\",attrs:{\"map\":_vm.map}}),_c('UserLocationControl',{attrs:{\"map\":_vm.map}}),_c('TextControl',{attrs:{\"text\":_vm.help,\"map\":_vm.map}})],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!./MapAreaSelect.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!./MapAreaSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MapAreaSelect.vue?vue&type=template&id=c6d9ceda\"\nimport script from \"./MapAreaSelect.vue?vue&type=script&lang=js\"\nexport * from \"./MapAreaSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"../maps/MapMixin.scss?vue&type=style&index=0&prod&lang=scss&external\"\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 (_vm.texts.length > 0)?_c('div',{staticClass:\"ol-unselectable ol-control value\",class:{pointer: _vm.texts.length > 1},on:{\"click\":_vm.toggle}},[_vm._v(_vm._s(_vm.current))]):_vm._e()\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!./TextControl.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!./TextControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextControl.vue?vue&type=template&id=b1521986&scoped=true\"\nimport script from \"./TextControl.vue?vue&type=script&lang=js\"\nexport * from \"./TextControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextControl.vue?vue&type=style&index=0&id=b1521986&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 \"b1521986\",\n null\n \n)\n\nexport default component.exports","import Utils from '../../utils';\nexport const API_TYPES = Utils.resolveJsonRefs(require('@openeo/js-processgraphs/assets/subtype-schemas.json')).definitions;\nexport const NATIVE_TYPES = [\n\t'string',\n\t'integer',\n\t'number',\n\t'boolean',\n\t'array',\n\t'object'\n];"],"names":["render","_vm","this","_c","_self","selectedSchema","staticClass","showDataTypeChooser","attrs","editable","domProps","selectedType","on","onSelectType","selectableTypes","length","_l","group","key","name","types","type","_v","_s","_f","_e","isItem","description","parameter","context","parent","setSelected","resetValue","model","value","state","callback","$$v","expression","staticRenderFns","instance","JsonSchema","JsonSchemaValidator","create","store","constructor","super","setFileFormats","getters","fileFormats","validateBandName","data","validateEpsgCode","dispatch","editor","epsgCodes","ajv","message","validateCollectionId","collections","filter","c","id","validateFilePath","validateInputFormatOptions","validateOutputFormatOptions","validateJobId","validateUri","match","validateUdfCode","validateUdfRuntime","udfRuntimes","validateUdfRuntimeVersion","Versions","validate","isResult","from_node","nativeParameterType","$event","convertToArray","isPgParameter","from_parameter","_m","isSelection","schema","dependency","onSelectDetails","isTemporal","editorDefaultValue","ref","directives","rawName","Array","isArray","_i","$$a","$$el","target","$$c","checked","$$i","concat","slice","modifiers","numericMin","numericMax","numericStep","composing","_n","$forceUpdate","nativeType","onDrop","allowDrop","isTopLevel","showVisual","visual","isObject","updateFromVisual","showCode","updateFromCode","class","array","object","canAdd","count","maxCount","add","element","$el","elements","e","k","prop","title","required","$set","elementSchema","minCount","remove","components","draggable","Description","FullscreenButton","ParameterDataTypes","props","Object","Boolean","default","computed","Utils","size","maxProperties","maxItems","Number","MAX_VALUE","minProperties","minItems","additionalProperties","prefill","properties","arr","propSchema","not","includes","push","assign","keys","map","newValue","obj","v","watch","deep","handler","$emit","immediate","undefined","methods","index","ProcessUtils","getElementJsonSchema","ProcessSchema","refs","String","splice","component","ObjectEditorDnD","Tab","Tabs","TextEditor","mounted","$parent","$options","$refs","sourceEditor","updateState","event","preventDefault","files","dataTransfer","file","jsonTypes","toLowerCase","isJson","endsWith","reader","FileReader","onload","json","JSON","parse","result","error","console","onerror","exception","readAsText","hasBudget","amount","max","capabilities","currency","mapState","mapGetters","userInfo","budget","updateData","isNaN","showMap","mixins","GeocoderMixin","MapMixin","ExtentMixin","geoJsonLayer","renderMap","isWebMercatorCompatible","source","createGeoJsonSource","extent","getExtent","extentIsEmpty","isBboxInWebMercator","extentToBBox","createMap","addBasemaps","geoJsonEditor","addGeoJson","getGeoJson","getSource","addGeocoder","polygon","feature","GeoJSON","readFeature","featureProjection","getView","getProjection","addFeature","fit","getFitOptions","geojson","layer","mainbar","Bar","addControl","editbar","EditBar","interactions","Info","DrawHole","Offset","Split","undoInteraction","UndoRedo","addInteraction","action","getInteraction","getFeatures","clear","select","bar","controls","Button","html","handleClick","undo","redo","Snap","olFeatures","gjFeatures","i","writeFeatureObject","dataProjection","geometry","features","GeoJsonMapEditor","geojsonTypes","kmlTypes","isGeoJson","isKml","kml","DOMParser","parseFromString","detectGeoJson","EventBusMixin","ObjectEditor","Budget","MapAreaSelect","GeoJsonEditor","Editor","FileFormatOptionsEditor","Duration","Kernel","SelectBox","TemporalPicker","dataType","nativeDataType","nullable","isEnum","isRef","minimum","maximum","multipleOf","num","parseFloat","parseInt","getValueFromOtherParameterByDataType","replace","Process","arrayOf","newVal","oldVal","schemas","values","broadcast","TYPE_GROUPS","cloneDefault","deepClone","now","Date","toISOString","SUPPORTED_TYPES","subtype","const","format","substring","any","tyoe","noAutoDetect","refSchema","ParameterDataType","ProcessParameter","selectedNativeType","jsonSchemaValidator","$store","filters","dataTypeTitle","supportedType","find","st","created","detectType","refSchemas","r","ProcessDataType","allowedTypes","allowed","supportedTypes","getUniqueKey","s","API_TYPES","grouped","groups","detectableTypes","detectable","basename","isValueInvalid","schema2","items","oneOf","errors","validateValue","getTypeForValue","validTypes","valueUndefined","nonNullKeys","t","warn","join","stringify","findIndex","NATIVE_TYPES","evt","setValue","isNull","getEnumChoices","defaultValue","parameters","param","toggleParamVisibility","fieldLabel","highlight","selectParameter","info","displayLabel","optional","refInFor","updateType","unspecified","deleteParam","show","$nextTick","toggledBy","$delete","label","prettifyString","componentforParameter","callCounter","scrollIntoView","setInputFocus","setTimeout","node","querySelector","firstElement","focus","OSMGeocoder","url","getParameters","opt","params","q","query","limit","polygon_geojson","polygon_threshold","handleResponse","results","lon","lat","bbox","boundingbox","address","display_name","original","formatted","details","$config","geocoder","options","provider","placeholder","keepOpen","Geocoder","place","bboxOpenEO","west","east","north","south","help","GeoJsonMixin","TextControl","showMaxExtent","interaction","toExtent","returnAsObject","projectedExtent","transformExtent","outerArea","update","setExtent","fitMap","style","Style","fill","Fill","color","stroke","Stroke","width","condition","pixelSize","getSize","xy","calculateExtent","mouseExtent","coordinate","containsXY","vertexOverlay_","vertexFeature_","handlingDownUpSequence","snapToVertex_","pixel","ExtentInteraction","boxStyle","createDefaultStyle","pixelTolerance","fitOptions","texts","pointer","toggle","current","ControlMixin","text","resolveJsonRefs","require","definitions"],"sourceRoot":""} \ No newline at end of file diff --git a/js/552.3b4e55e2.js b/js/552.03d86df0.js similarity index 99% rename from js/552.3b4e55e2.js rename to js/552.03d86df0.js index 19975cd2..9810edcd 100644 --- a/js/552.3b4e55e2.js +++ b/js/552.03d86df0.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[552,2722,3298,9409],{35254:(e,t,s)=>{s.d(t,{A:()=>a});const a={components:{FederationNotice:()=>s.e(2604).then(s.bind(s,52604)),FederationMissingNotice:()=>s.e(2869).then(s.bind(s,62869))},props:{federation:{type:Object,default:()=>({})}}}},44712:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component collections"},[t("SearchableList",{attrs:{data:e.collections,identifierKey:"id",summaryKey:"title",keywordsKey:"keywords",showKeywords:e.showKeywords,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"content-start",fn:function(s){return[e._t("content-start",null,null,s),e.missing?t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}}):e._e()]}},{key:"after-search-box",fn:function(t){return[e._t("after-search-box",null,null,t)]}},{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Collection",{attrs:{data:s.item,mapOptions:e.mapOptions,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("collection-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("collection-end",null,null,t)]}},{key:"spatial-extents",fn:function(t){return[e._t("collection-spatial-extents",null,null,t)]}},{key:"temporal-extents",fn:function(t){return[e._t("collection-temporal-extents",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},i=[],r=s(86975),o=s(35254);const n={name:"Collections",components:{Collection:()=>r.A.loadAsyncComponent(Promise.all([s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(3249)]).then(s.bind(s,3249))),SearchableList:()=>r.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{collections:{type:Array,default:()=>[]},mapOptions:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Collections"},collapsed:{type:Boolean,default:null},loadAdditionalData:{type:Function,default:null},showKeywords:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},beforeCreate(){r.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,i,!1,null,null,null);const u=d.exports},90334:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component file-formats"},[t("SearchableList",{attrs:{data:e.fileFormats,summaryKey:"title",keywordsKey:"gis_data_types",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.item.name))]),t("ul",{staticClass:"badges small inline"},[e.showAll&&"input"===s.item.type?t("li",{staticClass:"badge option1"},[e._v("Import")]):e._e(),e.showAll&&"output"===s.item.type?t("li",{staticClass:"badge option2"},[e._v("Export")]):e._e(),Array.isArray(s.item.gis_data_types)?e._l(s.item.gis_data_types,(function(s){return t("li",{key:s,staticClass:"badge gis"},[e._v(e._s(s))])})):e._e()],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("FileFormat",{attrs:{id:s.summary.identifier,format:s.item,type:s.item.type,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("file-format-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("file-format-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},i=[],r=s(86975),o=s(35254);const n={name:"FileFormats",components:{SearchableList:()=>r.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),FileFormat:()=>r.A.loadAsyncComponent(s.e(3504).then(s.bind(s,13504)))},mixins:[o.A],props:{formats:{type:Object,default:()=>({})},showInput:{type:Boolean,default:!0},showOutput:{type:Boolean,default:!0},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"File Formats"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},missing:{type:Array,default:null},...o.A.props},computed:{showAll(){return this.showInput&&this.showOutput},typesToShow(){let e=[];return this.showInput&&e.push("input"),this.showOutput&&e.push("output"),e},fileFormats(){let e=[];for(let s of this.typesToShow)for(var t in this.formats[s]){let a=Object.assign({id:`${t}-${s}`,name:t,type:s},this.formats[s][t]);e.push(a)}return e}},beforeCreate(){r.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,i,!1,null,null,null);const u=d.exports},48312:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component processes"},[t("SearchableList",{attrs:{data:e.processes,keywordsKey:"categories",showKeywords:e.showCategories,showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed,loadAdditionalData:e.loadAdditionalData,allowCopy:""},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},e.missing?{key:"content-start",fn:function(){return[t("FederationMissingNotice",{attrs:{missing:e.missing,federation:e.federation}})]},proxy:!0}:null,{key:"summary",fn:function(t){return[e._t("summary",null,null,t)]}},{key:"details",fn:function(s){return[t("Process",{attrs:{process:s.item,provideDownload:e.provideDownload,processUrl:e.processUrl,showGraph:e.showGraph,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"before-description",fn:function(t){return[e._t("process-before-description",null,null,t)]}},{key:"end",fn:function(t){return[e._t("process-end",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},i=[],r=s(86975),o=s(35254);const n={name:"Processes",components:{Process:()=>r.A.loadAsyncComponent(s.e(6660).then(s.bind(s,34279))),SearchableList:()=>r.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152)))},mixins:[o.A],props:{processes:{type:Array,default:()=>[]},provideDownload:{type:Boolean,default:!0},processUrl:String,searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"Processes"},collapsed:{type:Boolean,default:null},showCategories:{type:Boolean,default:!1},showGraph:{type:Boolean,default:!1},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},loadAdditionalData:{type:Function,default:null},missing:{type:Array,default:null},...o.A.props},beforeCreate(){r.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,i,!1,null,null,null);const u=d.exports},9409:(e,t,s)=>{s.r(t),s.d(t,{default:()=>c});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component search-box",class:{compact:e.compact}},[t("span",{staticClass:"icon"},[e._v("🔎")]),t("input",{directives:[{name:"model",rawName:"v-model",value:e.searchTerm,expression:"searchTerm"}],attrs:{type:"search",placeholder:e.placeholder,minlength:e.minLength,title:e.searchHint},domProps:{value:e.searchTerm},on:{input:function(t){t.target.composing||(e.searchTerm=t.target.value)}}})])},i=[];const r={name:"SearchBox",props:{value:{type:String,default:""},placeholder:{type:String,default:"Search"},minLength:{type:Number,default:1},compact:{type:Boolean,default:!1}},data(){return{searchTerm:this.value}},watch:{searchTerm(e,t){e.length1?`Searching requires at least ${this.minLength} characters.`:null}}},o=r;var n=s(81656),l=(0,n.A)(o,a,i,!1,null,null,null);const c=l.exports},91065:(e,t,s)=>{s.d(t,{A:()=>u});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component udf-runtimes"},[t("SearchableList",{attrs:{data:e.runtimes,summaryKey:"title",showSummaryOnExpand:!1,externalSearchTerm:e.searchTerm,externalHideDeprecated:e.hideDeprecated,deprecatedFilter:e.deprecatedFilter,externalHideExperimental:e.hideExperimental,experimentalFilter:e.experimentalFilter,sort:e.sort,offerDetails:e.offerDetails,heading:e.heading,collapsed:e.collapsed},on:{detailsToggled:e.detailsToggled},scopedSlots:e._u([{key:"heading",fn:function(t){return[e._t("heading",null,null,t)]}},{key:"summary",fn:function(s){return[e._t("summary",(function(){return[t("strong",{staticClass:"inline"},[e._v(e._s(s.summary.identifier))]),t("ul",{staticClass:"badges small inline"},["docker"===s.item.type||s.item.docker&&s.item.tags?[t("li",{staticClass:"badge docker"},[e._v("Docker")]),e._l(s.item.tags,(function(a){return t("li",{key:a,staticClass:"badge version",class:{default:a===s.item.default}},[e._v(e._s(a))])}))]:e._l(s.item.versions,(function(a,i){return t("li",{key:i,staticClass:"badge version",class:{default:i===s.item.default}},[e._v(e._s(i))])}))],2),t("br"),t("small",[e._v(e._s(s.summary.summary))])]}),null,s)]}},{key:"details",fn:function(s){return[t("UdfRuntime",{attrs:{id:s.summary.identifier,runtime:s.item,federation:e.federation},scopedSlots:e._u([{key:"title",fn:function(){return[t("span",{staticClass:"hidden"})]},proxy:!0},{key:"badges",fn:function(t){return[e._t("udf-runtime-badges",null,null,t)]}},{key:"before-description",fn:function(t){return[e._t("udf-runtime-before-description",null,null,t)]}}],null,!0)})]}}],null,!0)})],1)},i=[],r=s(86975),o=s(35254);const n={name:"UdfRuntimes",components:{SearchableList:()=>r.A.loadAsyncComponent(s.e(4152).then(s.bind(s,34152))),UdfRuntime:()=>r.A.loadAsyncComponent(s.e(3271).then(s.bind(s,33271)))},mixins:[o.A],props:{runtimes:{type:Object,default:()=>({})},searchTerm:{type:String,default:null},sort:{type:Boolean,default:!0},offerDetails:{type:Boolean,default:!0},heading:{type:String,default:"UDF Runtimes"},collapsed:{type:Boolean,default:null},hideDeprecated:{type:Boolean,default:!1},deprecatedFilter:{type:Boolean,default:!1},hideExperimental:{type:Boolean,default:!1},experimentalFilter:{type:Boolean,default:!1},...o.A.props},beforeCreate(){r.A.enableHtmlProps(this)},methods:{detailsToggled(...e){this.$emit("detailsToggled",...e)}}},l=n;var c=s(81656),d=(0,c.A)(l,a,i,!1,null,null,null);const u=d.exports},3549:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});var a=function(){var e=this,t=e._self._c;return t("BButton",{directives:[{name:"show",rawName:"v-show",value:e.fn,expression:"fn"}],staticClass:"async-button",class:{awesome:e.fa},attrs:{type:"button",title:e.title,disabled:e.disabled},on:{click:e.update}},[t("span",{staticClass:"button-content"},[e.loading?t("span",{staticClass:"icon loading"},[e.fa?t("i",{class:e.loadingClasses}):t("LoadingIcon",{attrs:{rotate:""}})],1):!0===e.asyncState?t("span",{staticClass:"icon success"},[e.fa?t("i",{staticClass:"fas fa-check"}):t("span",[e._v("✔️")])]):!1===e.asyncState?t("span",{staticClass:"icon error"},[e.fa?t("i",{staticClass:"fas fa-times"}):t("span",[e._v("❌")])]):t("span",{staticClass:"icon default"},[e.fa?t("i",{class:e.icon}):e.icon?t("span",[e._v(e._s(e.icon))]):t("LoadingIcon")],1),t("span",{staticClass:"text"},[e._t("default")],2)])])},i=[],r=s(42918),o=s(91144);const n={components:{BButton:o.A,LoadingIcon:r.A},name:"AsyncButton",props:{fn:{type:Function,required:!0},fa:{type:Boolean,default:!1},confirm:{type:Boolean,default:!1},icon:{type:String,default:""},title:{type:String,default:null},disabled:{type:Boolean,default:!1},consistent:{type:Boolean,default:!1},nativeTooltip:{type:Boolean,default:!1}},data(){return{loading:!1,asyncState:null}},computed:{loadingClasses(){let e=this.consistent?this.icon.split(" "):["fas","fa-spinner"];return e.push("fa-spin"),e}},methods:{async update(e){if(null===this.asyncState&&!this.disabled)try{this.$emit("before",e),this.loading=!0,this.asyncState=await this.fn(e),this.confirm?"boolean"!==typeof this.asyncState&&(this.asyncState=!0):this.asyncState=null}catch(t){this.asyncState=!1}finally{this.loading=!1,this.$emit("after",this.asyncState),this.confirm&&setTimeout((()=>this.asyncState=null),3e3)}}}},l=n;var c=s(81656),d=(0,c.A)(l,a,i,!1,null,"ec4b291e",null);const u=d.exports},36107:(e,t,s)=>{s.d(t,{A:()=>g});var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"discovery-toolbar"},[t("SearchBox",{model:{value:e.searchTerm,callback:function(t){e.searchTerm=t},expression:"searchTerm"}}),t("div",{staticClass:"filters"},[t("span",{staticClass:"label"},[e._v(" Show ")]),t("label",{staticClass:"show-deprecated",attrs:{title:"Show deprecated elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showDeprecated,expression:"showDeprecated"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showDeprecated)?e._i(e.showDeprecated,null)>-1:e.showDeprecated},on:{change:function(t){var s=e.showDeprecated,a=t.target,i=!!a.checked;if(Array.isArray(s)){var r=null,o=e._i(s,r);a.checked?o<0&&(e.showDeprecated=s.concat([r])):o>-1&&(e.showDeprecated=s.slice(0,o).concat(s.slice(o+1)))}else e.showDeprecated=i}}}),e._v(" deprecated ")]),t("label",{staticClass:"show-experimental",attrs:{title:"Show experimental elements?"}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.showExperimental,expression:"showExperimental"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.showExperimental)?e._i(e.showExperimental,null)>-1:e.showExperimental},on:{change:function(t){var s=e.showExperimental,a=t.target,i=!!a.checked;if(Array.isArray(s)){var r=null,o=e._i(s,r);a.checked?o<0&&(e.showExperimental=s.concat([r])):o>-1&&(e.showExperimental=s.slice(0,o).concat(s.slice(o+1)))}else e.showExperimental=i}}}),e._v(" experimental ")])]),t("div",{staticClass:"search-results"},[t("Collections",{staticClass:"category",attrs:{collections:e.collections,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsLoadCollection},on:{dragstart:function(t){return e.onDrag(t,"collection",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showCollectionInfo(s.id)}}},[t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()]),e.hasCollectionPreview(s)?t("button",{staticClass:"discovery-button",attrs:{type:"button",title:"View on map"},on:{click:function(t){return e.showCollectionPreview(s)}}},[t("i",{staticClass:"fas fa-map"})]):e._e()])]}}])}),t("Processes",{staticClass:"category",attrs:{processes:e.allProcesses,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:"true"},on:{dragstart:function(t){return e.onDrag(t,"process",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showProcess(s)}}},["user"===s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-sitemap",attrs:{title:"Custom Process"}}):"backend"!==s.namespace?t("i",{staticClass:"custom-process fas fa-xs fa-tag",attrs:{title:`Process from namespace '${s.namespace}'`}}):e._e(),t("strong",{attrs:{title:s.id}},[e._v(e._s(s.id))]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}])}),e.hasUdfRuntimes?t("UdfRuntimes",{staticClass:"category",attrs:{runtimes:e.udfRuntimes,searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({summary:s,item:a}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsRunUdf},on:{dragstart:function(t){return e.onDrag(t,"udf",{runtime:s.identifier,version:a.default})}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showUdfInfo(s.identifier,a)}}},[t("strong",{attrs:{title:s.identifier}},[e._v(e._s(s.identifier)+" ("+e._s(a.default)+")")]),s.summary?t("small",{attrs:{title:s.summary}},[e._v(e._s(s.summary))]):e._e()])])]}}],null,!1,92063951)}):e._e(),t("FileFormats",{staticClass:"category",attrs:{formats:e.fileFormats,showInput:!1,heading:"Export File Formats",searchTerm:e.searchTerm,offerDetails:!1,collapsed:e.collapsed,hideDeprecated:!e.showDeprecated,hideExperimental:!e.showExperimental},scopedSlots:e._u([{key:"summary",fn:function({item:s}){return[t("div",{staticClass:"discovery-entity",attrs:{draggable:e.supportsSaveResult},on:{dragstart:function(t){return e.onDrag(t,"fileformat",s)}}},[t("div",{staticClass:"discovery-info",on:{click:function(t){return e.showFileFormatInfo(s)}}},[t("strong",{attrs:{title:s.name}},[e._v(e._s(s.name))]),s.title?t("small",{attrs:{title:s.title}},[e._v(e._s(s.title))]):e._e()])])]}}])})],1)],1)},i=[],r=s(61663),o=s(2566),n=s(44712),l=s(90334),c=s(48312),d=s(9409),u=s(91065);const h={name:"DiscoveryToolbar",mixins:[r.A],components:{Collections:n.A,FileFormats:l.A,Processes:c.A,SearchBox:d["default"],UdfRuntimes:u.A},props:{onAddProcess:{type:Function,required:!0},collectionPreview:{type:Boolean,default:!1},persist:{type:Boolean,default:!1}},data(){return{internalSearchTerm:"",collapsed:!0,showDeprecated:this.$config.showDeprecatedByDefault||!1,showExperimental:this.$config.showExperimentalByDefault||!1}},computed:{...o.A.mapState(["collections","udfRuntimes"]),...o.A.mapState("editor",["discoverySearchTerm"]),...o.A.mapGetters(["supports","fileFormats","processes"]),supportsLoadCollection(){return this.processes.has("load_collection")},supportsRunUdf(){return this.processes.has("run_udf")},supportsSaveResult(){return this.processes.has("save_result")},hasUdfRuntimes(){return o.A.size(this.udfRuntimes)},allProcesses(){return this.processes.all()},searchTerm:{get(){return this.persist?this.discoverySearchTerm:this.internalSearchTerm},set(e){this.persist?this.setDiscoverySearchTerm(e):this.internalSearchTerm=e}}},watch:{searchTerm:{immediate:!0,handler(e,t){!e&&t?this.collapsed=!0:e&&!t&&(this.collapsed=!1)}}},methods:{...o.A.mapMutations("editor",["setDiscoverySearchTerm","setModelDnD"]),...o.A.mapActions(["loadProcess"]),onDrag(e,t,s){let a=e=>this.setModelDnD({type:t,data:s,loading:e});"process"===t?(a(!0),this.loadProcess(s).then((()=>a(!1)))):a(!1)},showCollectionInfo(e){this.broadcast("showCollection",e)},hasCollectionPreview(e){return Boolean(this.collectionPreview&&o.A.getPreviewLinkFromSTAC(e))},showCollectionPreview(e){this.broadcast("showCollectionPreview",e)},showProcess(e){this.broadcast("showProcess",e)},showUdfInfo(e,t){this.broadcast("showModal","UdfRuntimeModal",{id:e,data:t,version:t.default})},showFileFormatInfo(e){let t={id:e.name,format:this.fileFormats.output[e.name],type:"output"};this.broadcast("showModal","FileFormatModal",t)}}},p=h;var m=s(81656),f=(0,m.A)(p,a,i,!1,null,"aacdf426",null);const g=f.exports},92385:(e,t,s)=>{s.r(t),s.d(t,{default:()=>C});var a=function(){var e=this,t=e._self._c;return t("Tabs",{ref:"tabs",staticClass:"editor",attrs:{id:"customProcessContent",position:"bottom"}},[t("Tab",{attrs:{id:"visual",name:"Visual Model",icon:"fa-project-diagram",selected:!0,allowShow:e.canSwitchView},on:{show:e.showModel}},[t("VisualEditor",{ref:"graphBuilder",staticClass:"visualEditorTab",attrs:{editable:e.editable,parent:e.parent,parentSchema:e.parentSchema,value:e.modelValue,title:e.title,id:e.id+"_visual",showDiscoveryToolbar:e.showDiscoveryToolbar,showIntro:e.showIntro,defaultValue:e.defaultValue},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1),t("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code",allowShow:e.canSwitchView},on:{show:e.showCode}},[t("TextEditor",{ref:"sourceEditor",staticClass:"textEditorTab",attrs:{editable:e.editable,value:e.codeValue,title:e.title,id:e.id+"_text",language:"processgraph"},on:{input:e.commit,error:e.onError},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[e._t("file-toolbar")]},proxy:!0},{key:"toolbar",fn:function(){return[e._t("toolbar")]},proxy:!0}],null,!0)})],1)],1)},i=[],r=s(2566),o=s(4615),n=s(58379),l=function(){var e=this,t=e._self._c;return t("div",{ref:"visualEditor",staticClass:"visualEditor"},[t("div",{staticClass:"sourceHeader"},[e.title?t("strong",[e._v(e._s(e.title))]):e._e(),t("div",{staticClass:"sourceToolbar"},[e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{title:"Start from scratch - Clears the current script"},on:{click:e.confirmClear}},[t("i",{staticClass:"fas fa-file"})]),e._t("file-toolbar")],2):e._e(),e.editable?t("span",{staticClass:"sepr"},[t("BButton",{attrs:{disabled:!e.canUndo,title:"Revert the last change"},on:{click:function(t){return e.$refs.blocks.undo()}}},[t("i",{staticClass:"fas fa-undo-alt"})]),t("BButton",{attrs:{disabled:!e.canRedo,title:"Redo the last reverted change"},on:{click:function(t){return e.$refs.blocks.redo()}}},[t("i",{staticClass:"fas fa-redo-alt"})]),t("BButton",{attrs:{disabled:!e.hasSelection,title:"Delete the selected elements from the process"},on:{click:function(t){return e.$refs.blocks.deleteSelected()}}},[t("i",{staticClass:"fas fa-trash"})])],1):e._e(),e.editable?t("span",{staticClass:"sepr"},[e.parent?e._e():t("BButton",{attrs:{title:"Edit the process metadata"},on:{click:()=>e.editProcess(e.value)}},[t("i",{staticClass:"fas fa-edit"})]),t("BButton",{attrs:{title:"Add a parameter to the process"},on:{click:e.addParameter}},[t("i",{staticClass:"fas fa-parking"})]),e.supportsMath?t("BButton",{class:{highlightFormula:e.isMath},attrs:{title:"Insert or edit a formula as part of the process"},on:{click:e.showExpressionModal}},[t("i",{staticClass:"fas fa-square-root-alt"})]):e._e()],1):e._e(),t("BButton",{class:{compactMode:e.compactMode},attrs:{title:e.compactMode?"Show the process more compact and less detailed":"Shows the process less compact and more detailed"},on:{click:function(t){return e.$refs.blocks.toggleCompact()}}},[t("i",{staticClass:"fas fa-compress-arrows-alt"})]),t("BButton",{attrs:{title:"Scale the view to match the available space"},on:{click:function(t){return e.$refs.blocks.perfectScale()}}},[t("i",{staticClass:"fas fa-arrows-alt"})]),t("FullscreenButton",{attrs:{element:()=>this.$refs.visualEditor},on:{changed:t=>{this.$refs.blocks.perfectScale(),e.isFullScreen=t}}}),e._t("toolbar")],2)]),t("div",{staticClass:"editorSplitter"},[(e.showDiscoveryToolbar||e.isFullScreen)&&e.editable?t("DiscoveryToolbar",{staticClass:"discoveryToolbar",attrs:{onAddProcess:e.insertProcess}}):e._e(),t("div",{staticClass:"graphBuilder",on:{drop:e.onDrop,dragover:e.allowDrop}},[e.showHelpOverlay?t("div",{staticClass:"model-overlay"},[t("h2",[e._v("Welcome!")]),t("p",[e._v(" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. ")]),t("p",[e._v(" Alternatively, you can also import existing processes into the model builder: "),t("ul",[e.canPaste?t("li",[e._v("Paste the JSON from your clipboard by clicking "),t("BButton",{attrs:{title:"Paste a process from your clipboard"},on:{click:e.paste}},[t("i",{staticClass:"fas fa-paste"})]),e._v(" or use "),t("kbd",[e._v("CTRL")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (Windows, Linux) or "),t("kbd",[e._v("⌘")]),e._v(" + "),t("kbd",[e._v("V")]),e._v(" (MacOS) when the model builder is in focus.")],1):e._e(),t("li",[e._v("Drag and drop a JSON file from your computer")]),t("li",[e._v("Import a JSON file from your computer or another source such as the internet by clicking "),t("BButton",{attrs:{title:"Import a process from an external source"},on:{click:e.importProcess}},[t("i",{staticClass:"fas fa-cloud-download-alt"})])],1)])]),e._m(0),t("p",[e._v("Once you start interacting with this area, this message will disappear.")])]):e._e(),t("ModelBuilder",{ref:"blocks",attrs:{editable:e.editable,id:e.id,processes:e.processes,collections:e.collections,parent:e.parent,parentSchema:e.parentSchema,value:e.value},on:{input:e.commit,error:e.errorHandler,showProcess:(t,s)=>e.broadcast("showProcess",{id:t,namespace:s}),showCollection:t=>e.broadcast("showCollection",t),showParameter:(t,s)=>e.broadcast("showProcessParameter",t,s),editParameter:e.editParameter,editArguments:e.openArgumentEditor,compactMode:e=>this.compactMode=e,selectionChanged:e.selectionChanged,historyChanged:e.historyChanged}})],1)],1)])},c=[function(){var e=this,t=e._self._c;return t("p",[e._v(" You can also import the processes from the Python and R client. You need to export your process to JSON first: "),t("ul",[t("li",[e._v("In Python use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export",target:"_blank"}},[t("code",[e._v("print(result.to_json())")])])]),t("li",[e._v("In R use "),t("a",{attrs:{href:"https://open-eo.github.io/openeo-r-client/reference/index.html",target:"_blank"}},[t("code",[e._v('toJSON(as(result, "Process"))')])])])]),e._v(" In both cases, "),t("code",[e._v("result")]),e._v(" is your last return value from a data cube process such as "),t("code",[e._v("save_result")]),e._v(". For more details, please read the corresponding chapter in the "),t("a",{attrs:{href:"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json",target:"_blank"}},[e._v("openEO cookbook")]),e._v(". ")])}],d=(s(98992),s(54520),s(81454),s(4638)),u=s(36107),h=s(61663),p=s(92622),m=s(91144),f=s(31572),g=s(47067);const y={name:"VisualEditor",mixins:[h.A],components:{BButton:m.A,ModelBuilder:d["default"],DiscoveryToolbar:u.A,FullscreenButton:p.A},props:{id:String,editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},title:{type:String},defaultValue:{}},computed:{...r.A.mapState(["connection","collections"]),...r.A.mapGetters(["processes","supportsMath"]),...r.A.mapState("editor",["initialNode"]),...r.A.mapGetters("editor",["getModelNodeFromDnD"]),isMath(){return this.supportsMath&&this.processes.isMath(this.value)}},data(){return{showHelpOverlay:this.showIntro,canUndo:!1,canRedo:!1,canPaste:!1,compactMode:!1,hasSelection:!1,formula:null,isFullScreen:!1}},watch:{value:{immediate:!0,handler(e){if(e&&(this.showHelpOverlay=!1),this.initialNode&&r.A.isObject(e)&&r.A.isObject(e.process_graph))try{let t=this.initialNode;"1"==t&&r.A.size(e.process_graph)&&(t=Object.keys(e.process_graph)[0]),this.openArgumentEditorForNode(t)}catch(t){r.A.exception(this,t)}finally{this.setInitialNode(null)}}}},mounted(){this.canPaste=navigator&&navigator.clipboard&&"function"===typeof navigator.clipboard.readText},methods:{...r.A.mapMutations("editor",["setInitialNode","setModelDnD"]),commit(e){"undefined"!==typeof this.defaultValue&&r.A.isObject(e)&&0===r.A.size(e.process_graph)&&(e=this.defaultValue),this.$emit("input",e)},async paste(){this.canPaste||r.A.error(this,"error","Pasting is not supported by your browser.");try{const e=await navigator.clipboard.readText();let t=JSON.parse(e);await this.$refs.blocks.import(t)}catch(e){r.A.exception(this,e,"Paste Error")}},importProcess(){this.broadcast("importProcess")},errorHandler(e,t=null){r.A.exception(this,e,t)},selectionChanged(e,t){this.hasSelection=Boolean(e.filter((e=>e.$el.allowsDelete)).length||t.length)},historyChanged(e,t){this.canUndo=!!e[t-1],this.canRedo=!!e[t+1]},allowDrop(e){this.showHelpOverlay=!1,e.preventDefault()},async onDrop(e){const t=await this.getModelNodeFromDnD();if(t)return this.insertProcess(t,e.pageX,e.pageY),this.setModelDnD(),e.preventDefault();let s=e.dataTransfer.files;if(1===s.length){let t=e.dataTransfer.files[0];if("application/json"===t.type){var a=new FileReader;return a.onload=async e=>{try{let t=JSON.parse(e.target.result);await this.$refs.blocks.import(t)}catch(t){r.A.exception(this,t,"Parsing JSON file failed")}},a.onerror=e=>r.A.exception(this,e,"Reading JSON file failed"),a.readAsText(t,"UTF-8"),e.preventDefault()}}},getNameField(e=void 0,t="name"){return{value:e,name:t,description:"A unique identifier. Must contain only letters (`a`-`z`), digits (`0`-`9`) and underscores (`_`). `snake_case` is recommended.",label:"Name",schema:{type:"string",pattern:"^\\w+$"},default:null}},getDescriptionField(e=void 0,t=!1,s="description",a="Description"){return{value:e,name:s,description:"Provides a detailed description. CommonMark (Markdown) syntax can be used for rich text formatting.",label:a,optional:t,schema:{type:"string",subtype:"commonmark"}}},getOptionalField(e=void 0){return{value:e,name:"optional",label:"Optional",description:"Parameters by default are required. CHeck this option to make the parameter optional. For optional parameters a default value should be specified.",optional:!0,schema:{type:"boolean"},default:!1}},getDefaultField(e=void 0){return{value:e,name:"default",label:"Default Value",description:"This value is used whenever the user of this process did not specify a value for this parameter.",toggledBy:"optional",optional:!0,schema:{}}},getExperimentalField(e=void 0){return{value:e,name:"experimental",label:"Experimental",description:"Declares that this is experimental, which means that it is unstable and likely to change.",optional:!0,schema:{type:"boolean"},default:!1}},getDeprecatedField(e=void 0){return{value:e,name:"deprecated",label:"Deprecated",description:"Declares that this is deprecated with the potential to be removed in any of the next versions. It should be transitioned out of usage.",optional:!0,schema:{type:"boolean"},default:!1}},getSchemaField(e=void 0,t="schema",s="Data Types"){let a=e?"json-schema":"openeo-datatype";return{value:e,name:t,label:s,description:"Allowed data type(s) as JSON Schema.",schema:[{title:"Single data type",type:"object",subtype:a},{title:"Multiple data types",type:"array",minItems:2,items:{type:"object",subtype:a}}]}},editProcess(e){e=r.A.isObject(e)?e:{};let t=r.A.isObject(e.returns)?e.returns:{};var s=[this.getNameField(e.id,"id"),{value:e.summary,name:"summary",description:"A very short description of the process with usually less than 60 characters.",label:"Summary",optional:!0,schema:{type:"string"}},this.getDescriptionField(e.description,!0),{value:e.categories,name:"categories",label:"Categories",optional:!0,schema:{type:"array",items:{type:"string"}}},this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),{label:"Parameters",description:'The parameters can be edited directly in the "Visual Model" interface.',info:!0},this.getDescriptionField(t.description,!0,"returns_description","Return Value > Description"),this.getSchemaField(t.schema,"returns_schema","Return Value > Data Type"),{value:e.exceptions,name:"exceptions",description:"Declares exceptions (errors) that might occur during execution of this process. This list is just for informative purposes.\n\nThe keys of the object are the error codes, which should only consist of alphanumerical characters. `PascalCase` is recommended.",label:"Errors",optional:!0,schema:{type:"object",additionalProperties:{type:"object",required:["message"],properties:{message:{title:"Error Message",type:"string"},description:{title:"Description",type:"string",subtype:"commonmark"},http:{title:"HTTP Status Code",type:"integer",enum:[400,500,501]}}}}},{value:e.examples,name:"examples",label:"Examples",description:"Example calls for this process with specific values for the parameters (arguments) and the result (return value).",optional:!0,schema:{type:"array",items:{type:"object",required:["arguments"],properties:{title:{title:"Title",type:"string"},title:{title:"Description",type:"string",subtype:"commonmark"},arguments:{title:"Arguments",type:"object",default:{}},returns:{title:"Return Value"}}}}},{value:e.links,name:"links",label:"Links",description:"Links related to this process, e.g. additional documentation.",optional:!0,schema:{type:"array",items:{type:"object",required:["href","rel"],properties:{href:{title:"URL",type:"string"},rel:{title:"Relation",description:"For examples see [IANA relation types](https://www.iana.org/assignments/link-relations/link-relations.xhtml)",type:"string",default:"about"},title:{title:"Title",type:"string"},type:{title:"Media Type",description:"For examples see [IANA media types](https://www.iana.org/assignments/media-types/media-types.xhtml)",type:"string"}}}}}];this.broadcast("showDataForm","Edit Process",s,(async e=>{let t=r.A.pickFromObject(e,["id","summary","description","categories","experimental","deprecated","exception","examples","links"]);("string"===typeof t.description||r.A.isObject(t.schema))&&(t.returns={description:e.returns_description,schema:e.returns_schema});let s=this.$refs.blocks.export(!0),a=Object.assign({},s,t);const i={id:"",summary:"",description:"",categories:[],experimental:!1,deprecated:!1,examples:[],links:[],process_graph:{}};for(let o in i)r.A.equals(i[o],a[o])&&delete a[o];this.commit(a)}))},addParameter(){var e=[this.getNameField(),this.getDescriptionField(),this.getOptionalField(),this.getDefaultField(),this.getExperimentalField(),this.getDeprecatedField(),this.getSchemaField()];this.broadcast("showDataForm","Add Parameter",e,(async e=>{"string"===typeof e.name&&e.name.length>0&&await this.$refs.blocks.addPgParameter(e)}))},editParameter(e,t="Edit Parameter",s=null){var a=[this.getNameField(e.name),this.getDescriptionField(e.description),this.getOptionalField(e.optional),this.getDefaultField(e.default),this.getExperimentalField(e.experimental),this.getDeprecatedField(e.deprecated),this.getSchemaField(e.schema)];this.broadcast("showDataForm",t,a,s)},showExpressionModal(){let e=new g.A(this.value,this.processes,this.connection,!0);e.setCallbackParameters(this.$refs.blocks.getPgParameters().map((e=>e.spec)));try{e.parse();let t={process:e},s={save:this.insertNodes};this.broadcast("showModal","ExpressionModal",t,s)}catch(t){r.A.exception(this,t)}},openArgumentEditorForNode(e){let t=r.A.deepClone(this.value),s=t.process_graph[e],a=this.processes.get(s.process_id,s.namespace);Array.isArray(a.parameters)&&a.parameters.length>0&&this.openArgumentEditor(a.parameters.map((e=>new f.ProcessParameter(e))).filter((e=>e.isEditable())),s.arguments,a.id,!0,null,(e=>{Object.assign(s,{arguments:e}),this.commit(t)}))},openArgumentEditor(e,t,s="Edit",a=!0,i=null,r=null,o=null){let n={title:s,parameters:e,data:t,editable:a,selectParameterName:i,parent:o},l={};"function"===typeof r&&(l.save=r),this.broadcast("showModal","ParameterModal",n,l)},confirmClear(){var e=confirm("Do you really want to clear the existing model?");e&&this.clear()},clear(){this.$refs.blocks&&this.$refs.blocks.clear(),this.commit(null)},insertProcess(e,t=null,s=null){try{var a=this.$refs.blocks.getPositionForPageXY(t,s);let i=e.namespace;"backend"!==i&&"user"!==i||(i=null),this.$refs.blocks.addProcess(e.process_id,e.arguments,a,i)}catch(i){r.A.exception(this,i)}},async insertNodes(e,t=!1){return await this.$refs.blocks.import({process_graph:e},{clear:t})}}},v=y;var w=s(81656),b=(0,w.A)(v,l,c,!1,null,null,null);const A=b.exports;var S=s(20600);const x={name:"Editor",components:{VisualEditor:A,TextEditor:S.A,Tabs:o["default"],Tab:n["default"]},props:{id:{type:String,default:()=>`editor_${Date.now()}`},editable:{type:Boolean,default:!0},value:{type:Object,default:()=>null},title:{type:String},parent:{type:Object,default:null},parentSchema:{type:Object,default:null},showDiscoveryToolbar:{type:Boolean,default:!1},showIntro:{type:Boolean,default:!1},defaultValue:{}},watch:{value(){this.updateTab()}},data(){return{modelValue:null,codeValue:null,error:null}},mounted(){this.updateTab()},methods:{...r.A.mapActions(["loadProcess"]),showModel(){this.error=null,this.modelValue=this.value},showCode(){this.error=null,this.codeValue=this.value,this.$refs.sourceEditor.updateState()},updateTab(){"source"===this.$refs.tabs.getActiveTabId()?this.showCode():this.showModel()},commit(e){this.error=null,this.$emit("input",e)},onError(e){this.error=e},activeEditor(){return"source"===this.$refs.tabs.getActiveTabId()?this.$refs.sourceEditor:this.$refs.graphBuilder},async insertProcess(e){try{await this.loadProcess({id:e.process_id,namespace:e.namespace}),this.activeEditor().insertProcess(e)}catch(t){r.A.exception(this,t)}},canSwitchView(){return!this.editable||null===this.error||(r.A.exception(this,this.error,"Process Invalid Error"),!1)}}},P=x;var _=(0,w.A)(P,a,i,!1,null,null,null);const C=_.exports},92919:(e,t,s)=>{s.r(t),s.d(t,{default:()=>Ee});var a=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"wrapper"}},[t("div",{class:{authenticated:e.isAuthenticated,appMode:Boolean(e.appMode)},attrs:{id:"ide"}},[t("header",{staticClass:"navbar"},[t("Logo"),t("ul",{attrs:{id:"menu"}},[e.simpleMode?e._e():t("li",[t("div",{staticClass:"menuItem",attrs:{title:"Start a guided tour"},on:{click:e.showHelp}},[t("i",{staticClass:"fas fa-question-circle fa-fw"}),e._v("Help")])]),e.simpleMode?e._e():t("li",[t("div",{staticClass:"menuItem",attrs:{title:"Start the process wizard"},on:{click:function(t){return e.showWizard()}}},[t("i",{staticClass:"fas fa-magic fa-fw"}),e._v("Wizard")])]),t("li",[t("div",{staticClass:"menuItem",attrs:{title:"Get server information"},on:{click:e.showServerInfo}},[t("i",{staticClass:"fas fa-info-circle fa-fw"}),e._v("Server")])]),t("li",[t("UserMenu")],1)])],1),t("Splitpanes",{staticClass:"default-theme",on:{resize:e.resized,"pane-maximize":e.resized}},[e.simpleMode?e._e():t("Pane",{attrs:{id:"discovery",size:e.splitpaneSizeH[0]}},[t("DiscoveryToolbar",{staticClass:"toolbar tour-ide-discovery",attrs:{onAddProcess:e.insertProcess,collectionPreview:!0,persist:!0}})],1),!e.simpleMode||e.hasProcess?t("Pane",{attrs:{id:"workspace",size:e.splitpaneSizeH[1]}},[t("Splitpanes",{staticClass:"default-theme",attrs:{horizontal:""},on:{resize:e.resized,"pane-maximize":e.resized}},[t("Pane",{attrs:{id:"editor",size:e.splitpaneSizeV[0]}},[t("Editor",{ref:"editor",staticClass:"mainEditor tour-ide-editor",attrs:{id:"main",value:e.process,title:e.contextTitle,showIntro:""},on:{input:e.updateEditor},scopedSlots:e._u([{key:"file-toolbar",fn:function(){return[t("BButton",{attrs:{title:"Import a process from an external source"},on:{click:e.importProcess}},[t("i",{staticClass:"fas fa-cloud-download-alt"})]),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.saveSupported,expression:"saveSupported"}],attrs:{disabled:!e.hasProcess,fn:e.saveProcess,title:"Save this process to "+e.contextTitle,fa:"",confirm:"",icon:"fas fa-save"}}),t("BButton",{attrs:{disabled:!e.hasProcess,title:"Download this process as a JSON file"},on:{click:e.exportJSON}},[t("i",{staticClass:"fas fa-file-download"})]),t("BButton",{attrs:{disabled:!e.hasProcess,title:"Export this process into another programming language"},on:{click:e.exportCode}},[t("i",{staticClass:"fas fa-file-export"})]),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.validateSupported,expression:"validateSupported"}],attrs:{disabled:!e.hasProcess,fn:e.validateProcess,title:"Validate this process directly on the server",fa:"",confirm:"",icon:"fas fa-tasks"}})]},proxy:!0}],null,!1,1996999620)})],1),e.simpleMode?e._e():t("Pane",{attrs:{id:"user",size:e.splitpaneSizeV[1]}},[e.isAuthenticated?t("UserWorkspace",{staticClass:"userContent tour-ide-workspace"}):t("div",{staticClass:"message info",attrs:{title:"Login is required to interact with the server."}},[t("i",{staticClass:"fas fa-sign-in-alt"}),t("span",{staticClass:"login-message"},[t("strong",[t("a",{on:{click:e.login}},[e._v("Log in")])]),e._v(" is required to interact with the server.")])])],1)],1)],1):e._e(),t("Pane",{class:{empty:!e.showViewer},attrs:{id:"viewer",size:e.splitpaneSizeH[2]}},[t("Viewer",{staticClass:"tour-ide-viewer",attrs:{editable:!e.simpleMode},on:{empty:e.onViewerEmpty}})],1)],1)],1)])},i=[],r=(s(98992),s(3949),s(61663)),o=s(2566),n=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"UserMenu"}},[t("div",{staticClass:"menuItem"},[e._m(0),t("div",{staticClass:"data"},[t("span",{staticClass:"name nowrap"},[t("i",{staticClass:"fas fa-user"}),e._v(" "+e._s(e.userName))]),e.budget?t("span",{staticClass:"credits nowrap"},[t("i",{staticClass:"fas fa-dollar-sign fa-fw"}),e._v(" "+e._s(e.budget))]):e._e(),e.hasStorage?t("span",{staticClass:"storage nowrap"},[t("i",{staticClass:"fas fa-database fa-fw"}),e._v(" "+e._s(e.storageUsedPercent)+"% used")]):e._e()])]),t("div",{staticClass:"dropdown"},[e.profileLink?t("a",{staticClass:"item",attrs:{href:e.profileLink.href,target:"_blank"}},[e._v("Welcome, "+e._s(e.userName)+"!")]):t("div",{staticClass:"item"},[e._v("Welcome, "+e._s(e.userName)+"!")]),e.isAuthenticated?[e.hasProfile?t("a",{staticClass:"item",on:{click:function(t){return t.preventDefault(),e.userDetails.apply(null,arguments)}}},[t("i",{staticClass:"fas fa-user"}),e._v(" Profile")]):e._e(),e.settingsLink?t("a",{staticClass:"item",attrs:{href:e.settingsLink.href,target:"_blank"}},[t("i",{staticClass:"fas fa-user-edit"}),e._v(" "+e._s(e.settingsLink.title||"Edit Profile"))]):e._e(),t("a",{staticClass:"item",on:{click:function(t){return t.preventDefault(),e.logout.apply(null,arguments)}}},[t("i",{staticClass:"fas fa-sign-out-alt"}),e._v(" Logout")])]:[t("a",{staticClass:"item",on:{click:function(t){return t.preventDefault(),e.login.apply(null,arguments)}}},[t("i",{staticClass:"fas fa-sign-in-alt"}),e._v(" Login")]),e.registerLink?t("a",{staticClass:"item",attrs:{href:e.registerLink.href,target:"_blank"}},[t("i",{staticClass:"fas fa-user-plus"}),e._v(" Register")]):e._e(),e.passwordLink?t("a",{staticClass:"item",attrs:{href:e.passwordLink.href,target:"_blank"}},[t("i",{staticClass:"fas fa-key"}),e._v(" Forgotten Password?")]):e._e()],e.$config.serverUrl?e._e():t("a",{staticClass:"item",on:{click:function(t){return t.preventDefault(),e.disconnect.apply(null,arguments)}}},[t("i",{staticClass:"fas fa-sign-out-alt"}),e._v(" Disconnect")]),e.userLinks.length>0?[t("hr"),e._l(e.userLinks,(function(s,a){return t("a",{key:a,staticClass:"item",attrs:{href:s.href,target:"_blank",rel:s.rel}},[e._v(e._s(s.title))])}))]:e._e(),e.budget||e.userInfo.default_plan||e.paymentLink?[t("hr"),t("div",{staticClass:"item"},[t("h4",[e._v("Billing")]),e.userInfo.default_plan?t("div",{staticClass:"secondary-text"},[e._v("Plan: "+e._s(e.userInfo.default_plan))]):e._e(),e.budget?t("div",{staticClass:"secondary-text"},[e._v("Budget: "+e._s(e.budget))]):e._e()]),e.paymentLink?t("a",{staticClass:"item",attrs:{href:e.paymentLink.href,target:"_blank"}},[t("i",{staticClass:"fas fa-credit-card"}),e._v(" "+e._s(e.paymentLink.title||"Recharge"))]):e._e()]:e._e(),e.hasStorage?[t("hr"),t("div",{staticClass:"item"},[t("h4",[e._v("Storage")]),t("div",{staticClass:"secondary-text nowrap"},[e._v("Used "+e._s(e.formatMegabyte(e.storageUsed))+" of "+e._s(e.formatMegabyte(e.userInfo.storage.quota))+".")]),t("div",{staticClass:"storagePercent"},[t("div",{staticClass:"used",style:"width: "+e.storageUsedPercent+"%"})])])]:e._e()],2)])},l=[function(){var e=this,t=e._self._c;return t("div",{staticClass:"down"},[t("i",{staticClass:"fas fa-chevron-down"})])}];s(72577);const c={name:"UserMenu",mixins:[r.A],computed:{...o.A.mapState(["userInfo","isAuthenticated"]),...o.A.mapGetters(["currency","capabilities"]),userLinks(){return o.A.friendlyLinks(this.userInfo.links,!0,["self","edit-form","payment","alternate"])},serverLinks(){return this.capabilities?this.capabilities.links():[]},registerLink(){return this.serverLinks.find((e=>"create-form"===e.rel))},passwordLink(){return this.serverLinks.find((e=>"recovery-form"===e.rel))},settingsLink(){return Array.isArray(this.userInfo.links)?this.userInfo.links.find((e=>"edit-form"===e.rel)):void 0},paymentLink(){return Array.isArray(this.userInfo.links)?this.userInfo.links.find((e=>"payment"===e.rel)):void 0},profileLink(){return Array.isArray(this.userInfo.links)?this.userInfo.links.find((e=>"alternate"===e.rel)):void 0},hasStorage(){return o.A.isObject(this.userInfo.storage)&&"number"===typeof this.userInfo.storage.quota&&"number"===typeof this.userInfo.storage.free},budget(){return o.A.formatBudget(this.userInfo.budget,this.currency)},profile(){return o.A.omitFromObject(this.userInfo,["budget","links","storage","default_plan"])},hasProfile(){return o.A.size(this.profile)>0},userName(){return"string"===typeof this.userInfo.name?this.userInfo.name:"string"===typeof this.userInfo.user_id?this.userInfo.user_id:this.isAuthenticated?"User":"Guest"},storageUsed(){return this.hasStorage?this.userInfo.storage.quota-this.userInfo.storage.free:null},storageUsedPercent(){return this.hasStorage?Math.round(this.storageUsed/this.userInfo.storage.quota*100):null}},methods:{...o.A.mapActions({logoutUser:"logout"}),...o.A.mapMutations("editor",{resetEditor:"reset"}),async logout(){await this.logoutUser(!1),o.A.ok(this,"Logout successful.")},async disconnect(){await this.logoutUser(!0),this.resetEditor(),window.history.pushState({},"","?")},login(){this.broadcast("showLogin")},userDetails(){this.broadcast("showDataModal",this.profile,"User Profile")},formatMegabyte(e){var t=1073741824;return e>t?Math.round(e/t)+" GB":Math.round(e/1048576)+" MB"}}},d=c;var u=s(81656),h=(0,u.A)(d,n,l,!1,null,"23c6ba20",null);const p=h.exports;var m=function(){var e=this,t=e._self._c;return t("Tabs",{ref:"tabs",attrs:{id:"userContent"}},[e.showJobs?t("Tab",{attrs:{id:"jobs",name:"Data Processing",icon:"fa-tasks"},on:{show:e.onShow,hide:e.onHide}},[t("JobPanel")],1):e._e(),e.showServices?t("Tab",{attrs:{id:"services",name:"Web Services",icon:"fa-cloud"},on:{show:e.onShow,hide:e.onHide}},[t("ServicePanel")],1):e._e(),e.showCustomProcesses?t("Tab",{attrs:{id:"customProcesses",name:"User-Defined Processes",icon:"fa-sitemap"},on:{show:e.onShow,hide:e.onHide}},[t("CustomProcessPanel")],1):e._e(),e.showFiles?t("Tab",{attrs:{id:"files",name:"Files",icon:"fa-file"},on:{show:e.onShow,hide:e.onHide}},[t("FilePanel")],1):e._e()],1)},f=[],g=s(4615),y=s(58379),v=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"FilePanel"},on:{dragenter:function(t){return e.dropZoneInfo(!0)},dragleave:function(t){return e.dropZoneInfo(!1)},drop:e.uploadFiles,dragover:e.allowDrop}},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.showUploadDropHint,expression:"showUploadDropHint"}],staticClass:"dropZone"},[e._v("To upload files, drop them here.")]),t("DataTable",{ref:"table",attrs:{fa:"",data:e.data,columns:e.columns,next:e.next},scopedSlots:e._u([{key:"actions",fn:function(s){return[t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsRead,expression:"supportsRead"}],attrs:{title:"Download this file to your computer",fn:()=>e.downloadFile(s.row),fa:"",icon:"fas fa-download"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDelete,expression:"supportsDelete"}],attrs:{title:"Delete this file from the server",fn:()=>e.deleteFile(s.row),fa:"",icon:"fas fa-trash"}})]}}])},[t("template",{slot:"toolbar"},[t("div",{directives:[{name:"show",rawName:"v-show",value:e.supportsCreate,expression:"supportsCreate"}],staticClass:"upload"},[t("div",{staticClass:"percent",class:{active:this.uploadProgress>0}},[t("div",{staticClass:"used",class:{error:e.uploadErrored},style:"width: "+this.uploadProgress+"%; opacity: "+this.uploadFadeOut})]),t("div",{staticClass:"addFile"},[t("input",{ref:"uploadUserFile",staticClass:"uploadUserFile",attrs:{type:"file",name:"uploadUserFile",multiple:""},on:{change:e.uploadFiles}})])]),e.supportsList?t("SyncButton",{attrs:{name:e.plualizedName,sync:e.reloadData}}):e._e(),t("FullscreenButton",{attrs:{element:()=>this.$el}})],1)],2)],1)},w=[],b=(s(8872),function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component data-table"},[t("div",{staticClass:"menu"},[t("div",{staticClass:"toolbar"},[e._t("toolbar")],2),e.hasData?t("div",{staticClass:"filter"},[t("SearchBox",{attrs:{placeholder:e.searchPlaceholder,compact:!0},model:{value:e.filterValue,callback:function(t){e.filterValue=t},expression:"filterValue"}})],1):e._e()]),e.hasData?t("table",[t("thead",[t("tr",e._l(e.columns,(function(s,a){return t("th",{directives:[{name:"show",rawName:"v-show",value:!s.hide,expression:"!col.hide"}],key:s.name,class:e.thClasses(a),attrs:{width:s.width,title:e.thTitle(a)},on:{click:function(t){return e.enableSort(a)}}},[e._v(e._s(s.name))])})),0)]),t("tbody",[e._l(e.view,(function(s,a){return t("tr",{key:a},e._l(e.columns,(function(a,i){return t("td",{directives:[{name:"show",rawName:"v-show",value:!a.hide,expression:"!col.hide"}],key:`${a.name}_${i}`,class:[i,{edit:e.canEdit(a)}],attrs:{title:!!e.canEdit(a)&&"Double-click to change the value","data-value":!!a.stylable&&e.value(s,a,i)},on:{dblclick:function(t){return e.onDblClick(t,s,a,i)}}},[e._t(i,(function(){return[e.showEditField(s,a,i)?[t("form",{on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.saveEditField(t,s,a,i)}}},[t("input",{ref:"editField",refInFor:!0,attrs:{type:"text"},domProps:{value:e.value(s,a,i)},on:{blur:function(t){return e.saveEditField(t,s,a,i)},keyup:function(t){return e.resetEditFieldEsc(t,s,a,i)}}})])]:t("span",{domProps:{innerHTML:e._s(e.formattedValue(s,a,i))}})]}),{row:s,col:a,id:i})],2)})),0)})),e.hasData&&0==e.view.length?t("tr",{staticClass:"no-results"},[t("td",{attrs:{colspan:e.columnCount}},[e._v("No element matches your search criteria.")])]):e._e()],2)]):t("div",{staticClass:"no-data"},[e._v(e._s(e.noDataMessage))]),e.hasMore?t("AsyncButton",{staticClass:"has-more-button",attrs:{fa:e.fa,icon:"fas fa-sync",fn:e.next}},[e._v("Load more...")]):e._e()],1)}),A=[],S=s(86975),x=s(74870);const P={name:"DataTable",components:{AsyncButton:()=>Promise.resolve().then(s.bind(s,3549)),SearchBox:()=>Promise.resolve().then(s.bind(s,9409))},props:{columns:{type:Object,default:()=>({})},data:{type:Array,default:()=>[]},next:{type:Function,default:null},fa:{type:Boolean,default:!1}},data(){return{view:[],filterValue:null,primaryKey:null,noDataMessage:"No data available.",editField:null,sortState:{id:null,direction:null}}},watch:{data(){this.updateView()},filterValue(){this.updateView()},sortState(){this.updateView()},columns:{immediate:!0,handler(){if(!this.hasMore)for(let e in this.columns){let t=this.columns[e].sort;if(["asc","desc"].includes(t)){this.enableSort(e,t);break}}}}},computed:{hasMore(){return"function"===typeof this.next},columnCount(){return Object.keys(this.columns).length},hasData(){return this.data.length>0},hasFilter(){return"string"===typeof this.filterValue&&this.filterValue.length>0},searchPlaceholder(){return this.hasMore?"Search through subset of loaded data...":"Search..."}},beforeCreate(){S.A.enableHtmlProps(this)},created(){this.determinePrimaryKey()},methods:{canEdit(e){return"function"===typeof e.edit},showEditField(e,t,s){return this.canEdit(t)&&null!=this.editField&&this.editField[0]==e&&this.editField[1]==s},onDblClick(e,t,s,a){if(this.canEdit(s)){var i=this.value(t,s,a);if("boolean"===typeof i){var r=this.columns[a].edit;r(t)}else this.editField=[t,a],this.$nextTick((()=>this.$refs.editField[0].focus()));e.preventDefault(),e.stopPropagation()}},saveEditField(e,t,s,a){if(null!==this.editField&&this.canEdit(s)){var i=this.columns[a].edit;i(t,this.$refs.editField[0].value),this.editField=null,e.preventDefault(),e.stopPropagation()}},resetEditFieldEsc(e,t,s,a){"Escape"==e.key&&(this.editField=null)},determinePrimaryKey(){for(var e in this.columns)if(this.columns[e].primaryKey){this.primaryKey=e;break}},setNoData(e){"string"!=typeof e?S.A.isObject(e)&&("object"===typeof e.data&&"object"===typeof e.config&&"object"===typeof e.headers&&(e=e.data),S.A.isObject(e)&&"string"===typeof e.message)?this.noDataMessage=e.message:(console.warn(e),this.noDataMessage="Sorry, an unknown error has occured."):this.noDataMessage=e},value(e,t,s){var a;return a="object"===typeof e?e[s]:e,S.A.isObject(t)&&"function"===typeof t.computedValue&&(a=t.computedValue(e,a)),a},formattedValue(e,t,s){return this.format(this.value(e,t,s),t)},thClasses(e){let t=this.columns[e],s=[e];return this.hasMore||!1===t.sort||(s.push("sortable"),this.sortState.id===e&&s.push("sort-"+this.sortState.direction)),s},thTitle(e){let t=this.columns[e];return this.hasMore||!1===t.sort?null:this.sortState.id===e&&"asc"===this.sortState.direction?"Click to sort column in descending order":"Click to sort column in ascending order"},enableSort(e,t=null){this.hasMore||!1===this.columns[e].sort||(null===t&&(t=this.sortState.id===e&&"asc"===this.sortState.direction?"desc":"asc"),this.sortState={id:e,direction:t})},sort(e){let t=this.sortState.id;if(null===t||!this.columns[t])return e;let s=this.columns[t];return!1===s.sort?e:e.slice(0).sort(((e,a)=>{let i="function"===typeof s.sortFn?s.sortFn:S.A.compareStringCaseInsensitive,r=i(e[t],a[t]);return"desc"===this.sortState.direction?-1*r:r}))},filter(e){if(!this.hasFilter)return e;var t=this.filterValue.toLowerCase();return e.filter((e=>{let s=[];for(var a in e){var i=this.columns[a];if(!("undefined"===typeof i||i.hasOwnProperty("filterable")&&!1===i.filterable)){var r=this.value(e,i,a);"number"!==typeof r&&"string"!==typeof r&&"boolean"!==typeof r||(r=r.toString(),s.push(r))}}return S.A.search(t,s)}))},clearFilter(){this.filterValue="",this.updateView()},updateView(){Array.isArray(this.data)?this.view=this.sort(this.filter(this.data)):this.view=[]},format(e,t){return"string"!==typeof t.format?"function"===typeof t.format?t.format.call(this,e,t):x.DataTypes.format(e):"function"===typeof x.Formatters["format"+t.format]?x.Formatters["format"+t.format](e,t):void console.warn(t.format+" is an invalid formatter.")}}},_=P;var C=(0,u.A)(_,b,A,!1,null,null,null);const k=C.exports,D=(e,t,s,a=!0)=>({components:{DataTable:k},data(){return{name:t,plualizedName:s,syncTimer:null,lastSyncTime:null}},mounted(){a&&this.updateData()},beforeDestroy(){this.stopSyncTimer()},computed:{...o.A.mapState(e,{data:e}),...o.A.mapState(e,["pages","hasMore"]),...o.A.mapGetters(e,["supportsList","supportsCreate","supportsRead","supportsUpdate","supportsDelete"]),next(){return this.hasMore?this.nextPage:null}},methods:{...o.A.mapActions(e,["list","nextPage","create","read","update","delete"]),getTable(){return this.$refs&&this.$refs.table?this.$refs.table:null},onShow(){this.updateData().catch((e=>o.A.exception(this,e,`Updating ${s} failed`))),this.startSyncTimer()},onHide(){this.stopSyncTimer()},startSyncTimer(){this.supportsList&&null===this.syncTimer&&(this.syncTimer=setInterval(this.updateData,this.getSyncInterval()))},stopSyncTimer(){null!==this.syncTimer&&(clearInterval(this.syncTimer),this.syncTimer=null)},getSyncInterval(){return 60*this.$config.dataRefreshInterval*1e3},async refreshElement(e,s=null){var a=Object.assign({},e);try{let t=await this.read({data:e});"function"===typeof s&&s(t,a)}catch(i){o.A.exception(this,i,"Load "+t+" error")}},async reloadData(){return await this.updateData(!0)},async updateData(e=!1){var a=this.getTable(),i=Date.now()-this.getSyncInterval();if(!a||!e&&this.lastSyncTime>i)return!1;if(this.supportsList){var r=this.data.length>0;r||a.setNoData("Loading "+s+"..."),this.lastSyncTime=Date.now();try{let e=await this.list();return 0==e.length&&a.setNoData("Add your first "+t+" here..."),!0}catch(n){r?console.log(n):(o.A.exception(this,n),a.setNoData("Sorry, unable to load data from the server."))}}else a.setNoData("Sorry, listing stored "+s+" is not supported by the server.");return!1}}});var T=s(3549),F=s(92622),M=function(){var e=this,t=e._self._c;return t("AsyncButton",{attrs:{fa:"",confirm:"",consistent:"",icon:"fas fa-sync",title:e.title,fn:e.sync}})},E=[];const B={name:"SyncButton",components:{AsyncButton:T["default"]},props:{name:{type:String,required:!0},sync:{type:Function,required:!0}},computed:{title(){return"Reload list of "+this.name}}},z=B;var R=(0,u.A)(z,M,E,!1,null,null,null);const $=R.exports,I={name:"FilePanel",mixins:[D("files","file","files")],components:{AsyncButton:T["default"],FullscreenButton:F.A,SyncButton:$},data(){return{columns:{path:{name:"Path",primaryKey:!0,sortFn:o.A.sortByPath,sort:"asc",width:"60%"},size:{name:"Size",format:"FileSize",filterable:!1,width:"10%"},modified:{name:"Last modified",format:"Timestamp",width:"15%"},actions:{name:"Actions",filterable:!1,sort:!1,width:"15%"}},uploadProgress:0,uploadProgressPerFile:[],uploadErrored:!1,uploadFadeOut:1,showUploadDropHint:0}},watch:{uploadProgressPerFile:{deep:!0,handler(){this.uploadProgress=this.uploadProgressPerFile.reduce(((e,t)=>e+t),0)/this.uploadProgressPerFile.length,this.uploadProgress>99.9999&&this.finishAllUploads()}}},methods:{allowDrop(e){this.supportsCreate&&(e.preventDefault(),e.stopPropagation())},dropZoneInfo(e){this.showUploadDropHint+=e?1:-1},uploadFiles(e){this.showUploadDropHint=0;var t=[];if(e.dataTransfer&&e.dataTransfer.files&&e.dataTransfer.files.length?(t=e.dataTransfer.files,e.preventDefault(),e.stopPropagation()):e.target&&e.target.files&&e.target.files.length&&(t=e.target.files),this.supportsCreate)if(0!==t.length){this.uploadProgressPerFile=[],this.uploadProgress=0,this.uploadErrored=!1;for(let e=0;ethis.$set(this.uploadProgressPerFile,t,e)]),this.$set(this.uploadProgressPerFile,t,100),o.A.ok(this,"File upload completed.",e.name)}catch(s){console.error(s),o.A.exception(this,s,"Upload File Error: "+e.name)}},finishAllUploads(){this.$refs.uploadUserFile.value="";var e=setInterval((()=>{this.uploadFadeOut-=.05,this.uploadFadeOut<0&&(this.uploadProgress=0,this.uploadFadeOut=1,clearInterval(e))}),100)},async downloadFile(e){await e.downloadFile(e.path)},async deleteFile(e){if(confirm(`Do you really want to delete the file "${e.path}"?`))try{await this.delete({data:e}),this.hasMore&&this.reloadData()}catch(t){o.A.exception(this,t,"Delete File Error: "+e.path)}}}},N=I;var L=(0,u.A)(N,v,w,!1,null,null,null);const O=L.exports;var j=function(){var e=this,t=e._self._c;return t("DataTable",{ref:"table",staticClass:"JobPanel",attrs:{fa:"",data:e.data,columns:e.columns,next:e.next},scopedSlots:e._u([{key:"actions",fn:function(s){return[t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsRead,expression:"supportsRead"}],attrs:{title:"Show details about this job",fn:()=>e.showJobInfo(s.row),fa:"",icon:"fas fa-info"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsEstimate,expression:"supportsEstimate"}],attrs:{title:"Create a cost and time estimate for this job",fn:()=>e.estimateJob(s.row),fa:"",icon:"fas fa-file-invoice-dollar"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsUpdate,expression:"supportsUpdate"}],attrs:{title:"Edit the metadata of this job",fn:()=>e.editMetadata(s.row),disabled:!e.isJobInactive(s.row),fa:"",icon:"fas fa-edit"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsRead,expression:"supportsRead"}],attrs:{title:"Edit the process of this job in the process editor",confirm:"",fn:()=>e.showInEditor(s.row),fa:"",icon:"fas fa-project-diagram"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDelete,expression:"supportsDelete"}],attrs:{title:"Delete this job from the server, including all results",fn:()=>e.deleteJob(s.row),fa:"",icon:"fas fa-trash"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsStart&&e.isJobInactive(s.row),expression:"supportsStart && isJobInactive(p.row)"}],attrs:{title:"Start the processing on the server",fn:()=>e.queueJob(s.row),fa:"",icon:"fas fa-play-circle"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsStop&&e.isJobActive(s.row),expression:"supportsStop && isJobActive(p.row)"}],attrs:{title:"Cancel the processing",fn:()=>e.cancelJob(s.row),fa:"",icon:"fas fa-stop-circle"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDownloadResults&&e.mayHaveResults(s.row),expression:"supportsDownloadResults && mayHaveResults(p.row)"}],attrs:{title:"Download the results to your computer",fn:()=>e.downloadResults(s.row),fa:"",icon:"fas fa-download"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDownloadResults&&e.mayHaveResults(s.row),expression:"supportsDownloadResults && mayHaveResults(p.row)"}],attrs:{title:"View the results",fn:()=>e.viewResults(s.row,!0),fa:"",icon:"fas fa-eye"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.canShare&&e.supports("downloadResults")&&e.mayHaveResults(s.row),expression:"canShare && supports('downloadResults') && mayHaveResults(p.row)"}],attrs:{title:"Export and/or share this job",fn:()=>e.shareResults(s.row),fa:"",icon:"fas fa-share"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDebug,expression:"supportsDebug"}],attrs:{title:"View the logs of this job",fn:()=>e.showLogs(s.row),fa:"",icon:"fas fa-bug"}})]}}])},[t("template",{slot:"toolbar"},[t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsCreate,expression:"supportsCreate"}],attrs:{title:"Create a new job from the process in the process editor for batch processing",fn:e.createJobFromScript,disabled:!this.hasProcess,fa:"",confirm:"",icon:"fas fa-plus"}},[e._v("Create Batch Job")]),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supports("computeResult"),expression:"supports('computeResult')"}],attrs:{title:"Run the process in the process editor directly and view the results without storing them permanently",fn:e.executeProcess,disabled:!this.hasProcess,fa:"",confirm:"",icon:"fas fa-play"}},[e._v("Run now")]),e.supportsList?t("SyncButton",{attrs:{name:e.plualizedName,sync:e.reloadData}}):e._e(),t("FullscreenButton",{attrs:{element:()=>this.$el}})],1)],2)},U=[],V=s(73902),J=s(99017);const H={methods:{getTitleField(e=null){return{name:"title",label:"Title",schema:{type:"string"},default:null,value:e,optional:!0}},getDescriptionField(e=null){return{name:"description",label:"Description",schema:{type:"string",subtype:"commonmark"},default:null,value:e,description:"CommonMark (Markdown) is allowed.",optional:!0}},getLogLevelField(e=void 0){return{name:"log_level",label:"Log level",schema:{type:"string",enum:["debug","info","warning","error"]},default:"info",value:e,description:"The minimum severity level for log entries that the back-end stores for the processing request.\n\ndebug (all logs) > info > warning > error (only errors)",optional:!0}},getBillingPlanField(e=void 0){return{name:"plan",label:"Billing plan",schema:{type:"string",subtype:"billing-plan"},value:e,optional:!0}},getBudgetField(e=null){return{name:"budget",label:"Budget limit",schema:{type:"number",subtype:"budget"},default:null,value:e,optional:!0}}}};var q=s(71321),W=s.n(q);const G=D("jobs","batch job","batch jobs"),K={name:"JobPanel",mixins:[G,r.A,H],components:{AsyncButton:T["default"],FullscreenButton:F.A,SyncButton:$},data(){return{watchers:{},jobUpdater:null}},mounted(){this.listen("replaceProcess",this.replaceProcess),this.listen("executeProcess",this.executeProcess),this.listen("startAndQueueProcess",this.startAndQueueProcess)},computed:{...o.A.mapState(["connection"]),...o.A.mapGetters(["supports","supportsBilling","supportsBillingPlans"]),...o.A.mapGetters("editor",["hasProcess"]),...o.A.mapState("editor",["process"]),columns(){return{id:{name:"ID",primaryKey:!0,hide:!0},title:{name:"Batch Job",computedValue:e=>o.A.getResourceTitle(e),format:e=>o.A.formatIdOrTitle(e),edit:this.supportsUpdate?this.updateTitle:null,width:"30%"},status:{name:"Status",stylable:!0,width:"10%"},created:{name:"Submitted",format:"Timestamp",sort:"desc",width:"15%"},updated:{name:"Last update",format:"Timestamp",width:"15%"},actions:{name:"Actions",filterable:!1,sort:!1,width:"30%"}}},supportsStart(){return this.supports("startJob")},supportsStop(){return this.supports("stopJob")},supportsEstimate(){return this.supports("estimateJob")},supportsDownloadResults(){return this.supports("downloadResults")},supportsDebug(){return this.supports("debugJob")},canShare(){return Array.isArray(this.$config.supportedBatchJobSharingServices)&&this.$config.supportedBatchJobSharingServices.length>0}},watch:{data:{handler:function(e){this.watchers={};for(let t of e)o.A.isActiveJobStatusCode(t.status)&&(this.watchers[t.id]=t)},deep:!0}},methods:{...o.A.mapActions("jobs",["queue","cancel"]),startSyncTimer(){G.methods.startSyncTimer.call(this);let e=()=>{this.executeWatchers();let t=5+5*Math.log2(o.A.size(this.watchers));this.jobUpdater=setTimeout(e,1e3*t)};e()},stopSyncTimer(){G.methods.stopSyncTimer.call(this),null!==this.jobUpdater&&clearTimeout(this.jobUpdater)},async showInEditor(e){await this.refreshElement(e,(e=>this.broadcast("editProcess",e)))},async startAndQueueProcess(e){let t=await this.createJob(this.process,e);await this.queueJob(t)},async executeProcess(){const e=async e=>{const t=await this.connection.computeResult(this.process,null,null,e);this.broadcast("viewSyncResult",t)};try{await(0,J.Kt)(this,e,"Run")}catch(t){t instanceof J.QJ?(0,J.Vz)(this,t):o.A.exception(this,t)}},jobCreated(e){var t=[];this.supports("estimateJob")&&t.push({text:"Estimate",action:()=>this.estimateJob(e)}),this.supports("startJob")&&t.push({text:"Start processing",action:()=>this.queueJob(e)}),this.supports("deleteJob")&&t.push({text:"Delete",action:()=>this.deleteJob(e)}),o.A.confirm(this,'Job "'+o.A.getResourceTitle(e)+'" created!',t)},normalizeToDefaultData(e){return"undefined"===typeof e.title||"string"===typeof e.title&&0!==e.title.length||(e.title=null),"undefined"===typeof e.description||"string"===typeof e.description&&0!==e.description.length||(e.description=null),"undefined"===typeof e.plan||"string"===typeof e.plan&&0!==e.plan.length||(e.plan=null),"undefined"!==typeof e.budget&&("number"!==typeof e.budget||e.budget<0)&&(e.budget=null),e},async createJob(e,t){try{t=this.normalizeToDefaultData(t);let s=await this.create([e,t.title,t.description,t.plan,t.budget,{log_level:t.log_level}]);return this.jobCreated(s),s}catch(s){return o.A.exception(this,s,"Create Job Error: "+(t.title||"")),null}},async createJobFromScript(){var e=[this.getTitleField(),this.getDescriptionField(),this.getLogLevelField(),this.supportsBillingPlans?this.getBillingPlanField():null,this.supportsBilling?this.getBudgetField():null];return new Promise(((t,s)=>{this.broadcast("showDataForm","Create new batch job",e,(e=>{this.createJob(this.process,e).then((e=>e?t(e):s())).catch(s)}))}))},async deleteJob(e){if(confirm(`Do you really want to delete the batch job "${o.A.getResourceTitle(e)}"?`))try{await this.delete({data:e}),this.broadcast("removeBatchJob",e.id),this.hasMore&&this.reloadData()}catch(t){o.A.exception(this,t,"Delete Job Error: "+o.A.getResourceTitle(e))}},executeWatchers(){for(var e in this.watchers)this.refreshElement(this.watchers[e],((e,t)=>{if("finished"!==t.status&&"finished"===e.status){var s=[];this.supports("downloadResults")&&(s.push({text:"Download",action:()=>this.downloadResults(e)}),s.push({text:"View",action:()=>this.viewResults(e)})),o.A.confirm(this,'Job "'+o.A.getResourceTitle(e)+'" has finished!',s)}else"error"!==t.status&&"error"===e.status&&o.A.error(this,'Job "'+o.A.getResourceTitle(e)+'" has stopped due to an error or timeout.');t.status!==e.status&&this.broadcast("jobStatusUpdated",e,t)}))},async showJobInfo(e){await this.refreshElement(e,(async e=>{let t=null;if("finished"===e.status)try{t=await e.getResultsAsStac(),t=W().stac(t,!1)}catch(s){o.A.exception(this,s,"Load Results Error: "+o.A.getResourceTitle(e))}this.broadcast("showModal","JobInfoModal",{job:e.getAll(),result:t})}))},async estimateJob(e){try{let t=await e.estimateJob();this.broadcast("showModal","JobEstimateModal",{job:e.getAll(),estimate:t})}catch(t){o.A.exception(this,t,"Job Estimate Error: "+o.A.getResourceTitle(e))}},showLogs(e){this.broadcast("viewLogs",e)},async replaceProcess(e,t,s,a){if(e instanceof V.Job)if(this.isJobActive(e))o.A.error(this,"Can't update process while batch job is running."),a();else try{return await this.updateJob(e,{process:t}),void s()}catch(i){a(i)}},async editMetadata(e){await this.refreshElement(e,(e=>{var t=[this.getTitleField(e.title),this.getDescriptionField(e.description),this.getLogLevelField(e.log_level),this.supportsBillingPlans?this.getBillingPlanField(e.plan):null,this.supportsBilling?this.getBudgetField(e.budget):null];this.broadcast("showDataForm","Edit batch job",t,(t=>this.updateJob(e,t)))}))},updateTitle(e,t){this.updateJob(e,{title:t})},async updateJob(e,t){try{let s=await this.update({data:e,parameters:this.normalizeToDefaultData(t)});o.A.ok(this,'Job "'+o.A.getResourceTitle(s)+'" successfully updated.')}catch(s){o.A.exception(this,s,"Update Job Error: "+o.A.getResourceTitle(e))}},async queueJob(e){await this.refreshElement(e,(async t=>{if("finished"!==t.status||confirm(`The batch job "${o.A.getResourceTitle(t)}" has already finished with results. Queueing the job again may discard all previous results! Do you really want to queue it again?`))try{let t=await this.queue({data:e});o.A.ok(this,'Job "'+o.A.getResourceTitle(t)+'" successfully queued.')}catch(s){o.A.exception(this,s,"Queue Job Error: "+o.A.getResourceTitle(e))}}))},async cancelJob(e){if(confirm(`Do you really want to cancel the execution of batch job "${o.A.getResourceTitle(e)}"?`))try{let t=await this.cancel({data:e});o.A.ok(this,'Job "'+o.A.getResourceTitle(t)+'" successfully canceled.')}catch(t){o.A.exception(this,t,"Cancel Job Error: "+o.A.getResourceTitle(e))}},async viewResults(e){try{let t=await e.getResultsAsStac();t=W().stac(t,!1),this.broadcast("viewJobResults",t,e)}catch(t){o.A.exception(this,t,"View Result Error: "+o.A.getResourceTitle(e))}},async downloadResults(e){try{let t=await e.getResultsAsStac();if(t=W().stac(t,!1),0==o.A.size(t.assets))return void o.A.error(this,'No results available for job "'+o.A.getResourceTitle(e)+'".');this.broadcast("showModal","DownloadAssetsModal",{job:e,result:t})}catch(t){o.A.exception(this,t,"Download Result Error: "+o.A.getResourceTitle(e))}},async shareResults(e){if(this.canShare){let t,s,a=await e.getResultsAsStac();if(a=W().stac(a,!1),Array.isArray(a.links)&&(s=a.links.find((e=>"canonical"===e.rel)),s&&"string"===typeof s.href&&(t=s.href)),t){let i=a.properties?.title||e.title||s?.title;this.broadcast("showModal","ShareModal",{url:t,title:i,extra:a,context:e})}else o.A.error(this,"Sorry, this job has no public URL")}},mayHaveResults(e){return"string"!==typeof e.status||"finished"==e.status.toLowerCase()},isJobInactive(e){return!0!==o.A.isActiveJobStatusCode(e.status)},isJobActive(e){return!1!==o.A.isActiveJobStatusCode(e.status)}}},Q=K;var Y=(0,u.A)(Q,j,U,!1,null,null,null);const Z=Y.exports;var X=function(){var e=this,t=e._self._c;return t("DataTable",{ref:"table",staticClass:"CustomProcessPanel",attrs:{fa:"",data:e.data,columns:e.columns,next:e.next},scopedSlots:e._u([{key:"actions",fn:function(s){return[t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsRead,expression:"supportsRead"}],attrs:{title:"Show details about this process",fn:()=>e.processInfo(s.row),fa:"",icon:"fas fa-info"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsRead,expression:"supportsRead"}],attrs:{title:"Edit this process in the process editor",confirm:"",fn:()=>e.showInEditor(s.row),fa:"",icon:"fas fa-project-diagram"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDelete,expression:"supportsDelete"}],attrs:{title:"Delete this custom process from the server",fn:()=>e.deleteProcess(s.row),fa:"",icon:"fas fa-trash"}})]}}])},[t("template",{slot:"toolbar"},[t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsCreate,expression:"supportsCreate"}],attrs:{title:"Store the process in the process editor on the server",fn:e.addProcessFromScript,disabled:!this.hasProcess,fa:"",confirm:"",icon:"fas fa-plus"}},[e._v("Add")]),e.supportsList?t("SyncButton",{attrs:{name:e.plualizedName,sync:e.reloadData}}):e._e(),t("FullscreenButton",{attrs:{element:()=>this.$el}})],1)],2)},ee=[];const te={name:"CustomProcessPanel",mixins:[D("userProcesses","custom process","custom processes",!1),r.A],components:{AsyncButton:T["default"],FullscreenButton:F.A,SyncButton:$},data(){return{columns:{id:{name:"ID",primaryKey:!0,sort:"asc",width:"30%"},summary:{name:"Summary",width:"50%"},actions:{name:"Actions",filterable:!1,sort:!1,width:"20%"}}}},computed:{...o.A.mapState("editor",["process"]),...o.A.mapGetters(["processes"]),...o.A.mapGetters("editor",["hasProcess"])},mounted(){this.listen("replaceProcess",this.replaceProcess)},methods:{async showInEditor(e){await this.refreshElement(e,(e=>this.broadcast("editProcess",e)))},getIdField(e=void 0){return{value:e,name:"id",description:"A unique identifier. Must contain only letters (`a`-`z`), digits (`0`-`9`) and underscores (`_`). `snake_case` is recommended.",label:"Process ID",schema:{type:"string",pattern:"^\\w+$"},default:null}},async addProcessFromScript(){let e=[];return this.process.id?this.process.id.match("^\\w+$")?this.processes.has(this.process.id,"user")&&(e.push({label:"Warning!",description:"A process with the given name exists! If you click 'Save' below, you confirm that you want to override the existing process. If you don't want to override the existing process, please choose a different name below.",info:!0}),e.push(this.getIdField(this.process.id))):(e.push({label:"Please note...",description:"The given process name is invalid, please choose another one below.",info:!0}),e.push(this.getIdField(this.process.id))):e.push(this.getIdField()),new Promise(((t,s)=>{let a=e=>this.addProcess(this.normalize(this.process,e)).then((e=>e?t():s())).catch(s);e.length>0?this.broadcast("showDataForm","Store a new custom process",e,a):a()}))},normalize(e,t={}){return Object.assign({},"function"===typeof e.toJSON?e.toJSON():e,t)},async addProcess(e){try{return await this.create([e.id,e]),!0}catch(t){return o.A.exception(this,t,"Store Process Error"+(e.id?`: ${e.id}`:"")),!1}},processInfo(e){this.broadcast("showProcess",e)},async replaceProcess(e,t,s,a){if(e instanceof V.UserProcess)try{await this.updateMetadata(e,t),s()}catch(i){a(i)}},async updateMetadata(e,t){try{let s=await this.update({data:e,parameters:this.normalize(e,t)});o.A.ok(this,'Process "'+o.A.getResourceTitle(s)+'" successfully updated.')}catch(s){o.A.exception(this,s,"Update Process Error"+(e.id?`: ${e.id}`:""))}},async deleteProcess(e){if(confirm(`Do you really want to delete the process "${o.A.getResourceTitle(e)}"?`))try{await this.delete({data:e})}catch(t){o.A.exception(this,t,"Delete Process Error"+(e.id?`: ${e.id}`:""))}}}},se=te;var ae=(0,u.A)(se,X,ee,!1,null,null,null);const ie=ae.exports;var re=function(){var e=this,t=e._self._c;return t("DataTable",{ref:"table",staticClass:"ServicePanel",attrs:{fa:"",data:e.data,columns:e.columns,next:e.next},scopedSlots:e._u([{key:"actions",fn:function(s){return[t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsRead,expression:"supportsRead"}],attrs:{title:"Show details about this service",fn:()=>e.serviceInfo(s.row),fa:"",icon:"fas fa-info"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsUpdate,expression:"supportsUpdate"}],attrs:{title:"Edit the metadata of this service",fn:()=>e.editMetadata(s.row),fa:"",icon:"fas fa-edit"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsRead,expression:"supportsRead"}],attrs:{title:"Edit the process of this service in the process editor",confirm:"",fn:()=>e.showInEditor(s.row),fa:"",icon:"fas fa-project-diagram"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDelete,expression:"supportsDelete"}],attrs:{title:"Delete this service from the server",fn:()=>e.deleteService(s.row),fa:"",icon:"fas fa-trash"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:s.row.enabled&&e.isMapServiceSupported(s.row.type),expression:"p.row.enabled && isMapServiceSupported(p.row.type)"}],attrs:{title:"View this service",fn:()=>e.viewService(s.row),fa:"",icon:"fas fa-map"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:s.row.enabled&&e.canShare,expression:"p.row.enabled && canShare"}],attrs:{title:"Export and/or share this service",fn:()=>e.shareResults(s.row),fa:"",icon:"fas fa-share"}}),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsDebug,expression:"supportsDebug"}],attrs:{title:"View the logs of this service",fn:()=>e.showLogs(s.row),fa:"",icon:"fas fa-bug"}})]}}])},[t("template",{slot:"toolbar"},[t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsCreate,expression:"supportsCreate"}],attrs:{title:"Create a new permanent service from the process in the process editor",fn:e.createServiceFromScript,disabled:!this.hasProcess,fa:"",confirm:"",icon:"fas fa-plus"}},[e._v("Create")]),t("AsyncButton",{directives:[{name:"show",rawName:"v-show",value:e.supportsQuickView,expression:"supportsQuickView"}],attrs:{title:"Quickly show the process on map without storing it permanently",fn:e.quickViewServiceFromScript,disabled:!this.hasProcess,fa:"",confirm:"",icon:"fas fa-map"}},[e._v("Show on Map")]),e.supportsList?t("SyncButton",{attrs:{name:e.plualizedName,sync:e.reloadData}}):e._e(),t("FullscreenButton",{attrs:{element:()=>this.$el}})],1)],2)},oe=[],ne=(s(37550),s(95353));const le={name:"ServicePanel",mixins:[D("services","web service","web services"),r.A,H],components:{AsyncButton:T["default"],FullscreenButton:F.A,SyncButton:$},data(){return{createdQuickViews:{}}},computed:{...o.A.mapState("editor",["process"]),...o.A.mapGetters("editor",["hasProcess"]),...o.A.mapState(["serviceTypes"]),...o.A.mapGetters(["supports","supportsBilling","supportsBillingPlans"]),columns(){return{id:{name:"ID",primaryKey:!0,hide:!0},title:{name:"Web Service",computedValue:e=>o.A.getResourceTitle(e),format:e=>o.A.formatIdOrTitle(e),edit:this.supportsUpdate?this.updateTitle:null,width:"30%"},type:{name:"Type",format:e=>"string"===typeof e?e.toUpperCase():e,width:"15%"},enabled:{name:"Enabled",edit:this.supportsUpdate?this.toggleEnabled:null,width:"5%"},created:{name:"Submitted",format:"Timestamp",sort:"desc",width:"15%"},actions:{name:"Actions",filterable:!1,sort:!1,width:"35%"}}},canShare(){return Array.isArray(this.$config.supportedBatchJobSharingServices)&&this.$config.supportedBatchJobSharingServices.length>0},supportsDebug(){return this.supports("debugService")},supportsQuickView(){return this.supportsCreate&&this.supportsDelete&&null!==this.mapService},mapService(){for(let e in this.serviceTypes){if(!o.A.isMapServiceSupported(e))continue;let t=this.serviceTypes[e],s=Object.values(t.configuration).some((e=>!0===e.required));if(!s)return e}return null}},mounted(){this.listen("replaceProcess",this.replaceProcess),this.beforeLogoutListener({key:this.$options.name,listener:this.onExit})},beforeDestroy(){this.beforeLogoutListener({key:this.$options.name})},methods:{...(0,ne.PY)(["beforeLogoutListener"]),async onExit(){let e=[];for(let t in this.createdQuickViews){let s=this.createdQuickViews[t];e.push(this.deleteService(s,!0))}await Promise.all(e),this.createdQuickViews={}},isMapServiceSupported(e){return o.A.isMapServiceSupported(e)},async showInEditor(e){await this.refreshElement(e,(e=>this.broadcast("editProcess",e)))},showLogs(e){this.broadcast("viewLogs",e)},serviceCreated(e){var t=[];this.isMapServiceSupported(e.type)&&t.push({text:"View on map",action:()=>this.viewService(e)}),this.supportsRead&&t.push({text:"Details",action:()=>this.serviceInfo(e)}),this.supportsDelete&&t.push({text:"Delete",action:()=>this.deleteService(e)}),o.A.confirm(this,"Web Service created!",t)},getServiceTypeField(e=void 0){return{name:"type",label:"Type",schema:{type:"string",subtype:"service-type"},value:e}},getEnabledField(e=!0){return{name:"enabled",label:"Enabled",schema:{type:"boolean"},default:!0,value:e,optional:!0}},getConfigField(e=void 0){return{name:"configuration",label:"Service Configuration",schema:{type:"object",subtype:"service-config"},value:e,optional:!0}},normalizeToDefaultData(e){return"undefined"===typeof e.title||"string"===typeof e.title&&0!==e.title.length||(e.title=null),"undefined"===typeof e.description||"string"===typeof e.description&&0!==e.description.length||(e.description=null),"undefined"!==typeof e.enabled&&"boolean"!==typeof e.enabled&&(e.enabled=!0),"undefined"===typeof e.configuration||o.A.isObject(e.configuration)||(e.configuration={}),"undefined"===typeof e.plan||"string"===typeof e.plan&&0!==e.plan.length||(e.plan=null),"undefined"!==typeof e.budget&&("number"!==typeof e.budget||e.budget<0)&&(e.budget=null),e},async createService(e,t,s=!1){t=this.normalizeToDefaultData(t);try{let a=await this.create([e,t.type,t.title,t.description,t.enabled,t.configuration,t.plan,t.budget,{log_level:t.log_level}]);return s||this.serviceCreated(a),a}catch(a){return o.A.exception(this,a,"Create Service Error: "+(t.title||"")),null}},async createServiceFromScript(){var e=[this.getTitleField(),this.getDescriptionField(),this.getServiceTypeField(),this.getEnabledField(),this.getLogLevelField(),this.supportsBillingPlans?this.getBillingPlanField():null,this.supportsBilling?this.getBudgetField():null,this.getConfigField()];return new Promise(((t,s)=>{this.broadcast("showDataForm","Create new web service",e,(e=>{this.createService(this.process,e).then((e=>e?t(e):s())).catch(s)}))}))},async quickViewServiceFromScript(){try{let e={title:"Quick view",type:this.mapService,enabled:!0},t=await this.createService(this.process,e,!0);t&&(this.createdQuickViews[t.id]=t,this.viewService(t,(()=>this.deleteService(t,!0))))}catch(e){o.A.exception(this,e,"Show on Map Error")}},async editMetadata(e){await this.refreshElement(e,(e=>{var t=[this.getTitleField(e.title),this.getDescriptionField(e.description),this.getEnabledField(e.enabled),this.getLogLevelField(e.log_level),this.supportsBillingPlans?this.getBillingPlanField(e.plan):null,this.supportsBilling?this.getBudgetField(e.budget):null,this.getConfigField(e.configuration)];this.broadcast("showDataForm","Edit web service",t,(t=>this.updateService(e,t)))}))},async serviceInfo(e){await this.refreshElement(e,(e=>{this.broadcast("showModal","ServiceInfoModal",{service:e.getAll()})}))},async replaceProcess(e,t,s,a){if(e instanceof V.Service)try{await this.updateService(e,{process:t}),s()}catch(i){a(i)}},updateTitle(e,t){this.updateService(e,{title:t})},toggleEnabled(e){this.updateService(e,{enabled:!e.enabled})},async updateService(e,t){try{let s=await this.update({data:e,parameters:this.normalizeToDefaultData(t)});o.A.ok(this,'Service "'+o.A.getResourceTitle(s)+'" successfully updated.')}catch(s){o.A.exception(this,s,"Update Service Error: "+o.A.getResourceTitle(e))}},async deleteService(e,t=!1){if(t||confirm(`Do you really want to delete the service "${o.A.getResourceTitle(e)}"?`))try{await this.delete({data:e}),this.broadcast("removeWebService",e.id),delete this.createdQuickViews[e.id],this.hasMore&&this.reloadData()}catch(s){t?console.error(s):o.A.exception(this,s,"Delete Service Error: "+o.A.getResourceTitle(e))}},async viewService(e,t=null){await this.refreshElement(e,(e=>this.broadcast("viewWebService",e,t)))},async shareResults(e){this.canShare||await this.refreshElement(e,(t=>{e.enabled?t.url?this.broadcast("showModal","ShareModal",{url:t.url,title:t.title,context:t}):o.A.error(this,"Sorry, this service has no public URL."):o.A.error(this,"Sorry, only enabled services can be shared.")}))}}},ce=le;var de=(0,u.A)(ce,re,oe,!1,null,null,null);const ue=de.exports,he={name:"UserWorkspace",components:{FilePanel:O,JobPanel:Z,CustomProcessPanel:ie,ServicePanel:ue,Tabs:g["default"],Tab:y["default"]},computed:{...o.A.mapGetters(["supports"]),showJobs(){return this.supports("listJobs")||this.supports("createJob")||this.supports("computeResult")},showServices(){return this.supports("listServices")||this.supports("createService")},showCustomProcesses(){return this.supports("listUserProcesses")||this.supports("setUserProcess")},showFiles(){return this.supports("listFiles")||this.supports("uploadFile")}},methods:{onShow(e){e.$children.length&&"function"===typeof e.$children[0].onShow&&e.$children[0].onShow()},onHide(e){e.$children.length&&"function"===typeof e.$children[0].onHide&&e.$children[0].onHide()}}},pe=he;var me=(0,u.A)(pe,m,f,!1,null,null,null);const fe=me.exports;var ge=function(){var e=this,t=e._self._c;return t("div",{staticClass:"viewerContainer",on:{drop:e.onDrop,dragover:e.allowDrop}},[t("Tabs",{ref:"tabs",attrs:{id:"viewerTabs",allowTabRename:e.editable},on:{empty:e.onTabsEmpty},scopedSlots:e._u([{key:"empty",fn:function(){return[e._v("Nothing to show right now...")]},proxy:!0},{key:"dynamic",fn:function({tab:s}){return[e.logViewerIcons.includes(s.icon)?t("LogViewer",{attrs:{data:s.data},on:{mounted:e.onMounted,options:e.onOptionsChanged}}):s.data.component?t(s.data.component,e._g(e._b({tag:"component",on:{mounted:e.onMounted,options:e.onOptionsChanged}},"component",s.data.props,!1),s.data.events)):e._e(),e._v(" "),"fa-info"===s.icon?t("MetadataViewer",{attrs:{data:s.data},on:{mounted:e.onMounted,options:e.onOptionsChanged}}):"fa-map"===s.icon?t("MapViewer",{attrs:{data:s.data,removableLayers:e.isCollectionPreview(s.data)},on:{mounted:e.onMounted,options:e.onOptionsChanged}}):t("div",{staticClass:"unsupported"},[e._v(" Sorry, the viewer doesn't support showing this type of data. "),e.isFormat(s.data)?[e._v(" Instead, you can download the data by clicking the link below."),t("br"),t("a",{attrs:{href:s.data.getUrl(),download:""}},[e._v("Download")])]:e._e()],2)]}}])})],1)},ye=[],ve=(s(54520),s(81454),s(6765));const we={name:"Viewer",mixins:[r.A],components:{Tabs:g["default"],DataViewer:()=>s.e(8396).then(s.bind(s,58396)),TableViewer:()=>Promise.all([s.e(7237),s.e(5601),s.e(8363),s.e(3592)]).then(s.bind(s,51001)),ImageViewer:()=>s.e(4285).then(s.bind(s,94285)),LogViewer:()=>s.e(887).then(s.bind(s,20887)),MapViewer:()=>Promise.all([s.e(1160),s.e(5983),s.e(1323),s.e(5624),s.e(1189),s.e(6617),s.e(5640),s.e(2559),s.e(2365),s.e(3800),s.e(3291),s.e(3876),s.e(9882),s.e(7237),s.e(5601),s.e(8363),s.e(1485)]).then(s.bind(s,91235)),MetadataViewer:()=>s.e(768).then(s.bind(s,40768))},mounted(){this.listen("viewSyncResult",this.showSyncResults),this.listen("viewJobResults",this.showJobResults),this.listen("viewWebService",this.showWebService),this.listen("showCollectionPreview",(e=>this.showCollectionPreview(e).catch((e=>o.A.exception(this,e,"Failed loading collection."))))),this.listen("viewLogs",this.showLogs),this.listen("removeWebService",this.closeTabWithLogs),this.listen("removeBatchJob",this.closeTabWithLogs),this.listen("addToMapChooser",this.addToMapChooser),this.appMode&&this.showAppMode()},data(){return{tabTitleCounter:{},tabIdCounter:0,logViewerIcons:["fa-bug","fa-bomb","fa-tasks"],options:null}},props:{editable:{type:Boolean,default:!0}},computed:{...o.A.mapState(["connection"]),...o.A.mapState("editor",["appMode","formatRegistry"]),...o.A.mapGetters("editor",["getModelNodeFromDnD"]),nextTabId(){return`viewer~${this.tabIdCounter}`}},methods:{...o.A.mapActions(["describeCollection"]),...o.A.mapMutations("editor",["setViewerOptions","setModelDnD"]),showAppMode(){if("service"===this.appMode.resultType){const e=new V.Service(this.connection,"app");e.title=this.appMode.title,e.url=this.appMode.resultUrl,e.type=this.appMode.service,e.enabled=!0,this.showWebService(e)}else if(this.showJobResults(this.appMode.data,null,this.appMode.title,!0),"string"===typeof this.appMode.expires){const e=x.Formatters.formatTimestamp(this.appMode.expires);o.A.info(this,`The shared data is available until ${e}`)}},isCollectionPreview(e){return e instanceof V.Service&&o.A.isObject(e.attributes)&&!0===e.attributes.preview},isFormat(e){return e instanceof ve.yL},async showCollectionPreview(e){if("string"===typeof e)try{e=await this.describeCollection(e)}catch(i){return void o.A.error(this,"Sorry, can't load collection '"+e+"'.")}let t=o.A.getPreviewLinkFromSTAC(e);t||o.A.error(this,"No visualizations found for collection");let s=new V.Service(null,`collection-preview~${e.id}`);s.url=t.href,s.type=t.rel.toLowerCase(),s.attributes={preview:!0,bbox:o.A.extentToBBox(e.extent.spatial.bbox[0])},"wmts"===t.rel.toLowerCase()&&("string"===typeof t["wmts:layer"]?s.attributes.layers=[t["wmts:layer"]]:Array.isArray(t["wmts:layer"])&&(s.attributes.layers=t["wmts:layer"]),s.attributes.dimensions=t["wmts:dimensions"]);let a=o.A.getResourceTitle(e,!0);this.showMapViewer(s,s.id,a,!0)},showWebService(e,t=null){this.showMapViewer(e,e.id,null,!0,t)},showLogs(e,t="Logs",s=!0,a="fa-bug"){let i=Array.isArray(e)?t:o.A.getResourceTitle(e,"Logs"),r=Array.isArray(e)?null:`logs~${e.id}`;if(r){let e=this.$refs.tabs.getTab(r);if(e)return void this.$refs.tabs.selectTab(e)}this.$refs.tabs.addTab(i,a,e,r,s,this.editable,(e=>this.onShow(e)),(e=>this.onHide(e)))},closeTabWithLogs(e){this.closeTab(e),this.closeTab(`logs~${e}`)},closeTab(e){let t=this.$refs.tabs.getTab(e);t&&this.$refs.tabs.closeTab(t)},showSyncResults(e){let t=this.makeTitle("Result"),s=this.formatRegistry.createFilesFromBlob(e.data);s.forEach((e=>e.download())),this.showViewer(s,t).catch((e=>o.A.exception(this,e))).finally((()=>{Array.isArray(e.logs)&&e.logs.length>0&&this.showLogs(e.logs,t,!1)}))},showJobResults(e,t=null,s=null,a=!1){null===s&&(s=e.title?e.title:e.properties&&e.properties.title?e.properties.title:o.A.getResourceTitle(t,!0));let i=e.id;t&&t.id&&(i=t.id);let r=this.formatRegistry.createFilesFromSTAC(e,t);0!==r.length?r.length>5&&!o.A.confirmOpenAll(r)||(a&&this.showMetadataViewer(e,i,s),this.showViewer(r,s,(e=>`${i}-${e.getUrl()}`),!0).catch((e=>o.A.exception(this,e)))):o.A.error(this,'No results available for "'+s+'".')},showMapViewer(e,t=null,s=null,a=!1,i=null){if(s||(s=o.A.getResourceTitle(e,!0)),t){if(a){let e=this.$refs.tabs.getTab(t);if(e)return this.$refs.tabs.selectTab(e)}}else if(t=this.nextTabId,this.tabIdCounter++,a)throw new Error("Tabs without id can't be re-used");this.$refs.tabs.addTab(s,"fa-map",e,t,!0,this.editable,(e=>this.onShow(e)),(e=>this.onHide(e)),i)},showMetadataViewer(e,t=null,s=null){s||(s=o.A.getResourceTitle(e,!0)),t||(t=this.nextTabId,this.tabIdCounter++),this.$refs.tabs.addTab(s,"fa-info",e,t,!0,this.editable,(e=>this.onShow(e)),(e=>this.onHide(e)))},addToMapChooser({asset:e,context:t}){const s=this.$refs.tabs.tabs.filter((e=>"fa-map"===e.icon)),a=["New Map",...s.map((e=>e.name))];this.broadcast("showListModal","Select a map to add the data to",a,[{callback:async(a,i)=>{const r=this.formatRegistry.createFileFromAsset(e,t);if(await r.loadData(this.connection),0===i)this.showViewer([r],r.title).catch((e=>o.A.exception(this,e)));else{const e=s[i-1];this.$refs.tabs.selectTab(e),e.$children[0].addGeoTiff(r,r.title)}return!0}}])},async showViewer(e,t=null,s=null,a=!1){if(!Array.isArray(e))return;let i;for(let n of e)try{let e=n.getContext();if(i="function"===typeof s?s(n):!s&&e?e.id:s,a){if(!i)throw new Error("Tabs without id can't be re-used");let e=this.$refs.tabs.getTab(i);if(e)return void this.$refs.tabs.selectTab(e)}n.title?t=n.title:!t&&e?t=o.A.getResourceTitle(e,!0):t||(t=this.makeTitle("Untitled")),await n.loadData(this.connection),this.$refs.tabs.addTab(t,n.icon,n,i,!0,this.editable,(e=>this.onShow(e)),(e=>this.onHide(e)))}catch(r){o.A.exception(this,r,"Viewer Error"),n.download()}},callChildFunction(e,t,...s){if("function"===typeof e[t]){let a=e[t](...s);a instanceof Promise&&a.catch((e=>o.A.exception(this,e)))}},async onDrop(e){const t=await this.getModelNodeFromDnD();if(this.setModelDnD(),"load_collection"===t.process_id){e.preventDefault();let a=o.A.isObject(t.arguments)?t.arguments.id:null;try{await this.showCollectionPreview(a)}catch(s){o.A.exception(this,s,`Failed loading collection '${a}'.`)}}},allowDrop(e){e.preventDefault()},onShow(e){this.callChildFunction(e,"onShow")},onMounted(e){this.callChildFunction(e,"onShow"),this.setViewerOptions()},onHide(e){this.callChildFunction(e,"onHide")},onTabsEmpty(e){this.$emit("empty",e),this.setViewerOptions()},onOptionsChanged(e){this.setViewerOptions(e)},uniqueTitle(e){return this.tabTitleCounter[e]?(this.tabTitleCounter[e]++,e+" ("+this.tabTitleCounter[e]+")"):(this.tabTitleCounter[e]=1,e)},makeTitle(e,t,s=!0){return e?s?this.uniqueTitle(e):e:this.uniqueTitle(t)}}},be=we;var Ae=(0,u.A)(be,ge,ye,!1,null,null,null);const Se=Ae.exports;var xe=s(92385),Pe=s(66644),_e=s(36107),Ce=s(31572),ke=s(44304),De=s(91144);const Te={name:"IDE",mixins:[r.A],components:{AsyncButton:T["default"],BButton:De.A,DiscoveryToolbar:_e.A,Editor:xe["default"],Logo:Pe.A,Viewer:Se,UserMenu:p,UserWorkspace:fe,Splitpanes:ke.S,Pane:ke.Z},data(){return{showViewer:!1,resizeListener:null,userInfoUpdater:null}},computed:{...o.A.mapState(["connection","isAuthenticated"]),...o.A.mapState("editor",["appMode","context","process","collectionPreview","openWizard","openWizardProps"]),...o.A.mapGetters(["title","apiVersion","supports"]),...o.A.mapGetters("editor",["hasProcess"]),...o.A.mapGetters("jobs",{supportsJobUpdate:"supportsUpdate"}),...o.A.mapGetters("services",{supportsServiceUpdate:"supportsUpdate"}),...o.A.mapGetters("userProcesses",{supportsUserProcessUpdate:"supportsUpdate"}),contextTitle(){return null!==this.context?o.A.getResourceTitle(this.context,!0):""},saveSupported(){return null!==this.context&&(this.context instanceof V.Job&&this.supportsJobUpdate||this.context instanceof V.Service&&this.supportsServiceUpdate||this.context instanceof V.UserProcess&&this.supportsUserProcessUpdate)},hasProcess(){return o.A.size(this.process)>0},validateSupported(){return this.supports("validateProcess")},simpleMode(){return this.appMode&&!this.isAuthenticated},splitpaneSizeH(){return this.appMode?this.process?[0,50,50]:[0,0,100]:this.showViewer?[20,40,40]:[25,75,0]},splitpaneSizeV(){return this.appMode?[100,0]:this.isAuthenticated?[50,50]:[99,1]}},async mounted(){this.listen("showDataForm",this.showDataForm),this.listen("editProcess",this.editProcess),this.listen("showLogin",this.login),this.listen("importProcess",this.importProcess),this.resizeListener=e=>this.resized(e),window.addEventListener("resize",this.resizeListener),this.isAuthenticated&&(this.userInfoUpdater=setInterval((()=>this.describeAccount().catch((e=>console.error(e)))),60*this.$config.dataRefreshInterval*1e3)),this.broadcast("title",this.title),this.collectionPreview&&this.$nextTick((()=>{this.broadcast("showCollectionPreview",this.collectionPreview),this.setCollectionPreview(null)})),this.openWizard&&this.showWizard(this.openWizard,this.openWizardProps)},beforeDestroy(){null!==this.resizeListener&&window.removeEventListener("resize",this.resizeListener),null!==this.userInfoUpdater&&clearInterval(this.userInfoUpdater)},methods:{...o.A.mapActions(["describeAccount"]),...o.A.mapMutations(["discoveryCompleted"]),...o.A.mapMutations("editor",["setContext","setProcess","setCollectionPreview"]),resized(e){this.broadcast("windowResized",e)},onViewerEmpty(e){this.showViewer=!e},login(){this.discoveryCompleted(!1)},importProcess(){let e={save:this.updateEditor};this.broadcast("showModal","ImportProcessModal",{},e)},async saveProcess(){return new Promise(((e,t)=>{this.broadcast("replaceProcess",this.context,this.process,e,t)}))},exportJSON(){const e=(this.contextTitle||"openeo-process")+".json";o.A.saveToFile(JSON.stringify(this.process,null,2),e)},async exportCode(){this.broadcast("showModal","ExportCodeModal")},showWizard(e=null,t={}){if(this.hasProcess){var s=confirm("Starting the wizard may clear the existing model.\r\nDo you really want to continue?");if(!s)return}this.broadcast("showModal","WizardModal",{preselectUsecase:e,options:t})},async validateProcess(){if(!this.validateSupported)return o.A.error(this,"Server doesn't support validation"),!1;if(!this.hasProcess)return o.A.info(this,"Nothing to validate..."),!0;try{let e=await this.connection.validateProcess(this.process);return e.length>0?(e.forEach((e=>e.level="error")),this.broadcast("viewLogs",e,"Validation Result","fa-tasks"),!1):(o.A.ok(this,"The process is valid"),!0)}catch(e){return o.A.exception(this,e,"Validation rejected"),!1}},updateEditor(e){null===e&&this.setContext(null),this.setProcess(e||null)},editProcess(e){this.setContext(e)},insertProcess(e){this.$refs.editor.insertProcess(e)},showServerInfo(){this.broadcast("showModal","ServerInfoModal")},showHelp(){this.broadcast("showTour","ide")},showDataForm(e,t,s=null,a=null){var i="function"===typeof s,r={},o=[];for(let c of t)null!==c&&(o.push(new Ce.ProcessParameter(c)),r[c.name]=c.value);let n={title:e,parameters:o,data:r,editable:i},l={};"function"===typeof s&&(l.save=s),"function"===typeof a&&(l.closed=a),this.broadcast("showModal","ParameterModal",n,l)}}},Fe=Te;var Me=(0,u.A)(Fe,a,i,!1,null,null,null);const Ee=Me.exports},99017:(e,t,s)=>{s.d(t,{Kt:()=>l,QJ:()=>r,Vz:()=>o});var a=s(73902),i=s(2566);class r extends Error{constructor(e,t=null,s=null,a=!0,i=!0){super(e,{cause:s}),this.title=t,this.close=a,this.isError=i}}function o(e,t){t instanceof r&&(t.isError?i.A.error(e,t.message,t.title):i.A.ok(e,t.message,t.title))}let n={};async function l(e,t,s){n[s]?n[s]++:n[s]=1;const o=new a.AbortController,l=Object.assign({},e.$config.snotifyDefaults,{timeout:0,type:"async",buttons:[{text:"Cancel",action:()=>{o.abort()}}]});let c;const d=`${s} #${n[s]}`;try{const s="Processing in progress, please wait...",a=()=>new Promise((()=>{}));c=e.$snotify.async(s,d,a,l),await t(o)}catch(u){if(i.A.axios().isCancel(u))throw new r("Cancelled successfully",d,u,!1,!1);if("string"!==typeof u.message||!i.A.isObject(u.response)||![400,500].includes(u.response.status))throw new r(u.message,d,u,!1);e.broadcast("viewLogs",[{id:u.id,code:u.code,level:"error",message:u.message,links:u.links||[]}]),i.A.error(e,`${s} failed. Please see the logs for details.`,d)}finally{c&&e.$snotify.remove(c.id,!0)}}},16125:(e,t,s)=>{s.d(t,{A:()=>o});s(81454);var a=s(14894),i=s(2566);class r extends a.BaseProcess{constructor(e,t){super(e),this.exporter=t}async execute(e){await this.exporter.generateFunction(e)}}class o extends a.ProcessGraph{constructor(e,t,s){super(i.A.isObject(e)?e:{},t),this.connection=s,this.code=[],this.fnCounter=1,this.allowEmpty(),this.fillUndefinedParameters()}createProcessGraphInstance(e){let t=new o(e,this.processRegistry,this.getJsonSchemaValidator());return this.copyProcessGraphInstanceProperties(t)}copyProcessGraphInstanceProperties(e){return e=super.copyProcessGraphInstanceProperties(e),e.connection=this.connection,e}createProcessInstance(e){return new r(e,this)}isKeyword(e){return this.getKeywords().includes(e.toLowerCase())}getKeywords(){return[]}comment(){}generateImports(){}generateConnection(){}generateAuthentication(){}generateBuilder(){}generateMetadata(){}generateMissingParameter(){}async generateFunction(){}generateFunctionParams(e){return e.map((e=>"undefined"!==typeof e.default?`${e.name} = ${this.e(e.default)}`:e.name))}async generateCallback(){}generateResult(){}makeNull(){return"null"}makeBoolean(e){return e?"true":"false"}makeArray(e){return`[${e.join(", ")}]`}makeObject(e){let t=i.A.mapObject(e,((e,t)=>`${this.makeString(t)}: ${e}`));return`{${t.join(", ")}}`}makeString(e){return JSON.stringify(e)}makeNumber(e){return e}e(e){return null===e?this.makeNull():"boolean"===typeof e?this.makeBoolean(e):"number"===typeof e?this.makeNumber(e):"string"===typeof e?this.makeString(e):Array.isArray(e)?this.makeArray(e.map((e=>this.e(e)))):i.A.isObject(e)?this.makeObject(i.A.mapObjectValues(e,(e=>this.e(e)))):"function"===typeof e?e():this.makeNull()}generateMetadata(){let e=!1;for(let t in this.process){if("process_graph"===t)continue;let s=this.process[t];Array.isArray(s)&&0===s.length||("string"===typeof s&&0===s.length||("boolean"!==typeof s||s)&&(e||(this.newLine(),this.comment("Set the metadata for the process"),e=!0),this.generateMetadataEntry(t,s)))}}async resolveArguments(e,t,s){let a=Array.isArray(e)?[]:{};for(let r in e){let n=e[r];if(!s||!s(r,n))if(i.A.isObject(n)){if(n.from_node){a[r]=()=>this.var(n.from_node,this.varPrefix());continue}if(n.from_parameter){a[r]=()=>this.var(n.from_parameter);continue}if(n instanceof o){let e=await t(r);a[r]=()=>e;continue}a[r]=await this.resolveArguments(n,t,s)}else Array.isArray(n)?a[r]=await this.resolveArguments(n,t,s):a[r]=n}return a}async resolveCallback(e,t){let s;if("load_collection"===e.process_id){let a=e.getArgument("properties");s=a[t]}else s=e.getArgument(t);let a=s.getCallbackParameters();await s.execute(a);let i=this.var(`${t}${this.fnCounter++}`,"fn_"),r=await this.generateCallback(s,a,i);return r||i}async generateArguments(e,t=!1,s=null){let a=await this.resolveArguments(e.arguments,(async t=>await this.resolveCallback(e,t)),s);return t&&(a=this.orderArguments(e,a)),a}orderArguments(e,t){let s=e.getProcessGraph().getProcess(e);if(s&&Array.isArray(s.parameters)){let e=s.parameters.map((e=>"undefined"!==typeof t[e.name]?t[e.name]:e.optional?void 0:null)),a=!1;for(let t=e.length-1;t>=0;t--)"undefined"===typeof e[t]?a?e[t]=null:e.pop():a=!0;return e}}varPrefix(){return this.getParent()?"data":"datacube"}var(e,t="var"){return e=String(e),this.isKeyword(e)?`${e}_`:e.match(/^[a-z_]\w*$/)?e:t+e.replace(/[^\w]+/g,"_")}getTab(){return"\t"}addCode(e,t="",s=0){if("string"!==typeof e)return;let a=this.getTab().repeat(s),i=e.trim().split(/\r\n|\r|\n/g);for(let r of i)this.code.push(`${a}${t}${r}\n`)}newLine(e=1){for(let t=0;t0){this.comment("ToDo: Here you need to set values for the parameters");for(let e of t)this.generateMissingParameter(e);this.newLine()}return await this.execute(),e||(this.newLine(),this.comment("The process can be executed synchronously (see below), as batch job or as web service now")),this.generateResult(this.getResultNode(),e),this.code.join("").trim()}async execute(){return await this.validate(),this.reset(),await this.executeNodes(this.getStartNodes()),this.getResultNode()}isMath(){return"undefined"===typeof this._isMath&&(this._isMath=this.processRegistry.isMath(this)),this._isMath}}},47067:(e,t,s)=>{s.d(t,{A:()=>n});s(98992),s(54520),s(81454);var a=s(2566),i=s(16125),r=s(73902);const o=["abstract","arguments","await","boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","eval","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","let","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with","yield","builder","connection","formula","openeo","result"];class n extends i.A{constructor(e,t,s,a=!1){super(e,t,s),this.generateFormula=a}createProcessGraphInstance(e){let t=new n(e,this.processRegistry,this.getJsonSchemaValidator(),this.generateFormula);return this.copyProcessGraphInstanceProperties(t)}parse(){this.parsed||super.parse()}getKeywords(){return o}comment(e){this.addCode(e,"// ")}generateImports(){this.addCode("import { OpenEO, Formula } from '@openeo/js-client';")}generateConnection(){this.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`)}generateAuthentication(){this.comment("ToDo: Here you need to add your authentication steps")}generateBuilder(){this.addCode("let builder = await connection.buildProcess();")}generateMetadataEntry(e,t){this.addCode(`builder.${e} = ${this.e(t)};`)}async generateFunction(e){let t=e.getParent()?"this":"builder",s=this.var(e.id,this.varPrefix()),i=await this.generateArguments(e,!e.namespace);if(this.comment(e.description),a.A.isObject(i)){let a=e.namespace?`${e.process_id}@${e.namespace}`:e.process_id;this.addCode(`let ${s} = ${t}.process("${a}", ${this.e(i)});`)}else this.addCode(`let ${s} = ${t}.${e.process_id}(${i.map((e=>this.e(e))).join(", ")});`)}generateMissingParameter(e){this.comment(e.description);let t=this.var(e.name,"param"),s="undefined"!==typeof e.default?e.default:null;this.addCode(`let ${t} = ${this.e(s)};`)}async generateCallback(e,t,s){if(this.generateFormula&&e&&e.isMath()){let t=e.toFormulaString(),s=JSON.stringify(t);return`new Formula(${s})`}{let a=this.generateFunctionParams(t);this.newLine(),this.addCode(`let ${s} = function(${a.join(", ")}) {`),this.addCode(await e.toCode(!0),"",1),this.addCode("}")}}generateResult(e,t){if(!e)return;let s=this.var(e.id,this.varPrefix());t?this.addCode(`return ${s};`):this.addCode(`let result = await connection.computeResult(${s});`)}toFormulaString(){return this.isMath()?this.nodeToFormula(this.getResultNode()):""}getArrayElementPlaceholder(e){if("array_element"===e.process_id&&"parameter"===e.getArgumentType("data")){let t=e.getRawArgument("data").from_parameter,s=this.getCallbackParameters().findIndex((e=>e.name===t));if(s>=0)return"$".repeat(s+1)+(e.getArgument("label")||e.getArgument("index"))}return null}nodeToFormula(e,t=null){if("array_element"===e.process_id){let t=this.getArrayElementPlaceholder(e);if(t)return t}let s=r.Formula.reverseOperatorMapping[e.process_id],i=this.processRegistry.get(e.process_id),o="undefined"!==typeof r.Formula.arrayOperatorMapping[e.process_id],n=t=>{if(a.A.isObject(t))if(t.from_node){let a=e.getProcessGraph().getNode(t.from_node);t=a?this.nodeToFormula(a,s):"#"+t.from_node}else{if(!t.from_parameter)throw new Error("Objects not allowed");t=t.from_parameter}return t},l=[],c=Array.isArray(i.parameters)?i.parameters:[];for(let a of c){let t=n(e.getRawArgument(a.name));if(o&&Array.isArray(t)&&"data"===a.name){l=t.map((e=>n(e)));break}if("undefined"!==typeof t)l.push(t);else{if("undefined"===typeof a.default)throw new Error('Argument for parameter "'+a.name+'" missing');l.push(a.default)}}if(o&&(l=l.filter((e=>null!==e))),s){let e=["/","*"],a=["-","+"],i=l.map((e=>e<0?"("+e+")":e)).join(s);return!t||a.includes(t)&&a.includes(s)||"^"===s||a.includes(t)&&e.includes(s)?i:"("+i+")"}return e.process_id+"("+l.join(", ")+")"}}},44304:(e,t,s)=>{s.d(t,{S:()=>b,Z:()=>k});var a=Object.defineProperty,i=Object.defineProperties,r=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,c=(e,t,s)=>t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,d=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&c(e,s,t[s]);if(o)for(var s of o(t))l.call(t,s)&&c(e,s,t[s]);return e},u=(e,t)=>i(e,r(t)),h=(e,t)=>{var s={};for(var a in e)n.call(e,a)&&t.indexOf(a)<0&&(s[a]=e[a]);if(null!=e&&o)for(var a of o(e))t.indexOf(a)<0&&l.call(e,a)&&(s[a]=e[a]);return s};function p(e,t,s,a,i,r,o,n){var l,c="function"===typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=s,c._compiled=!0),a&&(c.functional=!0),r&&(c._scopeId="data-v-"+r),o?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},c._ssrRegister=l):i&&(l=n?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var d=c.render;c.render=function(e,t){return l.call(t),d(e,t)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,l):[l]}return{exports:e,options:c}}const m={name:"splitpanes",props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:()=>({container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}),computed:{panesCount(){return this.panes.length},indexedPanes(){return this.panes.reduce(((e,t)=>(e[t.id]=t)&&e),{})}},methods:{updatePaneComponents(){this.panes.forEach((e=>{e.update&&e.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[e.id].size}%`})}))},bindEvents(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseDown(e,t){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=t},onMouseMove(e){this.touch.mouseDown&&(e.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(e)),this.$emit("resize",this.panes.map((e=>({min:e.min,max:e.max,size:e.size})))))},onMouseUp(){this.touch.dragging&&this.$emit("resized",this.panes.map((e=>({min:e.min,max:e.max,size:e.size})))),this.touch.mouseDown=!1,setTimeout((()=>{this.touch.dragging=!1,this.unbindEvents()}),100)},onSplitterClick(e,t){"ontouchstart"in window&&(e.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===t?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(e,t),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=t,this.splitterTaps.timeoutId=setTimeout((()=>{this.splitterTaps.splitter=null}),500)))),this.touch.dragging||this.$emit("splitter-click",this.panes[t])},onSplitterDblClick(e,t){let s=0;this.panes=this.panes.map(((e,a)=>(e.size=a===t?e.max:e.min,a!==t&&(s+=e.min),e))),this.panes[t].size-=s,this.$emit("pane-maximize",this.panes[t])},onPaneClick(e,t){this.$emit("pane-click",this.indexedPanes[t])},getCurrentMouseDrag(e){const t=this.container.getBoundingClientRect(),{clientX:s,clientY:a}="ontouchstart"in window&&e.touches?e.touches[0]:e;return{x:s-t.left,y:a-t.top}},getCurrentDragPercentage(e){e=e[this.horizontal?"y":"x"];const t=this.container[this.horizontal?"clientHeight":"clientWidth"];return this.rtl&&!this.horizontal&&(e=t-e),100*e/t},calculatePanesSize(e){const t=this.touch.activeSplitter;let s={prevPanesSize:this.sumPrevPanesSize(t),nextPanesSize:this.sumNextPanesSize(t),prevReachedMinPanes:0,nextReachedMinPanes:0};const a=0+(this.pushOtherPanes?0:s.prevPanesSize),i=100-(this.pushOtherPanes?0:s.nextPanesSize),r=Math.max(Math.min(this.getCurrentDragPercentage(e),i),a);let o=[t,t+1],n=this.panes[o[0]]||null,l=this.panes[o[1]]||null;const c=n.max<100&&r>=n.max+s.prevPanesSize,d=l.max<100&&r<=100-(l.max+this.sumNextPanesSize(t+1));if(c||d)c?(n.size=n.max,l.size=Math.max(100-n.max-s.prevPanesSize-s.nextPanesSize,0)):(n.size=Math.max(100-l.max-s.prevPanesSize-this.sumNextPanesSize(t+1),0),l.size=l.max);else{if(this.pushOtherPanes){const e=this.doPushOtherPanes(s,r);if(!e)return;({sums:s,panesToResize:o}=e),n=this.panes[o[0]]||null,l=this.panes[o[1]]||null}null!==n&&(n.size=Math.min(Math.max(r-s.prevPanesSize-s.prevReachedMinPanes,n.min),n.max)),null!==l&&(l.size=Math.min(Math.max(100-r-s.nextPanesSize-s.nextReachedMinPanes,l.min),l.max))}},doPushOtherPanes(e,t){const s=this.touch.activeSplitter,a=[s,s+1];return t{i>a[0]&&i<=s&&(t.size=t.min,e.prevReachedMinPanes+=t.min)})),e.prevPanesSize=this.sumPrevPanesSize(a[0]),void 0===a[0])?(e.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach(((t,a)=>{a>0&&a<=s&&(t.size=t.min,e.prevReachedMinPanes+=t.min)})),this.panes[a[1]].size=100-e.prevReachedMinPanes-this.panes[0].min-e.prevPanesSize-e.nextPanesSize,null):t>100-e.nextPanesSize-this.panes[a[1]].min&&(a[1]=this.findNextExpandedPane(s).index,e.nextReachedMinPanes=0,a[1]>s+1&&this.panes.forEach(((t,i)=>{i>s&&i{a=s+1&&(t.size=t.min,e.nextReachedMinPanes+=t.min)})),this.panes[a[0]].size=100-e.prevPanesSize-e.nextReachedMinPanes-this.panes[this.panesCount-1].min-e.nextPanesSize,null):{sums:e,panesToResize:a}},sumPrevPanesSize(e){return this.panes.reduce(((t,s,a)=>t+(at+(a>e+1?s.size:0)),0)},findPrevExpandedPane(e){const t=[...this.panes].reverse().find((t=>t.indext.min));return t||{}},findNextExpandedPane(e){const t=this.panes.find((t=>t.index>e+1&&t.size>t.min));return t||{}},checkSplitpanesNodes(){const e=Array.from(this.container.children);e.forEach((e=>{const t=e.classList.contains("splitpanes__pane"),s=e.classList.contains("splitpanes__splitter");if(!t&&!s)return e.parentNode.removeChild(e),void console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.")}))},addSplitter(e,t,s=!1){const a=e-1,i=document.createElement("div");i.classList.add("splitpanes__splitter"),s||(i.onmousedown=e=>this.onMouseDown(e,a),"undefined"!==typeof window&&"ontouchstart"in window&&(i.ontouchstart=e=>this.onMouseDown(e,a)),i.onclick=e=>this.onSplitterClick(e,a+1)),this.dblClickSplitter&&(i.ondblclick=e=>this.onSplitterDblClick(e,a+1)),t.parentNode.insertBefore(i,t)},removeSplitter(e){e.onmousedown=void 0,e.onclick=void 0,e.ondblclick=void 0,e.parentNode.removeChild(e)},redoSplitters(){const e=Array.from(this.container.children);e.forEach((e=>{e.className.includes("splitpanes__splitter")&&this.removeSplitter(e)}));let t=0;e.forEach((e=>{e.className.includes("splitpanes__pane")&&(!t&&this.firstSplitter?this.addSplitter(t,e,!0):t&&this.addSplitter(t,e),t++)}))},requestUpdate(e){var t=e,{target:s}=t,a=h(t,["target"]);const i=this.indexedPanes[s._uid];Object.entries(a).forEach((([e,t])=>i[e]=t))},onPaneAdd(e){let t=-1;Array.from(e.$el.parentNode.children).some((s=>(s.className.includes("splitpanes__pane")&&t++,s===e.$el)));const s=parseFloat(e.minSize),a=parseFloat(e.maxSize);this.panes.splice(t,0,{id:e._uid,index:t,min:isNaN(s)?0:s,max:isNaN(a)?100:a,size:null===e.size?null:parseFloat(e.size),givenSize:e.size,update:e.update}),this.panes.forEach(((e,t)=>e.index=t)),this.ready&&this.$nextTick((()=>{this.redoSplitters(),this.resetPaneSizes({addedPane:this.panes[t]}),this.$emit("pane-add",{index:t,panes:this.panes.map((e=>({min:e.min,max:e.max,size:e.size})))})}))},onPaneRemove(e){const t=this.panes.findIndex((t=>t.id===e._uid)),s=this.panes.splice(t,1)[0];this.panes.forEach(((e,t)=>e.index=t)),this.$nextTick((()=>{this.redoSplitters(),this.resetPaneSizes({removedPane:u(d({},s),{index:t})}),this.$emit("pane-remove",{removed:s,panes:this.panes.map((e=>({min:e.min,max:e.max,size:e.size})))})}))},resetPaneSizes(e={}){e.addedPane||e.removedPane?this.panes.some((e=>null!==e.givenSize||e.min||e.max<100))?this.equalizeAfterAddOrRemove(e):this.equalize():this.initialPanesSizing(),this.ready&&this.$emit("resized",this.panes.map((e=>({min:e.min,max:e.max,size:e.size}))))},equalize(){const e=100/this.panesCount;let t=0,s=[],a=[];this.panes.forEach((i=>{i.size=Math.max(Math.min(e,i.max),i.min),t-=i.size,i.size>=i.max&&s.push(i.id),i.size<=i.min&&a.push(i.id)})),t>.1&&this.readjustSizes(t,s,a)},initialPanesSizing(){this.panesCount;let e=100,t=[],s=[],a=0;this.panes.forEach((i=>{e-=i.size,null!==i.size&&a++,i.size>=i.max&&t.push(i.id),i.size<=i.min&&s.push(i.id)}));let i=100;e>.1&&(this.panes.forEach((t=>{null===t.size&&(t.size=Math.max(Math.min(e/(this.panesCount-a),t.max),t.min)),i-=t.size})),i>.1&&this.readjustSizes(e,t,s))},equalizeAfterAddOrRemove({addedPane:e,removedPane:t}={}){let s=100/this.panesCount,a=0,i=[],r=[];e&&null!==e.givenSize&&(s=(100-e.givenSize)/(this.panesCount-1)),this.panes.forEach((e=>{a-=e.size,e.size>=e.max&&i.push(e.id),e.size<=e.min&&r.push(e.id)})),Math.abs(a)<.1||(this.panes.forEach((t=>{e&&null!==e.givenSize&&e.id===t.id||(t.size=Math.max(Math.min(s,t.max),t.min)),a-=t.size,t.size>=t.max&&i.push(t.id),t.size<=t.min&&r.push(t.id)})),a>.1&&this.readjustSizes(a,i,r))},readjustSizes(e,t,s){let a;a=e>0?e/(this.panesCount-t.length):e/(this.panesCount-s.length),this.panes.forEach(((i,r)=>{if(e>0&&!t.includes(i.id)){const t=Math.max(Math.min(i.size+a,i.max),i.min),s=t-i.size;e-=s,i.size=t}else if(!s.includes(i.id)){const t=Math.max(Math.min(i.size+a,i.max),i.min),s=t-i.size;e-=s,i.size=t}i.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[i.id].size}%`})})),Math.abs(e)>.1&&this.$nextTick((()=>{this.ready&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")}))}},watch:{panes:{deep:!0,immediate:!1,handler(){this.updatePaneComponents()}},horizontal(){this.updatePaneComponents()},firstSplitter(){this.redoSplitters()},dblClickSplitter(e){const t=[...this.container.querySelectorAll(".splitpanes__splitter")];t.forEach(((t,s)=>{t.ondblclick=e?e=>this.onSplitterDblClick(e,s):void 0}))}},beforeDestroy(){this.ready=!1},mounted(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit("ready"),this.ready=!0},render(e){return e("div",{ref:"container",class:["splitpanes","splitpanes--"+(this.horizontal?"horizontal":"vertical"),{"splitpanes--dragging":this.touch.dragging}]},this.$slots.default)}};let f,g;const y={};var v=p(m,f,g,!1,w,null,null,null);function w(e){for(let t in y)this[t]=y[t]}var b=function(){return v.exports}(),A=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"splitpanes__pane",style:e.style,on:{click:function(t){return e.onPaneClick(t,e._uid)}}},[e._t("default")],2)},S=[];const x={name:"pane",inject:["requestUpdate","onPaneAdd","onPaneRemove","onPaneClick"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:()=>({style:{}}),mounted(){this.onPaneAdd(this)},beforeDestroy(){this.onPaneRemove(this)},methods:{update(e){this.style=e}},computed:{sizeNumber(){return this.size||0===this.size?parseFloat(this.size):null},minSizeNumber(){return parseFloat(this.minSize)},maxSizeNumber(){return parseFloat(this.maxSize)}},watch:{sizeNumber(e){this.requestUpdate({target:this,size:e})},minSizeNumber(e){this.requestUpdate({target:this,min:e})},maxSizeNumber(e){this.requestUpdate({target:this,max:e})}}},P={};var _=p(x,A,S,!1,C,null,null,null);function C(e){for(let t in P)this[t]=P[t]}var k=function(){return _.exports}()},18237:(e,t,s)=>{var a=s(46518),i=s(72652),r=s(79306),o=s(28551),n=s(1767),l=TypeError;a({target:"Iterator",proto:!0,real:!0},{reduce:function(e){o(this),r(e);var t=n(this),s=arguments.length<2,a=s?void 0:arguments[1],c=0;if(i(t,(function(t){s?(s=!1,a=t):a=e(a,t,c),c++}),{IS_RECORD:!0}),s)throw new l("Reduce of empty iterator with no initial value");return a}})},8872:(e,t,s)=>{s(18237)}}]); -//# sourceMappingURL=552.3b4e55e2.js.map \ No newline at end of file +//# sourceMappingURL=552.03d86df0.js.map \ No newline at end of file diff --git a/js/552.3b4e55e2.js.map b/js/552.03d86df0.js.map similarity index 99% rename from js/552.3b4e55e2.js.map rename to js/552.03d86df0.js.map index 26386762..12d710cb 100644 --- a/js/552.3b4e55e2.js.map +++ b/js/552.03d86df0.js.map @@ -1 +1 @@ -{"version":3,"file":"js/552.3b4e55e2.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/AsyncButton.vue?358a","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/AsyncButton.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/AsyncButton.vue?b038","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/AsyncButton.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/IDE.vue","webpack://@openeo/web-editor/./src/components/UserMenu.vue","webpack://@openeo/web-editor/src/components/UserMenu.vue","webpack://@openeo/web-editor/./src/components/UserMenu.vue?2d6a","webpack://@openeo/web-editor/./src/components/UserMenu.vue?bef9","webpack://@openeo/web-editor/./src/components/UserWorkspace.vue","webpack://@openeo/web-editor/./src/components/FilePanel.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/DataTable.vue?4b1c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/DataTable.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/DataTable.vue?fc7a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/DataTable.vue","webpack://@openeo/web-editor/./src/components/WorkPanelMixin.js","webpack://@openeo/web-editor/./src/components/SyncButton.vue","webpack://@openeo/web-editor/src/components/SyncButton.vue","webpack://@openeo/web-editor/./src/components/SyncButton.vue?e941","webpack://@openeo/web-editor/./src/components/SyncButton.vue?1272","webpack://@openeo/web-editor/src/components/FilePanel.vue","webpack://@openeo/web-editor/./src/components/FilePanel.vue?6c4a","webpack://@openeo/web-editor/./src/components/FilePanel.vue?8f48","webpack://@openeo/web-editor/./src/components/JobPanel.vue","webpack://@openeo/web-editor/./src/components/FieldMixin.js","webpack://@openeo/web-editor/src/components/JobPanel.vue","webpack://@openeo/web-editor/./src/components/JobPanel.vue?b003","webpack://@openeo/web-editor/./src/components/JobPanel.vue?0eb9","webpack://@openeo/web-editor/./src/components/CustomProcessPanel.vue","webpack://@openeo/web-editor/src/components/CustomProcessPanel.vue","webpack://@openeo/web-editor/./src/components/CustomProcessPanel.vue?5bb8","webpack://@openeo/web-editor/./src/components/CustomProcessPanel.vue?0871","webpack://@openeo/web-editor/./src/components/ServicePanel.vue","webpack://@openeo/web-editor/src/components/ServicePanel.vue","webpack://@openeo/web-editor/./src/components/ServicePanel.vue?2fc5","webpack://@openeo/web-editor/./src/components/ServicePanel.vue?9da8","webpack://@openeo/web-editor/src/components/UserWorkspace.vue","webpack://@openeo/web-editor/./src/components/UserWorkspace.vue?3da1","webpack://@openeo/web-editor/./src/components/UserWorkspace.vue?daff","webpack://@openeo/web-editor/./src/components/Viewer.vue","webpack://@openeo/web-editor/src/components/Viewer.vue","webpack://@openeo/web-editor/./src/components/Viewer.vue?85cf","webpack://@openeo/web-editor/./src/components/Viewer.vue?7166","webpack://@openeo/web-editor/src/components/IDE.vue","webpack://@openeo/web-editor/./src/components/IDE.vue?eae2","webpack://@openeo/web-editor/./src/components/IDE.vue?7c7b","webpack://@openeo/web-editor/./src/components/cancellableRequest.js","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js","webpack://@openeo/web-editor/./node_modules/splitpanes/dist/splitpanes.es.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/es.iterator.reduce.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/esnext.iterator.reduce.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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('BButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fn),expression:\"fn\"}],staticClass:\"async-button\",class:{awesome: _vm.fa},attrs:{\"type\":\"button\",\"title\":_vm.title,\"disabled\":_vm.disabled},on:{\"click\":_vm.update}},[_c('span',{staticClass:\"button-content\"},[(_vm.loading)?_c('span',{staticClass:\"icon loading\"},[(_vm.fa)?_c('i',{class:_vm.loadingClasses}):_c('LoadingIcon',{attrs:{\"rotate\":\"\"}})],1):(_vm.asyncState === true)?_c('span',{staticClass:\"icon success\"},[(_vm.fa)?_c('i',{staticClass:\"fas fa-check\"}):_c('span',[_vm._v(\"✔️\")])]):(_vm.asyncState === false)?_c('span',{staticClass:\"icon error\"},[(_vm.fa)?_c('i',{staticClass:\"fas fa-times\"}):_c('span',[_vm._v(\"❌\")])]):_c('span',{staticClass:\"icon default\"},[(_vm.fa)?_c('i',{class:_vm.icon}):(_vm.icon)?_c('span',[_vm._v(_vm._s(_vm.icon))]):_c('LoadingIcon')],1),_c('span',{staticClass:\"text\"},[_vm._t(\"default\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AsyncButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AsyncButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AsyncButton.vue?vue&type=template&id=ec4b291e&scoped=true\"\nimport script from \"./AsyncButton.vue?vue&type=script&lang=js\"\nexport * from \"./AsyncButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./AsyncButton.vue?vue&type=style&index=0&id=ec4b291e&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ec4b291e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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',{attrs:{\"id\":\"wrapper\"}},[_c('div',{class:{authenticated: _vm.isAuthenticated, appMode: Boolean(_vm.appMode)},attrs:{\"id\":\"ide\"}},[_c('header',{staticClass:\"navbar\"},[_c('Logo'),_c('ul',{attrs:{\"id\":\"menu\"}},[(!_vm.simpleMode)?_c('li',[_c('div',{staticClass:\"menuItem\",attrs:{\"title\":\"Start a guided tour\"},on:{\"click\":_vm.showHelp}},[_c('i',{staticClass:\"fas fa-question-circle fa-fw\"}),_vm._v(\"Help\")])]):_vm._e(),(!_vm.simpleMode)?_c('li',[_c('div',{staticClass:\"menuItem\",attrs:{\"title\":\"Start the process wizard\"},on:{\"click\":function($event){return _vm.showWizard()}}},[_c('i',{staticClass:\"fas fa-magic fa-fw\"}),_vm._v(\"Wizard\")])]):_vm._e(),_c('li',[_c('div',{staticClass:\"menuItem\",attrs:{\"title\":\"Get server information\"},on:{\"click\":_vm.showServerInfo}},[_c('i',{staticClass:\"fas fa-info-circle fa-fw\"}),_vm._v(\"Server\")])]),_c('li',[_c('UserMenu')],1)])],1),_c('Splitpanes',{staticClass:\"default-theme\",on:{\"resize\":_vm.resized,\"pane-maximize\":_vm.resized}},[(!_vm.simpleMode)?_c('Pane',{attrs:{\"id\":\"discovery\",\"size\":_vm.splitpaneSizeH[0]}},[_c('DiscoveryToolbar',{staticClass:\"toolbar tour-ide-discovery\",attrs:{\"onAddProcess\":_vm.insertProcess,\"collectionPreview\":true,\"persist\":true}})],1):_vm._e(),(!_vm.simpleMode || _vm.hasProcess)?_c('Pane',{attrs:{\"id\":\"workspace\",\"size\":_vm.splitpaneSizeH[1]}},[_c('Splitpanes',{staticClass:\"default-theme\",attrs:{\"horizontal\":\"\"},on:{\"resize\":_vm.resized,\"pane-maximize\":_vm.resized}},[_c('Pane',{attrs:{\"id\":\"editor\",\"size\":_vm.splitpaneSizeV[0]}},[_c('Editor',{ref:\"editor\",staticClass:\"mainEditor tour-ide-editor\",attrs:{\"id\":\"main\",\"value\":_vm.process,\"title\":_vm.contextTitle,\"showIntro\":\"\"},on:{\"input\":_vm.updateEditor},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.saveSupported),expression:\"saveSupported\"}],attrs:{\"disabled\":!_vm.hasProcess,\"fn\":_vm.saveProcess,\"title\":'Save this process to ' + _vm.contextTitle,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-save\"}}),_c('BButton',{attrs:{\"disabled\":!_vm.hasProcess,\"title\":\"Download this process as a JSON file\"},on:{\"click\":_vm.exportJSON}},[_c('i',{staticClass:\"fas fa-file-download\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasProcess,\"title\":\"Export this process into another programming language\"},on:{\"click\":_vm.exportCode}},[_c('i',{staticClass:\"fas fa-file-export\"})]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.validateSupported),expression:\"validateSupported\"}],attrs:{\"disabled\":!_vm.hasProcess,\"fn\":_vm.validateProcess,\"title\":\"Validate this process directly on the server\",\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-tasks\"}})]},proxy:true}],null,false,1996999620)})],1),(!_vm.simpleMode)?_c('Pane',{attrs:{\"id\":\"user\",\"size\":_vm.splitpaneSizeV[1]}},[(_vm.isAuthenticated)?_c('UserWorkspace',{staticClass:\"userContent tour-ide-workspace\"}):_c('div',{staticClass:\"message info\",attrs:{\"title\":\"Login is required to interact with the server.\"}},[_c('i',{staticClass:\"fas fa-sign-in-alt\"}),_c('span',{staticClass:\"login-message\"},[_c('strong',[_c('a',{on:{\"click\":_vm.login}},[_vm._v(\"Log in\")])]),_vm._v(\" is required to interact with the server.\")])])],1):_vm._e()],1)],1):_vm._e(),_c('Pane',{class:{empty: !_vm.showViewer},attrs:{\"id\":\"viewer\",\"size\":_vm.splitpaneSizeH[2]}},[_c('Viewer',{staticClass:\"tour-ide-viewer\",attrs:{\"editable\":!_vm.simpleMode},on:{\"empty\":_vm.onViewerEmpty}})],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"UserMenu\"}},[_c('div',{staticClass:\"menuItem\"},[_vm._m(0),_c('div',{staticClass:\"data\"},[_c('span',{staticClass:\"name nowrap\"},[_c('i',{staticClass:\"fas fa-user\"}),_vm._v(\" \"+_vm._s(_vm.userName))]),(_vm.budget)?_c('span',{staticClass:\"credits nowrap\"},[_c('i',{staticClass:\"fas fa-dollar-sign fa-fw\"}),_vm._v(\" \"+_vm._s(_vm.budget))]):_vm._e(),(_vm.hasStorage)?_c('span',{staticClass:\"storage nowrap\"},[_c('i',{staticClass:\"fas fa-database fa-fw\"}),_vm._v(\" \"+_vm._s(_vm.storageUsedPercent)+\"% used\")]):_vm._e()])]),_c('div',{staticClass:\"dropdown\"},[(_vm.profileLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.profileLink.href,\"target\":\"_blank\"}},[_vm._v(\"Welcome, \"+_vm._s(_vm.userName)+\"!\")]):_c('div',{staticClass:\"item\"},[_vm._v(\"Welcome, \"+_vm._s(_vm.userName)+\"!\")]),(_vm.isAuthenticated)?[(_vm.hasProfile)?_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.userDetails.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-user\"}),_vm._v(\" Profile\")]):_vm._e(),(_vm.settingsLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.settingsLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-user-edit\"}),_vm._v(\" \"+_vm._s(_vm.settingsLink.title || 'Edit Profile'))]):_vm._e(),_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.logout.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-sign-out-alt\"}),_vm._v(\" Logout\")])]:[_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.login.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-sign-in-alt\"}),_vm._v(\" Login\")]),(_vm.registerLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.registerLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-user-plus\"}),_vm._v(\" Register\")]):_vm._e(),(_vm.passwordLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.passwordLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-key\"}),_vm._v(\" Forgotten Password?\")]):_vm._e()],(!_vm.$config.serverUrl)?_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.disconnect.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-sign-out-alt\"}),_vm._v(\" Disconnect\")]):_vm._e(),(_vm.userLinks.length > 0)?[_c('hr'),_vm._l((_vm.userLinks),function(link,key){return _c('a',{key:key,staticClass:\"item\",attrs:{\"href\":link.href,\"target\":\"_blank\",\"rel\":link.rel}},[_vm._v(_vm._s(link.title))])})]:_vm._e(),(_vm.budget || _vm.userInfo.default_plan || _vm.paymentLink)?[_c('hr'),_c('div',{staticClass:\"item\"},[_c('h4',[_vm._v(\"Billing\")]),(_vm.userInfo.default_plan)?_c('div',{staticClass:\"secondary-text\"},[_vm._v(\"Plan: \"+_vm._s(_vm.userInfo.default_plan))]):_vm._e(),(_vm.budget)?_c('div',{staticClass:\"secondary-text\"},[_vm._v(\"Budget: \"+_vm._s(_vm.budget))]):_vm._e()]),(_vm.paymentLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.paymentLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-credit-card\"}),_vm._v(\" \"+_vm._s(_vm.paymentLink.title || 'Recharge'))]):_vm._e()]:_vm._e(),(_vm.hasStorage)?[_c('hr'),_c('div',{staticClass:\"item\"},[_c('h4',[_vm._v(\"Storage\")]),_c('div',{staticClass:\"secondary-text nowrap\"},[_vm._v(\"Used \"+_vm._s(_vm.formatMegabyte(_vm.storageUsed))+\" of \"+_vm._s(_vm.formatMegabyte(_vm.userInfo.storage.quota))+\".\")]),_c('div',{staticClass:\"storagePercent\"},[_c('div',{staticClass:\"used\",style:('width: ' + _vm.storageUsedPercent + '%')})])])]:_vm._e()],2)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"down\"},[_c('i',{staticClass:\"fas fa-chevron-down\"})])\n}]\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!./UserMenu.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!./UserMenu.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserMenu.vue?vue&type=template&id=23c6ba20&scoped=true\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=js\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserMenu.vue?vue&type=style&index=0&id=23c6ba20&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 \"23c6ba20\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"userContent\"}},[(_vm.showJobs)?_c('Tab',{attrs:{\"id\":\"jobs\",\"name\":\"Data Processing\",\"icon\":\"fa-tasks\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('JobPanel')],1):_vm._e(),(_vm.showServices)?_c('Tab',{attrs:{\"id\":\"services\",\"name\":\"Web Services\",\"icon\":\"fa-cloud\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('ServicePanel')],1):_vm._e(),(_vm.showCustomProcesses)?_c('Tab',{attrs:{\"id\":\"customProcesses\",\"name\":\"User-Defined Processes\",\"icon\":\"fa-sitemap\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('CustomProcessPanel')],1):_vm._e(),(_vm.showFiles)?_c('Tab',{attrs:{\"id\":\"files\",\"name\":\"Files\",\"icon\":\"fa-file\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('FilePanel')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"FilePanel\"},on:{\"dragenter\":function($event){return _vm.dropZoneInfo(true)},\"dragleave\":function($event){return _vm.dropZoneInfo(false)},\"drop\":_vm.uploadFiles,\"dragover\":_vm.allowDrop}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showUploadDropHint),expression:\"showUploadDropHint\"}],staticClass:\"dropZone\"},[_vm._v(\"To upload files, drop them here.\")]),_c('DataTable',{ref:\"table\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Download this file to your computer\",\"fn\":() => _vm.downloadFile(p.row),\"fa\":\"\",\"icon\":\"fas fa-download\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this file from the server\",\"fn\":() => _vm.deleteFile(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],staticClass:\"upload\"},[_c('div',{staticClass:\"percent\",class:{active: this.uploadProgress > 0}},[_c('div',{staticClass:\"used\",class:{error: _vm.uploadErrored},style:('width: ' + this.uploadProgress + '%; opacity: ' + this.uploadFadeOut)})]),_c('div',{staticClass:\"addFile\"},[_c('input',{ref:\"uploadUserFile\",staticClass:\"uploadUserFile\",attrs:{\"type\":\"file\",\"name\":\"uploadUserFile\",\"multiple\":\"\"},on:{\"change\":_vm.uploadFiles}})])]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component data-table\"},[_c('div',{staticClass:\"menu\"},[_c('div',{staticClass:\"toolbar\"},[_vm._t(\"toolbar\")],2),(_vm.hasData)?_c('div',{staticClass:\"filter\"},[_c('SearchBox',{attrs:{\"placeholder\":_vm.searchPlaceholder,\"compact\":true},model:{value:(_vm.filterValue),callback:function ($$v) {_vm.filterValue=$$v},expression:\"filterValue\"}})],1):_vm._e()]),(_vm.hasData)?_c('table',[_c('thead',[_c('tr',_vm._l((_vm.columns),function(col,id){return _c('th',{directives:[{name:\"show\",rawName:\"v-show\",value:(!col.hide),expression:\"!col.hide\"}],key:col.name,class:_vm.thClasses(id),attrs:{\"width\":col.width,\"title\":_vm.thTitle(id)},on:{\"click\":function($event){return _vm.enableSort(id)}}},[_vm._v(_vm._s(col.name))])}),0)]),_c('tbody',[_vm._l((_vm.view),function(row,i){return _c('tr',{key:i},_vm._l((_vm.columns),function(col,id){return _c('td',{directives:[{name:\"show\",rawName:\"v-show\",value:(!col.hide),expression:\"!col.hide\"}],key:`${col.name}_${id}`,class:[id, {'edit': _vm.canEdit(col)}],attrs:{\"title\":_vm.canEdit(col) ? 'Double-click to change the value' : false,\"data-value\":col.stylable ? _vm.value(row, col, id) : false},on:{\"dblclick\":function($event){return _vm.onDblClick($event, row, col, id)}}},[_vm._t(id,function(){return [(_vm.showEditField(row, col, id))?[_c('form',{on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.saveEditField($event, row, col, id)}}},[_c('input',{ref:\"editField\",refInFor:true,attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.value(row, col, id)},on:{\"blur\":function($event){return _vm.saveEditField($event, row, col, id)},\"keyup\":function($event){return _vm.resetEditFieldEsc($event, row, col, id)}}})])]:_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.formattedValue(row, col, id))}})]},{\"row\":row,\"col\":col,\"id\":id})],2)}),0)}),(_vm.hasData && _vm.view.length == 0)?_c('tr',{staticClass:\"no-results\"},[_c('td',{attrs:{\"colspan\":_vm.columnCount}},[_vm._v(\"No element matches your search criteria.\")])]):_vm._e()],2)]):_c('div',{staticClass:\"no-data\"},[_vm._v(_vm._s(_vm.noDataMessage))]),(_vm.hasMore)?_c('AsyncButton',{staticClass:\"has-more-button\",attrs:{\"fa\":_vm.fa,\"icon\":\"fas fa-sync\",\"fn\":_vm.next}},[_vm._v(\"Load more...\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DataTable.vue?vue&type=template&id=9098dd08\"\nimport script from \"./DataTable.vue?vue&type=script&lang=js\"\nexport * from \"./DataTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./DataTable.vue?vue&type=style&index=0&id=9098dd08&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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 DataTable from '@openeo/vue-components/components/DataTable.vue';\nimport Utils from '../utils.js';\n\nexport default (namespace, singular, plural, loadInitially = true) => {\n\treturn {\n\t\tcomponents: {\n\t\t\tDataTable\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tname: singular,\n\t\t\t\tplualizedName: plural,\n\t\t\t\tsyncTimer: null,\n\t\t\t\tlastSyncTime: null\n\t\t\t};\n\t\t},\n\t\tmounted() {\n\t\t\tif (loadInitially) {\n\t\t\t\tthis.updateData();\n\t\t\t}\n\t\t},\n\t\tbeforeDestroy() {\n\t\t\tthis.stopSyncTimer();\n\t\t},\n\t\tcomputed: {\n\t\t\t...Utils.mapState(namespace, {data: namespace}),\n\t\t\t...Utils.mapState(namespace, ['pages', 'hasMore']),\n\t\t\t...Utils.mapGetters(namespace, ['supportsList', 'supportsCreate', 'supportsRead', 'supportsUpdate', 'supportsDelete']),\n\t\t\tnext() {\n\t\t\t\treturn this.hasMore ? this.nextPage : null;\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t...Utils.mapActions(namespace, ['list', 'nextPage', 'create', 'read', 'update', 'delete']),\n\t\t\tgetTable() { // To be overridden\n\t\t\t\treturn this.$refs && this.$refs.table ? this.$refs.table : null;\n\t\t\t},\n\t\t\tonShow() {\n\t\t\t\tthis.updateData().catch(error => Utils.exception(this, error, `Updating ${plural} failed`));\n\t\t\t\tthis.startSyncTimer();\n\t\t\t},\n\t\t\tonHide() {\n\t\t\t\tthis.stopSyncTimer();\n\t\t\t},\n\t\t\tstartSyncTimer() {\n\t\t\t\tif (this.supportsList && this.syncTimer === null) {\n\t\t\t\t\tthis.syncTimer = setInterval(this.updateData, this.getSyncInterval());\n\t\t\t\t}\n\t\t\t},\n\t\t\tstopSyncTimer() {\n\t\t\t\tif (this.syncTimer !== null) {\n\t\t\t\t\tclearInterval(this.syncTimer);\n\t\t\t\t\tthis.syncTimer = null;\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetSyncInterval() {\n\t\t\t\treturn this.$config.dataRefreshInterval*60*1000; // Refresh data every x minutes\n\t\t\t},\n\t\t\tasync refreshElement(obj, callback = null) {\n\t\t\t\tvar old = Object.assign({}, obj);\n\t\t\t\ttry {\n\t\t\t\t\tlet updated = await this.read({data: obj});\n\t\t\t\t\tif (typeof callback === 'function') {\n\t\t\t\t\t\tcallback(updated, old);\n\t\t\t\t\t}\n\t\t\t\t} catch(error) {\n\t\t\t\t\tUtils.exception(this, error, \"Load \" + singular + \" error\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync reloadData() {\n\t\t\t\treturn await this.updateData(true);\n\t\t\t},\n\t\t\tasync updateData(force = false) {\n\t\t\t\tvar table = this.getTable();\n\t\t\t\tvar nextSyncTime = Date.now() - this.getSyncInterval();\n\t\t\t\tif (!table || (!force && this.lastSyncTime > nextSyncTime)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\telse if (!this.supportsList) {\n\t\t\t\t\ttable.setNoData(\"Sorry, listing stored \" + plural + \" is not supported by the server.\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar isUpdate = this.data.length > 0;\n\t\t\t\t\tif (!isUpdate) {\n\t\t\t\t\t\ttable.setNoData(\"Loading \" + plural + \"...\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.lastSyncTime = Date.now();\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet data = await this.list();\n\t\t\t\t\t\tif(data.length == 0) {\n\t\t\t\t\t\t\ttable.setNoData(\"Add your first \" + singular + \" here...\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} catch(error) {\n\t\t\t\t\t\tif (!isUpdate) {\n\t\t\t\t\t\t\tUtils.exception(this, error);\n\t\t\t\t\t\t\ttable.setNoData(\"Sorry, unable to load data from the server.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t};\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AsyncButton',{attrs:{\"fa\":\"\",\"confirm\":\"\",\"consistent\":\"\",\"icon\":\"fas fa-sync\",\"title\":_vm.title,\"fn\":_vm.sync}})\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!./SyncButton.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!./SyncButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SyncButton.vue?vue&type=template&id=06fc6151\"\nimport script from \"./SyncButton.vue?vue&type=script&lang=js\"\nexport * from \"./SyncButton.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","\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!./FilePanel.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!./FilePanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilePanel.vue?vue&type=template&id=8e09be82\"\nimport script from \"./FilePanel.vue?vue&type=script&lang=js\"\nexport * from \"./FilePanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilePanel.vue?vue&type=style&index=0&id=8e09be82&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('DataTable',{ref:\"table\",staticClass:\"JobPanel\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Show details about this job\",\"fn\":() => _vm.showJobInfo(p.row),\"fa\":\"\",\"icon\":\"fas fa-info\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsEstimate),expression:\"supportsEstimate\"}],attrs:{\"title\":\"Create a cost and time estimate for this job\",\"fn\":() => _vm.estimateJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-file-invoice-dollar\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsUpdate),expression:\"supportsUpdate\"}],attrs:{\"title\":\"Edit the metadata of this job\",\"fn\":() => _vm.editMetadata(p.row),\"disabled\":!_vm.isJobInactive(p.row),\"fa\":\"\",\"icon\":\"fas fa-edit\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Edit the process of this job in the process editor\",\"confirm\":\"\",\"fn\":() => _vm.showInEditor(p.row),\"fa\":\"\",\"icon\":\"fas fa-project-diagram\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this job from the server, including all results\",\"fn\":() => _vm.deleteJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsStart && _vm.isJobInactive(p.row)),expression:\"supportsStart && isJobInactive(p.row)\"}],attrs:{\"title\":\"Start the processing on the server\",\"fn\":() => _vm.queueJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-play-circle\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsStop && _vm.isJobActive(p.row)),expression:\"supportsStop && isJobActive(p.row)\"}],attrs:{\"title\":\"Cancel the processing\",\"fn\":() => _vm.cancelJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-stop-circle\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDownloadResults && _vm.mayHaveResults(p.row)),expression:\"supportsDownloadResults && mayHaveResults(p.row)\"}],attrs:{\"title\":\"Download the results to your computer\",\"fn\":() => _vm.downloadResults(p.row),\"fa\":\"\",\"icon\":\"fas fa-download\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDownloadResults && _vm.mayHaveResults(p.row)),expression:\"supportsDownloadResults && mayHaveResults(p.row)\"}],attrs:{\"title\":\"View the results\",\"fn\":() => _vm.viewResults(p.row, true),\"fa\":\"\",\"icon\":\"fas fa-eye\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canShare && _vm.supports('downloadResults') && _vm.mayHaveResults(p.row)),expression:\"canShare && supports('downloadResults') && mayHaveResults(p.row)\"}],attrs:{\"title\":\"Export and/or share this job\",\"fn\":() => _vm.shareResults(p.row),\"fa\":\"\",\"icon\":\"fas fa-share\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDebug),expression:\"supportsDebug\"}],attrs:{\"title\":\"View the logs of this job\",\"fn\":() => _vm.showLogs(p.row),\"fa\":\"\",\"icon\":\"fas fa-bug\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],attrs:{\"title\":\"Create a new job from the process in the process editor for batch processing\",\"fn\":_vm.createJobFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-plus\"}},[_vm._v(\"Create Batch Job\")]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supports('computeResult')),expression:\"supports('computeResult')\"}],attrs:{\"title\":\"Run the process in the process editor directly and view the results without storing them permanently\",\"fn\":_vm.executeProcess,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-play\"}},[_vm._v(\"Run now\")]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n methods: {\n\t\tgetTitleField(value = null) {\n\t\t\treturn {\n\t\t\t\tname: 'title',\n\t\t\t\tlabel: 'Title',\n\t\t\t\tschema: {type: 'string'},\n\t\t\t\tdefault: null,\n\t\t\t\tvalue: value,\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetDescriptionField(value = null) {\n\t\t\treturn {\n\t\t\t\tname: 'description',\n\t\t\t\tlabel: 'Description',\n\t\t\t\tschema: {type: 'string', subtype: 'commonmark'},\n\t\t\t\tdefault: null,\n\t\t\t\tvalue: value,\n\t\t\t\tdescription: 'CommonMark (Markdown) is allowed.',\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetLogLevelField(value = undefined) {\n\t\t\treturn {\n\t\t\t\tname: 'log_level',\n\t\t\t\tlabel: 'Log level',\n\t\t\t\tschema: {type: 'string', enum: ['debug', 'info', 'warning', 'error']},\n\t\t\t\tdefault: 'info',\n\t\t\t\tvalue: value,\n\t\t\t\tdescription: 'The minimum severity level for log entries that the back-end stores for the processing request.\\n\\ndebug (all logs) > info > warning > error (only errors)',\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetBillingPlanField(value = undefined) {\n\t\t\treturn {\n\t\t\t\tname: 'plan',\n\t\t\t\tlabel: 'Billing plan',\n\t\t\t\tschema: {type: 'string', subtype: 'billing-plan'},\n\t\t\t\tvalue: value,\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetBudgetField(value = null) {\n\t\t\treturn {\n\t\t\t\tname: 'budget',\n\t\t\t\tlabel: 'Budget limit',\n\t\t\t\tschema: {type: 'number', subtype: 'budget'},\n\t\t\t\tdefault: null,\n\t\t\t\tvalue: value,\n\t\t\t\toptional: true\n\t\t\t};\n\t\t}\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!./JobPanel.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!./JobPanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./JobPanel.vue?vue&type=template&id=13c24778\"\nimport script from \"./JobPanel.vue?vue&type=script&lang=js\"\nexport * from \"./JobPanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./JobPanel.vue?vue&type=style&index=0&id=13c24778&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('DataTable',{ref:\"table\",staticClass:\"CustomProcessPanel\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Show details about this process\",\"fn\":() => _vm.processInfo(p.row),\"fa\":\"\",\"icon\":\"fas fa-info\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Edit this process in the process editor\",\"confirm\":\"\",\"fn\":() => _vm.showInEditor(p.row),\"fa\":\"\",\"icon\":\"fas fa-project-diagram\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this custom process from the server\",\"fn\":() => _vm.deleteProcess(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],attrs:{\"title\":\"Store the process in the process editor on the server\",\"fn\":_vm.addProcessFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-plus\"}},[_vm._v(\"Add\")]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],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!./CustomProcessPanel.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!./CustomProcessPanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CustomProcessPanel.vue?vue&type=template&id=98950a60\"\nimport script from \"./CustomProcessPanel.vue?vue&type=script&lang=js\"\nexport * from \"./CustomProcessPanel.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('DataTable',{ref:\"table\",staticClass:\"ServicePanel\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Show details about this service\",\"fn\":() => _vm.serviceInfo(p.row),\"fa\":\"\",\"icon\":\"fas fa-info\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsUpdate),expression:\"supportsUpdate\"}],attrs:{\"title\":\"Edit the metadata of this service\",\"fn\":() => _vm.editMetadata(p.row),\"fa\":\"\",\"icon\":\"fas fa-edit\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Edit the process of this service in the process editor\",\"confirm\":\"\",\"fn\":() => _vm.showInEditor(p.row),\"fa\":\"\",\"icon\":\"fas fa-project-diagram\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this service from the server\",\"fn\":() => _vm.deleteService(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(p.row.enabled && _vm.isMapServiceSupported(p.row.type)),expression:\"p.row.enabled && isMapServiceSupported(p.row.type)\"}],attrs:{\"title\":\"View this service\",\"fn\":() => _vm.viewService(p.row),\"fa\":\"\",\"icon\":\"fas fa-map\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(p.row.enabled && _vm.canShare),expression:\"p.row.enabled && canShare\"}],attrs:{\"title\":\"Export and/or share this service\",\"fn\":() => _vm.shareResults(p.row),\"fa\":\"\",\"icon\":\"fas fa-share\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDebug),expression:\"supportsDebug\"}],attrs:{\"title\":\"View the logs of this service\",\"fn\":() => _vm.showLogs(p.row),\"fa\":\"\",\"icon\":\"fas fa-bug\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],attrs:{\"title\":\"Create a new permanent service from the process in the process editor\",\"fn\":_vm.createServiceFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-plus\"}},[_vm._v(\"Create\")]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsQuickView),expression:\"supportsQuickView\"}],attrs:{\"title\":\"Quickly show the process on map without storing it permanently\",\"fn\":_vm.quickViewServiceFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-map\"}},[_vm._v(\"Show on Map\")]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],2)\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!./ServicePanel.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!./ServicePanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ServicePanel.vue?vue&type=template&id=5e571dea\"\nimport script from \"./ServicePanel.vue?vue&type=script&lang=js\"\nexport * from \"./ServicePanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./ServicePanel.vue?vue&type=style&index=0&id=5e571dea&prod&lang=css\"\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\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!./UserWorkspace.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!./UserWorkspace.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserWorkspace.vue?vue&type=template&id=4f36e82b\"\nimport script from \"./UserWorkspace.vue?vue&type=script&lang=js\"\nexport * from \"./UserWorkspace.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserWorkspace.vue?vue&type=style&index=0&id=4f36e82b&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',{staticClass:\"viewerContainer\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[_c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"viewerTabs\",\"allowTabRename\":_vm.editable},on:{\"empty\":_vm.onTabsEmpty},scopedSlots:_vm._u([{key:\"empty\",fn:function(){return [_vm._v(\"Nothing to show right now...\")]},proxy:true},{key:\"dynamic\",fn:function({ tab }){return [(_vm.logViewerIcons.includes(tab.icon))?_c('LogViewer',{attrs:{\"data\":tab.data},on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}}):(tab.data.component)?_c(tab.data.component,_vm._g(_vm._b({tag:\"component\",on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}},'component',tab.data.props,false),tab.data.events)):_vm._e(),_vm._v(\" \"),(tab.icon === 'fa-info')?_c('MetadataViewer',{attrs:{\"data\":tab.data},on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}}):(tab.icon === 'fa-map')?_c('MapViewer',{attrs:{\"data\":tab.data,\"removableLayers\":_vm.isCollectionPreview(tab.data)},on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}}):_c('div',{staticClass:\"unsupported\"},[_vm._v(\" Sorry, the viewer doesn't support showing this type of data. \"),(_vm.isFormat(tab.data))?[_vm._v(\" Instead, you can download the data by clicking the link below.\"),_c('br'),_c('a',{attrs:{\"href\":tab.data.getUrl(),\"download\":\"\"}},[_vm._v(\"Download\")])]:_vm._e()],2)]}}])})],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!./Viewer.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!./Viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Viewer.vue?vue&type=template&id=252caae8\"\nimport script from \"./Viewer.vue?vue&type=script&lang=js\"\nexport * from \"./Viewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./Viewer.vue?vue&type=style&index=0&id=252caae8&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\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!./IDE.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!./IDE.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IDE.vue?vue&type=template&id=3e5a971a\"\nimport script from \"./IDE.vue?vue&type=script&lang=js\"\nexport * from \"./IDE.vue?vue&type=script&lang=js\"\nimport style0 from \"./IDE.vue?vue&type=style&index=0&id=3e5a971a&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 { AbortController } from '@openeo/js-client';\nimport Utils from '../utils';\n\nexport class CancellableRequestError extends Error {\n constructor(message, title = null, cause = null, close = true, isError = true) {\n super(message, {cause});\n this.title = title;\n this.close = close;\n this.isError = isError;\n }\n}\n\nexport function showCancellableRequestError(vm, error) {\n if (error instanceof CancellableRequestError) {\n if (error.isError) {\n Utils.error(vm, error.message, error.title);\n }\n else {\n Utils.ok(vm, error.message, error.title);\n }\n }\n}\n\nlet runIds = {};\nexport async function cancellableRequest(vm, callback, entity) {\n if (!runIds[entity]) {\n runIds[entity] = 1;\n }\n else {\n runIds[entity]++;\n }\n\n const abortController = new AbortController();\n const snotifyConfig = Object.assign({}, vm.$config.snotifyDefaults, {\n timeout: 0,\n type: 'async',\n buttons: [{\n text: 'Cancel',\n action: () => {\n abortController.abort();\n }\n }]\n });\n\n let toast;\n const toastTitle = `${entity} #${runIds[entity]}`;\n try {\n const message = `Processing in progress, please wait...`;\n // Pass a promise to snotify that never resolves as we manually close the toast\n const endlessPromise = () => new Promise(() => {});\n toast = vm.$snotify.async(message, toastTitle, endlessPromise, snotifyConfig);\n\n await callback(abortController);\n } catch(error) {\n if (Utils.axios().isCancel(error)) {\n throw new CancellableRequestError(`Cancelled successfully`, toastTitle, error, false, false);\n }\n else if (typeof error.message === 'string' && Utils.isObject(error.response) && [400,500].includes(error.response.status)) {\n vm.broadcast('viewLogs', [{\n id: error.id,\n code: error.code,\n level: 'error',\n message: error.message,\n links: error.links || []\n }]);\n Utils.error(vm, `${entity} failed. Please see the logs for details.`, toastTitle);\n }\n else {\n throw new CancellableRequestError(error.message, toastTitle, error, false);\n }\n } finally {\n if (toast) {\n vm.$snotify.remove(toast.id, true);\n }\n }\n}","import { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar splitpanes_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __vue2_script$1 = {\n name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean },\n pushOtherPanes: { type: Boolean, default: true },\n dblClickSplitter: { type: Boolean, default: true },\n rtl: { type: Boolean, default: false },\n firstSplitter: { type: Boolean }\n },\n provide() {\n return {\n requestUpdate: this.requestUpdate,\n onPaneAdd: this.onPaneAdd,\n onPaneRemove: this.onPaneRemove,\n onPaneClick: this.onPaneClick\n };\n },\n data: () => ({\n container: null,\n ready: false,\n panes: [],\n touch: {\n mouseDown: false,\n dragging: false,\n activeSplitter: null\n },\n splitterTaps: {\n splitter: null,\n timeoutId: null\n }\n }),\n computed: {\n panesCount() {\n return this.panes.length;\n },\n indexedPanes() {\n return this.panes.reduce((obj, pane2) => (obj[pane2.id] = pane2) && obj, {});\n }\n },\n methods: {\n updatePaneComponents() {\n this.panes.forEach((pane2) => {\n pane2.update && pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n },\n bindEvents() {\n document.addEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.addEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"touchend\", this.onMouseUp);\n }\n },\n unbindEvents() {\n document.removeEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.removeEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"touchend\", this.onMouseUp);\n }\n },\n onMouseDown(event, splitterIndex) {\n this.bindEvents();\n this.touch.mouseDown = true;\n this.touch.activeSplitter = splitterIndex;\n },\n onMouseMove(event) {\n if (this.touch.mouseDown) {\n event.preventDefault();\n this.touch.dragging = true;\n this.calculatePanesSize(this.getCurrentMouseDrag(event));\n this.$emit(\"resize\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n },\n onMouseUp() {\n if (this.touch.dragging) {\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n this.touch.mouseDown = false;\n setTimeout(() => {\n this.touch.dragging = false;\n this.unbindEvents();\n }, 100);\n },\n onSplitterClick(event, splitterIndex) {\n if (\"ontouchstart\" in window) {\n event.preventDefault();\n if (this.dblClickSplitter) {\n if (this.splitterTaps.splitter === splitterIndex) {\n clearTimeout(this.splitterTaps.timeoutId);\n this.splitterTaps.timeoutId = null;\n this.onSplitterDblClick(event, splitterIndex);\n this.splitterTaps.splitter = null;\n } else {\n this.splitterTaps.splitter = splitterIndex;\n this.splitterTaps.timeoutId = setTimeout(() => {\n this.splitterTaps.splitter = null;\n }, 500);\n }\n }\n }\n if (!this.touch.dragging)\n this.$emit(\"splitter-click\", this.panes[splitterIndex]);\n },\n onSplitterDblClick(event, splitterIndex) {\n let totalMinSizes = 0;\n this.panes = this.panes.map((pane2, i) => {\n pane2.size = i === splitterIndex ? pane2.max : pane2.min;\n if (i !== splitterIndex)\n totalMinSizes += pane2.min;\n return pane2;\n });\n this.panes[splitterIndex].size -= totalMinSizes;\n this.$emit(\"pane-maximize\", this.panes[splitterIndex]);\n },\n onPaneClick(event, paneId) {\n this.$emit(\"pane-click\", this.indexedPanes[paneId]);\n },\n getCurrentMouseDrag(event) {\n const rect = this.container.getBoundingClientRect();\n const { clientX, clientY } = \"ontouchstart\" in window && event.touches ? event.touches[0] : event;\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n };\n },\n getCurrentDragPercentage(drag) {\n drag = drag[this.horizontal ? \"y\" : \"x\"];\n const containerSize = this.container[this.horizontal ? \"clientHeight\" : \"clientWidth\"];\n if (this.rtl && !this.horizontal)\n drag = containerSize - drag;\n return drag * 100 / containerSize;\n },\n calculatePanesSize(drag) {\n const splitterIndex = this.touch.activeSplitter;\n let sums = {\n prevPanesSize: this.sumPrevPanesSize(splitterIndex),\n nextPanesSize: this.sumNextPanesSize(splitterIndex),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const minDrag = 0 + (this.pushOtherPanes ? 0 : sums.prevPanesSize);\n const maxDrag = 100 - (this.pushOtherPanes ? 0 : sums.nextPanesSize);\n const dragPercentage = Math.max(Math.min(this.getCurrentDragPercentage(drag), maxDrag), minDrag);\n let panesToResize = [splitterIndex, splitterIndex + 1];\n let paneBefore = this.panes[panesToResize[0]] || null;\n let paneAfter = this.panes[panesToResize[1]] || null;\n const paneBeforeMaxReached = paneBefore.max < 100 && dragPercentage >= paneBefore.max + sums.prevPanesSize;\n const paneAfterMaxReached = paneAfter.max < 100 && dragPercentage <= 100 - (paneAfter.max + this.sumNextPanesSize(splitterIndex + 1));\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n if (paneBeforeMaxReached) {\n paneBefore.size = paneBefore.max;\n paneAfter.size = Math.max(100 - paneBefore.max - sums.prevPanesSize - sums.nextPanesSize, 0);\n } else {\n paneBefore.size = Math.max(100 - paneAfter.max - sums.prevPanesSize - this.sumNextPanesSize(splitterIndex + 1), 0);\n paneAfter.size = paneAfter.max;\n }\n return;\n }\n if (this.pushOtherPanes) {\n const vars = this.doPushOtherPanes(sums, dragPercentage);\n if (!vars)\n return;\n ({ sums, panesToResize } = vars);\n paneBefore = this.panes[panesToResize[0]] || null;\n paneAfter = this.panes[panesToResize[1]] || null;\n }\n if (paneBefore !== null) {\n paneBefore.size = Math.min(Math.max(dragPercentage - sums.prevPanesSize - sums.prevReachedMinPanes, paneBefore.min), paneBefore.max);\n }\n if (paneAfter !== null) {\n paneAfter.size = Math.min(Math.max(100 - dragPercentage - sums.nextPanesSize - sums.nextReachedMinPanes, paneAfter.min), paneAfter.max);\n }\n },\n doPushOtherPanes(sums, dragPercentage) {\n const splitterIndex = this.touch.activeSplitter;\n const panesToResize = [splitterIndex, splitterIndex + 1];\n if (dragPercentage < sums.prevPanesSize + this.panes[panesToResize[0]].min) {\n panesToResize[0] = this.findPrevExpandedPane(splitterIndex).index;\n sums.prevReachedMinPanes = 0;\n if (panesToResize[0] < splitterIndex) {\n this.panes.forEach((pane2, i) => {\n if (i > panesToResize[0] && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n }\n sums.prevPanesSize = this.sumPrevPanesSize(panesToResize[0]);\n if (panesToResize[0] === void 0) {\n sums.prevReachedMinPanes = 0;\n this.panes[0].size = this.panes[0].min;\n this.panes.forEach((pane2, i) => {\n if (i > 0 && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[1]].size = 100 - sums.prevReachedMinPanes - this.panes[0].min - sums.prevPanesSize - sums.nextPanesSize;\n return null;\n }\n }\n if (dragPercentage > 100 - sums.nextPanesSize - this.panes[panesToResize[1]].min) {\n panesToResize[1] = this.findNextExpandedPane(splitterIndex).index;\n sums.nextReachedMinPanes = 0;\n if (panesToResize[1] > splitterIndex + 1) {\n this.panes.forEach((pane2, i) => {\n if (i > splitterIndex && i < panesToResize[1]) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n }\n sums.nextPanesSize = this.sumNextPanesSize(panesToResize[1] - 1);\n if (panesToResize[1] === void 0) {\n sums.nextReachedMinPanes = 0;\n this.panes[this.panesCount - 1].size = this.panes[this.panesCount - 1].min;\n this.panes.forEach((pane2, i) => {\n if (i < this.panesCount - 1 && i >= splitterIndex + 1) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[0]].size = 100 - sums.prevPanesSize - sums.nextReachedMinPanes - this.panes[this.panesCount - 1].min - sums.nextPanesSize;\n return null;\n }\n }\n return { sums, panesToResize };\n },\n sumPrevPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i < splitterIndex ? pane2.size : 0), 0);\n },\n sumNextPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i > splitterIndex + 1 ? pane2.size : 0), 0);\n },\n findPrevExpandedPane(splitterIndex) {\n const pane2 = [...this.panes].reverse().find((p) => p.index < splitterIndex && p.size > p.min);\n return pane2 || {};\n },\n findNextExpandedPane(splitterIndex) {\n const pane2 = this.panes.find((p) => p.index > splitterIndex + 1 && p.size > p.min);\n return pane2 || {};\n },\n checkSplitpanesNodes() {\n const children = Array.from(this.container.children);\n children.forEach((child) => {\n const isPane = child.classList.contains(\"splitpanes__pane\");\n const isSplitter = child.classList.contains(\"splitpanes__splitter\");\n if (!isPane && !isSplitter) {\n child.parentNode.removeChild(child);\n console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\");\n return;\n }\n });\n },\n addSplitter(paneIndex, nextPaneNode, isVeryFirst = false) {\n const splitterIndex = paneIndex - 1;\n const elm = document.createElement(\"div\");\n elm.classList.add(\"splitpanes__splitter\");\n if (!isVeryFirst) {\n elm.onmousedown = (event) => this.onMouseDown(event, splitterIndex);\n if (typeof window !== \"undefined\" && \"ontouchstart\" in window) {\n elm.ontouchstart = (event) => this.onMouseDown(event, splitterIndex);\n }\n elm.onclick = (event) => this.onSplitterClick(event, splitterIndex + 1);\n }\n if (this.dblClickSplitter) {\n elm.ondblclick = (event) => this.onSplitterDblClick(event, splitterIndex + 1);\n }\n nextPaneNode.parentNode.insertBefore(elm, nextPaneNode);\n },\n removeSplitter(node) {\n node.onmousedown = void 0;\n node.onclick = void 0;\n node.ondblclick = void 0;\n node.parentNode.removeChild(node);\n },\n redoSplitters() {\n const children = Array.from(this.container.children);\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__splitter\"))\n this.removeSplitter(el);\n });\n let paneIndex = 0;\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__pane\")) {\n if (!paneIndex && this.firstSplitter)\n this.addSplitter(paneIndex, el, true);\n else if (paneIndex)\n this.addSplitter(paneIndex, el);\n paneIndex++;\n }\n });\n },\n requestUpdate(_a) {\n var _b = _a, { target } = _b, args = __objRest(_b, [\"target\"]);\n const pane2 = this.indexedPanes[target._uid];\n Object.entries(args).forEach(([key, value]) => pane2[key] = value);\n },\n onPaneAdd(pane2) {\n let index = -1;\n Array.from(pane2.$el.parentNode.children).some((el) => {\n if (el.className.includes(\"splitpanes__pane\"))\n index++;\n return el === pane2.$el;\n });\n const min = parseFloat(pane2.minSize);\n const max = parseFloat(pane2.maxSize);\n this.panes.splice(index, 0, {\n id: pane2._uid,\n index,\n min: isNaN(min) ? 0 : min,\n max: isNaN(max) ? 100 : max,\n size: pane2.size === null ? null : parseFloat(pane2.size),\n givenSize: pane2.size,\n update: pane2.update\n });\n this.panes.forEach((p, i) => p.index = i);\n if (this.ready) {\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ addedPane: this.panes[index] });\n this.$emit(\"pane-add\", { index, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n }\n },\n onPaneRemove(pane2) {\n const index = this.panes.findIndex((p) => p.id === pane2._uid);\n const removed = this.panes.splice(index, 1)[0];\n this.panes.forEach((p, i) => p.index = i);\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ removedPane: __spreadProps(__spreadValues({}, removed), { index }) });\n this.$emit(\"pane-remove\", { removed, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n },\n resetPaneSizes(changedPanes = {}) {\n if (!changedPanes.addedPane && !changedPanes.removedPane)\n this.initialPanesSizing();\n else if (this.panes.some((pane2) => pane2.givenSize !== null || pane2.min || pane2.max < 100))\n this.equalizeAfterAddOrRemove(changedPanes);\n else\n this.equalize();\n if (this.ready)\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n },\n equalize() {\n const equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n this.panes.forEach((pane2) => {\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n initialPanesSizing() {\n 100 / this.panesCount;\n let leftToAllocate = 100;\n let ungrowable = [];\n let unshrinkable = [];\n let definedSizes = 0;\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size !== null)\n definedSizes++;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n let leftToAllocate2 = 100;\n if (leftToAllocate > 0.1) {\n this.panes.forEach((pane2) => {\n if (pane2.size === null) {\n pane2.size = Math.max(Math.min(leftToAllocate / (this.panesCount - definedSizes), pane2.max), pane2.min);\n }\n leftToAllocate2 -= pane2.size;\n });\n if (leftToAllocate2 > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n }\n },\n equalizeAfterAddOrRemove({ addedPane, removedPane } = {}) {\n let equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n if (addedPane && addedPane.givenSize !== null) {\n equalSpace = (100 - addedPane.givenSize) / (this.panesCount - 1);\n }\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (Math.abs(leftToAllocate) < 0.1)\n return;\n this.panes.forEach((pane2) => {\n if (addedPane && addedPane.givenSize !== null && addedPane.id === pane2.id)\n ;\n else\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n readjustSizes(leftToAllocate, ungrowable, unshrinkable) {\n let equalSpaceToAllocate;\n if (leftToAllocate > 0)\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - ungrowable.length);\n else\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - unshrinkable.length);\n this.panes.forEach((pane2, i) => {\n if (leftToAllocate > 0 && !ungrowable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n } else if (!unshrinkable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n }\n pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n if (Math.abs(leftToAllocate) > 0.1) {\n this.$nextTick(() => {\n if (this.ready) {\n console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n }\n });\n }\n }\n },\n watch: {\n panes: {\n deep: true,\n immediate: false,\n handler() {\n this.updatePaneComponents();\n }\n },\n horizontal() {\n this.updatePaneComponents();\n },\n firstSplitter() {\n this.redoSplitters();\n },\n dblClickSplitter(enable) {\n const splitters = [...this.container.querySelectorAll(\".splitpanes__splitter\")];\n splitters.forEach((splitter, i) => {\n splitter.ondblclick = enable ? (event) => this.onSplitterDblClick(event, i) : void 0;\n });\n }\n },\n beforeDestroy() {\n this.ready = false;\n },\n mounted() {\n this.container = this.$refs.container;\n this.checkSplitpanesNodes();\n this.redoSplitters();\n this.resetPaneSizes();\n this.$emit(\"ready\");\n this.ready = true;\n },\n render(h) {\n return h(\"div\", {\n ref: \"container\",\n class: [\n \"splitpanes\",\n `splitpanes--${this.horizontal ? \"horizontal\" : \"vertical\"}`,\n {\n \"splitpanes--dragging\": this.touch.dragging\n }\n ]\n }, this.$slots.default);\n }\n};\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar splitpanes = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"splitpanes__pane\", style: _vm.style, on: { \"click\": function($event) {\n return _vm.onPaneClick($event, _vm._uid);\n } } }, [_vm._t(\"default\")], 2);\n};\nvar staticRenderFns = [];\nconst __vue2_script = {\n name: \"pane\",\n inject: [\"requestUpdate\", \"onPaneAdd\", \"onPaneRemove\", \"onPaneClick\"],\n props: {\n size: { type: [Number, String], default: null },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n data: () => ({\n style: {}\n }),\n mounted() {\n this.onPaneAdd(this);\n },\n beforeDestroy() {\n this.onPaneRemove(this);\n },\n methods: {\n update(style) {\n this.style = style;\n }\n },\n computed: {\n sizeNumber() {\n return this.size || this.size === 0 ? parseFloat(this.size) : null;\n },\n minSizeNumber() {\n return parseFloat(this.minSize);\n },\n maxSizeNumber() {\n return parseFloat(this.maxSize);\n }\n },\n watch: {\n sizeNumber(size) {\n this.requestUpdate({ target: this, size });\n },\n minSizeNumber(min) {\n this.requestUpdate({ target: this, min });\n },\n maxSizeNumber(max) {\n this.requestUpdate({ target: this, max });\n }\n }\n};\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar pane = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { pane as Pane, splitpanes as Splitpanes };\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.reduce');\n"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","render","_vm","this","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","key","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","computed","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","awesome","fa","title","disabled","update","loadingClasses","asyncState","icon","BButton","LoadingIcon","required","confirm","consistent","nativeTooltip","loading","classes","split","event","e","setTimeout","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","size","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","authenticated","isAuthenticated","appMode","simpleMode","showHelp","showWizard","showServerInfo","resized","splitpaneSizeH","hasProcess","splitpaneSizeV","contextTitle","updateEditor","saveSupported","saveProcess","exportJSON","exportCode","validateSupported","validateProcess","login","empty","showViewer","onViewerEmpty","userName","budget","hasStorage","storageUsedPercent","profileLink","hasProfile","userDetails","apply","settingsLink","logout","registerLink","passwordLink","serverUrl","disconnect","userLinks","link","userInfo","default_plan","paymentLink","formatMegabyte","storageUsed","storage","quota","style","friendlyLinks","serverLinks","capabilities","find","free","formatBudget","currency","profile","omitFromObject","user_id","Math","round","logoutUser","resetEditor","ok","window","pushState","num","gb","showJobs","onShow","onHide","showServices","showCustomProcesses","showFiles","dropZoneInfo","uploadFiles","showUploadDropHint","columns","next","supportsRead","downloadFile","row","supportsDelete","deleteFile","supportsCreate","active","uploadProgress","uploadErrored","uploadFadeOut","supportsList","plualizedName","reloadData","searchPlaceholder","filterValue","col","hide","thClasses","width","thTitle","enableSort","i","canEdit","stylable","onDblClick","showEditField","stopPropagation","saveEditField","refInFor","resetEditFieldEsc","formattedValue","hasData","view","columnCount","noDataMessage","AsyncButton","primaryKey","editField","sortState","direction","updateView","hasMore","includes","hasFilter","created","determinePrimaryKey","edit","action","$nextTick","focus","setNoData","config","headers","console","warn","computedValue","colId","a","b","sortFn","compareStringCaseInsensitive","toLowerCase","values","hasOwnProperty","filterable","toString","search","clearFilter","call","DataTypes","Formatters","singular","plural","loadInitially","DataTable","syncTimer","lastSyncTime","updateData","beforeDestroy","stopSyncTimer","nextPage","getTable","table","catch","startSyncTimer","setInterval","getSyncInterval","clearInterval","dataRefreshInterval","refreshElement","obj","old","updated","read","force","nextSyncTime","isUpdate","list","log","sync","WorkPanelMixin","SyncButton","path","sortByPath","modified","actions","uploadProgressPerFile","deep","reduce","finishAllUploads","ev","show","uploadFile","create","percent","$set","uploadUserFile","t","delete","showJobInfo","supportsEstimate","estimateJob","supportsUpdate","editMetadata","isJobInactive","showInEditor","deleteJob","supportsStart","queueJob","supportsStop","isJobActive","cancelJob","supportsDownloadResults","mayHaveResults","downloadResults","viewResults","canShare","supports","shareResults","supportsDebug","showLogs","createJobFromScript","executeProcess","getTitleField","getLogLevelField","getBillingPlanField","getBudgetField","WorkPanelMixinInstance","FieldMixin","watchers","jobUpdater","listen","replaceProcess","startAndQueueProcess","getResourceTitle","formatIdOrTitle","updateTitle","status","supportedBatchJobSharingServices","updatedJobs","job","isActiveJobStatusCode","executeWatchers","interval","log2","clearTimeout","updatedJob","options","createJob","computeResult","abortController","cancellableRequest","CancellableRequestError","showCancellableRequestError","jobCreated","buttons","normalizeToDefaultData","plan","log_level","supportsBillingPlans","supportsBilling","Promise","resolve","reject","getResultsAsStac","StacMigrate","getAll","estimate","Job","updateJob","oldJob","newTitle","queue","cancel","stac","assets","url","extra","context","processInfo","deleteProcess","addProcessFromScript","updatedProcess","getIdField","match","store","normalize","toJSON","UserProcess","updateMetadata","serviceInfo","deleteService","isMapServiceSupported","viewService","createServiceFromScript","supportsQuickView","quickViewServiceFromScript","createdQuickViews","toUpperCase","toggleEnabled","mapService","serviceTypes","service","hasRequiredParam","configuration","some","beforeLogoutListener","$options","listener","onExit","promises","updatedService","serviceCreated","getServiceTypeField","getEnabledField","getConfigField","createService","script","quiet","settings","oldService","updateService","Service","onClose","service2","FilePanel","JobPanel","CustomProcessPanel","ServicePanel","tab","$children","onTabsEmpty","logViewerIcons","onMounted","onOptionsChanged","_g","_b","isCollectionPreview","isFormat","getUrl","DataViewer","TableViewer","ImageViewer","LogViewer","MapViewer","MetadataViewer","showSyncResults","showJobResults","showWebService","closeTabWithLogs","addToMapChooser","showAppMode","tabTitleCounter","tabIdCounter","nextTabId","resultType","resultUrl","expires","formatTimestamp","attributes","preview","Format","describeCollection","bbox","extentToBBox","extent","spatial","layers","dimensions","showMapViewer","resource","defaultTitle","selectTab","faIcon","getTab","addTab","closeTab","makeTitle","formatRegistry","createFilesFromBlob","forEach","download","finally","logs","showMetadata","createFilesFromSTAC","confirmOpenAll","showMetadataViewer","reUseExistingTab","Error","asset","openMapTabs","maps","createFileFromAsset","loadData","addGeoTiff","tabId","getContext","callChildFunction","setViewerOptions","hasNone","uniqueTitle","unique","Editor","Logo","Viewer","UserMenu","UserWorkspace","Splitpanes","Pane","resizeListener","userInfoUpdater","supportsJobUpdate","supportsServiceUpdate","supportsUserProcessUpdate","showDataForm","addEventListener","describeAccount","setCollectionPreview","openWizard","openWizardProps","removeEventListener","discoveryCompleted","filename","saveToFile","stringify","preselectUsecase","errors","level","setContext","setProcess","editor","closeCallback","field","closed","constructor","cause","close","isError","super","vm","runIds","async","entity","AbortController","snotifyConfig","snotifyDefaults","timeout","abort","toast","toastTitle","endlessPromise","$snotify","axios","isCancel","response","code","remove","ProcessImpl","BaseProcess","exporter","execute","generateFunction","Exporter","ProcessGraph","registry","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","mapObject","makeString","str","makeNumber","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","pop","getParent","prefix","addCode","repeat","lines","trim","line","count","getServerUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","argList","v","strongOps","weakOps","__defProp","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","prototype","__propIsEnum","propertyIsEnumerable","__defNormalProp","enumerable","configurable","writable","__spreadValues","prop","__spreadProps","__objRest","source","exclude","indexOf","normalizeComponent","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","h","existing","exports","__vue2_script$1","horizontal","pushOtherPanes","dblClickSplitter","rtl","firstSplitter","provide","requestUpdate","onPaneAdd","onPaneRemove","onPaneClick","container","ready","panes","touch","mouseDown","dragging","activeSplitter","splitterTaps","splitter","timeoutId","panesCount","indexedPanes","pane2","updatePaneComponents","bindEvents","document","onMouseMove","passive","onMouseUp","unbindEvents","onMouseDown","splitterIndex","calculatePanesSize","getCurrentMouseDrag","min","max","onSplitterClick","onSplitterDblClick","totalMinSizes","paneId","rect","getBoundingClientRect","clientX","clientY","touches","left","top","getCurrentDragPercentage","drag","containerSize","sums","prevPanesSize","sumPrevPanesSize","nextPanesSize","sumNextPanesSize","prevReachedMinPanes","nextReachedMinPanes","minDrag","maxDrag","dragPercentage","panesToResize","paneBefore","paneAfter","paneBeforeMaxReached","paneAfterMaxReached","vars","doPushOtherPanes","findPrevExpandedPane","findNextExpandedPane","total","reverse","checkSplitpanesNodes","children","from","child","isPane","classList","contains","isSplitter","parentNode","removeChild","addSplitter","paneIndex","nextPaneNode","isVeryFirst","elm","createElement","onmousedown","ontouchstart","onclick","ondblclick","insertBefore","removeSplitter","redoSplitters","el","className","_a","_uid","entries","parseFloat","minSize","maxSize","splice","isNaN","givenSize","resetPaneSizes","addedPane","pane3","removed","removedPane","changedPanes","equalizeAfterAddOrRemove","equalize","initialPanesSizing","equalSpace","leftToAllocate","ungrowable","unshrinkable","readjustSizes","definedSizes","leftToAllocate2","abs","equalSpaceToAllocate","newPaneSize","allocated","enable","splitters","querySelectorAll","$slots","__vue2_render","__vue2_staticRenderFns","__cssModules$1","__component__$1","__vue2_injectStyles$1","o","splitpanes","_h","$createElement","__vue2_script","inject","sizeNumber","minSizeNumber","maxSizeNumber","__cssModules","__component__","__vue2_injectStyles","pane","$","iterate","aCallable","anObject","getIteratorDirect","$TypeError","TypeError","proto","real","reducer","record","noInitial","accumulator","counter","IS_RECORD"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/552.03d86df0.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/FederationMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?3e4c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue?934d","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Collections.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?0743","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue?9759","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/FileFormats.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?0790","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue?bab8","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Processes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?98bf","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue?3182","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/SearchBox.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?22ca","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue?e79a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/UdfRuntimes.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/AsyncButton.vue?358a","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/AsyncButton.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/AsyncButton.vue?b038","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/AsyncButton.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/src/components/DiscoveryToolbar.vue","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?f7f6","webpack://@openeo/web-editor/./src/components/DiscoveryToolbar.vue?4602","webpack://@openeo/web-editor/./src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue","webpack://@openeo/web-editor/src/components/VisualEditor.vue","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?8d1e","webpack://@openeo/web-editor/./src/components/VisualEditor.vue?7fc9","webpack://@openeo/web-editor/src/components/Editor.vue","webpack://@openeo/web-editor/./src/components/Editor.vue?c738","webpack://@openeo/web-editor/./src/components/Editor.vue?87e1","webpack://@openeo/web-editor/./src/components/IDE.vue","webpack://@openeo/web-editor/./src/components/UserMenu.vue","webpack://@openeo/web-editor/src/components/UserMenu.vue","webpack://@openeo/web-editor/./src/components/UserMenu.vue?2d6a","webpack://@openeo/web-editor/./src/components/UserMenu.vue?bef9","webpack://@openeo/web-editor/./src/components/UserWorkspace.vue","webpack://@openeo/web-editor/./src/components/FilePanel.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/DataTable.vue?4b1c","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/DataTable.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/DataTable.vue?fc7a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/DataTable.vue","webpack://@openeo/web-editor/./src/components/WorkPanelMixin.js","webpack://@openeo/web-editor/./src/components/SyncButton.vue","webpack://@openeo/web-editor/src/components/SyncButton.vue","webpack://@openeo/web-editor/./src/components/SyncButton.vue?e941","webpack://@openeo/web-editor/./src/components/SyncButton.vue?1272","webpack://@openeo/web-editor/src/components/FilePanel.vue","webpack://@openeo/web-editor/./src/components/FilePanel.vue?6c4a","webpack://@openeo/web-editor/./src/components/FilePanel.vue?8f48","webpack://@openeo/web-editor/./src/components/JobPanel.vue","webpack://@openeo/web-editor/./src/components/FieldMixin.js","webpack://@openeo/web-editor/src/components/JobPanel.vue","webpack://@openeo/web-editor/./src/components/JobPanel.vue?b003","webpack://@openeo/web-editor/./src/components/JobPanel.vue?0eb9","webpack://@openeo/web-editor/./src/components/CustomProcessPanel.vue","webpack://@openeo/web-editor/src/components/CustomProcessPanel.vue","webpack://@openeo/web-editor/./src/components/CustomProcessPanel.vue?5bb8","webpack://@openeo/web-editor/./src/components/CustomProcessPanel.vue?0871","webpack://@openeo/web-editor/./src/components/ServicePanel.vue","webpack://@openeo/web-editor/src/components/ServicePanel.vue","webpack://@openeo/web-editor/./src/components/ServicePanel.vue?2fc5","webpack://@openeo/web-editor/./src/components/ServicePanel.vue?9da8","webpack://@openeo/web-editor/src/components/UserWorkspace.vue","webpack://@openeo/web-editor/./src/components/UserWorkspace.vue?3da1","webpack://@openeo/web-editor/./src/components/UserWorkspace.vue?daff","webpack://@openeo/web-editor/./src/components/Viewer.vue","webpack://@openeo/web-editor/src/components/Viewer.vue","webpack://@openeo/web-editor/./src/components/Viewer.vue?85cf","webpack://@openeo/web-editor/./src/components/Viewer.vue?7166","webpack://@openeo/web-editor/src/components/IDE.vue","webpack://@openeo/web-editor/./src/components/IDE.vue?eae2","webpack://@openeo/web-editor/./src/components/IDE.vue?7c7b","webpack://@openeo/web-editor/./src/components/cancellableRequest.js","webpack://@openeo/web-editor/./src/export/exporter.js","webpack://@openeo/web-editor/./src/export/javascript.js","webpack://@openeo/web-editor/./node_modules/splitpanes/dist/splitpanes.es.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/es.iterator.reduce.js","webpack://@openeo/web-editor/./node_modules/core-js/modules/esnext.iterator.reduce.js"],"sourcesContent":["export default {\n\tcomponents: {\n\t\tFederationNotice: () => import('./FederationNotice.vue'),\n\t\tFederationMissingNotice: () => import('../FederationMissingNotice.vue')\n\t},\n\tprops: {\n\t\tfederation: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component collections\"},[_c('SearchableList',{attrs:{\"data\":_vm.collections,\"identifierKey\":\"id\",\"summaryKey\":\"title\",\"keywordsKey\":\"keywords\",\"showKeywords\":_vm.showKeywords,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"content-start\",fn:function(scope){return [_vm._t(\"content-start\",null,null,scope),(_vm.missing)?_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}}):_vm._e()]}},{key:\"after-search-box\",fn:function(scope){return [_vm._t(\"after-search-box\",null,null,scope)]}},{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Collection',{attrs:{\"data\":slot.item,\"mapOptions\":_vm.mapOptions,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"collection-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"collection-end\",null,null,scope)]}},{key:\"spatial-extents\",fn:function(scope){return [_vm._t(\"collection-spatial-extents\",null,null,scope)]}},{key:\"temporal-extents\",fn:function(scope){return [_vm._t(\"collection-temporal-extents\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Collections.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Collections.vue?vue&type=template&id=353b5f8c\"\nimport script from \"./Collections.vue?vue&type=script&lang=js\"\nexport * from \"./Collections.vue?vue&type=script&lang=js\"\nimport style0 from \"./Collections.vue?vue&type=style&index=0&id=353b5f8c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component file-formats\"},[_c('SearchableList',{attrs:{\"data\":_vm.fileFormats,\"summaryKey\":\"title\",\"keywordsKey\":\"gis_data_types\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.item.name))]),_c('ul',{staticClass:\"badges small inline\"},[(_vm.showAll && slot.item.type === 'input')?_c('li',{staticClass:\"badge option1\"},[_vm._v(\"Import\")]):_vm._e(),(_vm.showAll && slot.item.type === 'output')?_c('li',{staticClass:\"badge option2\"},[_vm._v(\"Export\")]):_vm._e(),(Array.isArray(slot.item.gis_data_types))?_vm._l((slot.item.gis_data_types),function(type){return _c('li',{key:type,staticClass:\"badge gis\"},[_vm._v(_vm._s(type))])}):_vm._e()],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('FileFormat',{attrs:{\"id\":slot.summary.identifier,\"format\":slot.item,\"type\":slot.item.type,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"file-format-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"file-format-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileFormats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileFormats.vue?vue&type=template&id=ddfadb90\"\nimport script from \"./FileFormats.vue?vue&type=script&lang=js\"\nexport * from \"./FileFormats.vue?vue&type=script&lang=js\"\nimport style0 from \"./FileFormats.vue?vue&type=style&index=0&id=ddfadb90&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component processes\"},[_c('SearchableList',{attrs:{\"data\":_vm.processes,\"keywordsKey\":\"categories\",\"showKeywords\":_vm.showCategories,\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed,\"loadAdditionalData\":_vm.loadAdditionalData,\"allowCopy\":\"\"},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},(_vm.missing)?{key:\"content-start\",fn:function(){return [_c('FederationMissingNotice',{attrs:{\"missing\":_vm.missing,\"federation\":_vm.federation}})]},proxy:true}:null,{key:\"summary\",fn:function(scope){return [_vm._t(\"summary\",null,null,scope)]}},{key:\"details\",fn:function(slot){return [_c('Process',{attrs:{\"process\":slot.item,\"provideDownload\":_vm.provideDownload,\"processUrl\":_vm.processUrl,\"showGraph\":_vm.showGraph,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"before-description\",fn:function(scope){return [_vm._t(\"process-before-description\",null,null,scope)]}},{key:\"end\",fn:function(scope){return [_vm._t(\"process-end\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Processes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Processes.vue?vue&type=template&id=56bb3e34\"\nimport script from \"./Processes.vue?vue&type=script&lang=js\"\nexport * from \"./Processes.vue?vue&type=script&lang=js\"\nimport style0 from \"./Processes.vue?vue&type=style&index=0&id=56bb3e34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component search-box\",class:{compact: _vm.compact}},[_c('span',{staticClass:\"icon\"},[_vm._v(\"🔎\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.placeholder,\"minlength\":_vm.minLength,\"title\":_vm.searchHint},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchTerm=$event.target.value}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchBox.vue?vue&type=template&id=84942a5a\"\nimport script from \"./SearchBox.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchBox.vue?vue&type=style&index=0&id=84942a5a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"vue-component udf-runtimes\"},[_c('SearchableList',{attrs:{\"data\":_vm.runtimes,\"summaryKey\":\"title\",\"showSummaryOnExpand\":false,\"externalSearchTerm\":_vm.searchTerm,\"externalHideDeprecated\":_vm.hideDeprecated,\"deprecatedFilter\":_vm.deprecatedFilter,\"externalHideExperimental\":_vm.hideExperimental,\"experimentalFilter\":_vm.experimentalFilter,\"sort\":_vm.sort,\"offerDetails\":_vm.offerDetails,\"heading\":_vm.heading,\"collapsed\":_vm.collapsed},on:{\"detailsToggled\":_vm.detailsToggled},scopedSlots:_vm._u([{key:\"heading\",fn:function(scope){return [_vm._t(\"heading\",null,null,scope)]}},{key:\"summary\",fn:function(slot){return [_vm._t(\"summary\",function(){return [_c('strong',{staticClass:\"inline\"},[_vm._v(_vm._s(slot.summary.identifier))]),_c('ul',{staticClass:\"badges small inline\"},[(slot.item.type === 'docker' || (slot.item.docker && slot.item.tags))?[_c('li',{staticClass:\"badge docker\"},[_vm._v(\"Docker\")]),_vm._l((slot.item.tags),function(tag){return _c('li',{key:tag,staticClass:\"badge version\",class:{default: tag === slot.item.default}},[_vm._v(_vm._s(tag))])})]:_vm._l((slot.item.versions),function(lang,version){return _c('li',{key:version,staticClass:\"badge version\",class:{default: version === slot.item.default}},[_vm._v(_vm._s(version))])})],2),_c('br'),_c('small',[_vm._v(_vm._s(slot.summary.summary))])]},null,slot)]}},{key:\"details\",fn:function(slot){return [_c('UdfRuntime',{attrs:{\"id\":slot.summary.identifier,\"runtime\":slot.item,\"federation\":_vm.federation},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"hidden\"})]},proxy:true},{key:\"badges\",fn:function(scope){return [_vm._t(\"udf-runtime-badges\",null,null,scope)]}},{key:\"before-description\",fn:function(scope){return [_vm._t(\"udf-runtime-before-description\",null,null,scope)]}}],null,true)})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UdfRuntimes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UdfRuntimes.vue?vue&type=template&id=42a4211a\"\nimport script from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nexport * from \"./UdfRuntimes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UdfRuntimes.vue?vue&type=style&index=0&id=42a4211a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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('BButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fn),expression:\"fn\"}],staticClass:\"async-button\",class:{awesome: _vm.fa},attrs:{\"type\":\"button\",\"title\":_vm.title,\"disabled\":_vm.disabled},on:{\"click\":_vm.update}},[_c('span',{staticClass:\"button-content\"},[(_vm.loading)?_c('span',{staticClass:\"icon loading\"},[(_vm.fa)?_c('i',{class:_vm.loadingClasses}):_c('LoadingIcon',{attrs:{\"rotate\":\"\"}})],1):(_vm.asyncState === true)?_c('span',{staticClass:\"icon success\"},[(_vm.fa)?_c('i',{staticClass:\"fas fa-check\"}):_c('span',[_vm._v(\"✔️\")])]):(_vm.asyncState === false)?_c('span',{staticClass:\"icon error\"},[(_vm.fa)?_c('i',{staticClass:\"fas fa-times\"}):_c('span',[_vm._v(\"❌\")])]):_c('span',{staticClass:\"icon default\"},[(_vm.fa)?_c('i',{class:_vm.icon}):(_vm.icon)?_c('span',[_vm._v(_vm._s(_vm.icon))]):_c('LoadingIcon')],1),_c('span',{staticClass:\"text\"},[_vm._t(\"default\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AsyncButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AsyncButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AsyncButton.vue?vue&type=template&id=ec4b291e&scoped=true\"\nimport script from \"./AsyncButton.vue?vue&type=script&lang=js\"\nexport * from \"./AsyncButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./AsyncButton.vue?vue&type=style&index=0&id=ec4b291e&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ec4b291e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"discovery-toolbar\"},[_c('SearchBox',{model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_c('div',{staticClass:\"filters\"},[_c('span',{staticClass:\"label\"},[_vm._v(\" Show \")]),_c('label',{staticClass:\"show-deprecated\",attrs:{\"title\":\"Show deprecated elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showDeprecated),expression:\"showDeprecated\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showDeprecated)?_vm._i(_vm.showDeprecated,null)>-1:(_vm.showDeprecated)},on:{\"change\":function($event){var $$a=_vm.showDeprecated,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showDeprecated=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showDeprecated=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showDeprecated=$$c}}}}),_vm._v(\" deprecated \")]),_c('label',{staticClass:\"show-experimental\",attrs:{\"title\":\"Show experimental elements?\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showExperimental),expression:\"showExperimental\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.showExperimental)?_vm._i(_vm.showExperimental,null)>-1:(_vm.showExperimental)},on:{\"change\":function($event){var $$a=_vm.showExperimental,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showExperimental=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showExperimental=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showExperimental=$$c}}}}),_vm._v(\" experimental \")])]),_c('div',{staticClass:\"search-results\"},[_c('Collections',{staticClass:\"category\",attrs:{\"collections\":_vm.collections,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsLoadCollection},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'collection', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showCollectionInfo(item.id)}}},[_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()]),(_vm.hasCollectionPreview(item))?_c('button',{staticClass:\"discovery-button\",attrs:{\"type\":\"button\",\"title\":\"View on map\"},on:{\"click\":function($event){return _vm.showCollectionPreview(item)}}},[_c('i',{staticClass:\"fas fa-map\"})]):_vm._e()])]}}])}),_c('Processes',{staticClass:\"category\",attrs:{\"processes\":_vm.allProcesses,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":\"true\"},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'process', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showProcess(item)}}},[(item.namespace === 'user')?_c('i',{staticClass:\"custom-process fas fa-xs fa-sitemap\",attrs:{\"title\":\"Custom Process\"}}):(item.namespace !== 'backend')?_c('i',{staticClass:\"custom-process fas fa-xs fa-tag\",attrs:{\"title\":`Process from namespace '${item.namespace}'`}}):_vm._e(),_c('strong',{attrs:{\"title\":item.id}},[_vm._v(_vm._s(item.id))]),(item.summary)?_c('small',{attrs:{\"title\":item.summary}},[_vm._v(_vm._s(item.summary))]):_vm._e()])])]}}])}),(_vm.hasUdfRuntimes)?_c('UdfRuntimes',{staticClass:\"category\",attrs:{\"runtimes\":_vm.udfRuntimes,\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ summary, item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsRunUdf},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'udf', {runtime: summary.identifier, version: item.default})}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showUdfInfo(summary.identifier, item)}}},[_c('strong',{attrs:{\"title\":summary.identifier}},[_vm._v(_vm._s(summary.identifier)+\" (\"+_vm._s(item.default)+\")\")]),(summary.summary)?_c('small',{attrs:{\"title\":summary.summary}},[_vm._v(_vm._s(summary.summary))]):_vm._e()])])]}}],null,false,92063951)}):_vm._e(),_c('FileFormats',{staticClass:\"category\",attrs:{\"formats\":_vm.fileFormats,\"showInput\":false,\"heading\":\"Export File Formats\",\"searchTerm\":_vm.searchTerm,\"offerDetails\":false,\"collapsed\":_vm.collapsed,\"hideDeprecated\":!_vm.showDeprecated,\"hideExperimental\":!_vm.showExperimental},scopedSlots:_vm._u([{key:\"summary\",fn:function({ item }){return [_c('div',{staticClass:\"discovery-entity\",attrs:{\"draggable\":_vm.supportsSaveResult},on:{\"dragstart\":function($event){return _vm.onDrag($event, 'fileformat', item)}}},[_c('div',{staticClass:\"discovery-info\",on:{\"click\":function($event){return _vm.showFileFormatInfo(item)}}},[_c('strong',{attrs:{\"title\":item.name}},[_vm._v(_vm._s(item.name))]),(item.title)?_c('small',{attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.title))]):_vm._e()])])]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./DiscoveryToolbar.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!./DiscoveryToolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DiscoveryToolbar.vue?vue&type=template&id=aacdf426&scoped=true\"\nimport script from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nexport * from \"./DiscoveryToolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./DiscoveryToolbar.vue?vue&type=style&index=0&id=aacdf426&prod&lang=css\"\nimport style1 from \"./DiscoveryToolbar.vue?vue&type=style&index=1&id=aacdf426&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 \"aacdf426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",staticClass:\"editor\",attrs:{\"id\":\"customProcessContent\",\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual Model\",\"icon\":\"fa-project-diagram\",\"selected\":true,\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showModel}},[_c('VisualEditor',{ref:\"graphBuilder\",staticClass:\"visualEditorTab\",attrs:{\"editable\":_vm.editable,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.modelValue,\"title\":_vm.title,\"id\":_vm.id + '_visual',\"showDiscoveryToolbar\":_vm.showDiscoveryToolbar,\"showIntro\":_vm.showIntro,\"defaultValue\":_vm.defaultValue},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\",\"allowShow\":_vm.canSwitchView},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":_vm.editable,\"value\":_vm.codeValue,\"title\":_vm.title,\"id\":_vm.id + '_text',\"language\":\"processgraph\"},on:{\"input\":_vm.commit,\"error\":_vm.onError},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_vm._t(\"file-toolbar\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"visualEditor\",staticClass:\"visualEditor\"},[_c('div',{staticClass:\"sourceHeader\"},[(_vm.title)?_c('strong',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:\"sourceToolbar\"},[(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"title\":\"Start from scratch - Clears the current script\"},on:{\"click\":_vm.confirmClear}},[_c('i',{staticClass:\"fas fa-file\"})]),_vm._t(\"file-toolbar\")],2):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[_c('BButton',{attrs:{\"disabled\":!_vm.canUndo,\"title\":\"Revert the last change\"},on:{\"click\":function($event){return _vm.$refs.blocks.undo()}}},[_c('i',{staticClass:\"fas fa-undo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.canRedo,\"title\":\"Redo the last reverted change\"},on:{\"click\":function($event){return _vm.$refs.blocks.redo()}}},[_c('i',{staticClass:\"fas fa-redo-alt\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasSelection,\"title\":\"Delete the selected elements from the process\"},on:{\"click\":function($event){return _vm.$refs.blocks.deleteSelected()}}},[_c('i',{staticClass:\"fas fa-trash\"})])],1):_vm._e(),(_vm.editable)?_c('span',{staticClass:\"sepr\"},[(!_vm.parent)?_c('BButton',{attrs:{\"title\":\"Edit the process metadata\"},on:{\"click\":() => _vm.editProcess(_vm.value)}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),_c('BButton',{attrs:{\"title\":\"Add a parameter to the process\"},on:{\"click\":_vm.addParameter}},[_c('i',{staticClass:\"fas fa-parking\"})]),(_vm.supportsMath)?_c('BButton',{class:{highlightFormula: _vm.isMath},attrs:{\"title\":\"Insert or edit a formula as part of the process\"},on:{\"click\":_vm.showExpressionModal}},[_c('i',{staticClass:\"fas fa-square-root-alt\"})]):_vm._e()],1):_vm._e(),_c('BButton',{class:{compactMode: _vm.compactMode},attrs:{\"title\":_vm.compactMode ? 'Show the process more compact and less detailed' : 'Shows the process less compact and more detailed'},on:{\"click\":function($event){return _vm.$refs.blocks.toggleCompact()}}},[_c('i',{staticClass:\"fas fa-compress-arrows-alt\"})]),_c('BButton',{attrs:{\"title\":\"Scale the view to match the available space\"},on:{\"click\":function($event){return _vm.$refs.blocks.perfectScale()}}},[_c('i',{staticClass:\"fas fa-arrows-alt\"})]),_c('FullscreenButton',{attrs:{\"element\":() => this.$refs.visualEditor},on:{\"changed\":enabled => {this.$refs.blocks.perfectScale(); _vm.isFullScreen = enabled}}}),_vm._t(\"toolbar\")],2)]),_c('div',{staticClass:\"editorSplitter\"},[((_vm.showDiscoveryToolbar || _vm.isFullScreen) && _vm.editable)?_c('DiscoveryToolbar',{staticClass:\"discoveryToolbar\",attrs:{\"onAddProcess\":_vm.insertProcess}}):_vm._e(),_c('div',{staticClass:\"graphBuilder\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[(_vm.showHelpOverlay)?_c('div',{staticClass:\"model-overlay\"},[_c('h2',[_vm._v(\"Welcome!\")]),_c('p',[_vm._v(\" What you are seeing in this area is the visual model builder. You can start building your model by dragging collections, processes etc. from the left area and dropping them here. \")]),_c('p',[_vm._v(\" Alternatively, you can also import existing processes into the model builder: \"),_c('ul',[(_vm.canPaste)?_c('li',[_vm._v(\"Paste the JSON from your clipboard by clicking \"),_c('BButton',{attrs:{\"title\":\"Paste a process from your clipboard\"},on:{\"click\":_vm.paste}},[_c('i',{staticClass:\"fas fa-paste\"})]),_vm._v(\" or use \"),_c('kbd',[_vm._v(\"CTRL\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (Windows, Linux) or \"),_c('kbd',[_vm._v(\"⌘\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"V\")]),_vm._v(\" (MacOS) when the model builder is in focus.\")],1):_vm._e(),_c('li',[_vm._v(\"Drag and drop a JSON file from your computer\")]),_c('li',[_vm._v(\"Import a JSON file from your computer or another source such as the internet by clicking \"),_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})])],1)])]),_vm._m(0),_c('p',[_vm._v(\"Once you start interacting with this area, this message will disappear.\")])]):_vm._e(),_c('ModelBuilder',{ref:\"blocks\",attrs:{\"editable\":_vm.editable,\"id\":_vm.id,\"processes\":_vm.processes,\"collections\":_vm.collections,\"parent\":_vm.parent,\"parentSchema\":_vm.parentSchema,\"value\":_vm.value},on:{\"input\":_vm.commit,\"error\":_vm.errorHandler,\"showProcess\":(id, namespace) => _vm.broadcast('showProcess', {id, namespace}),\"showCollection\":id => _vm.broadcast('showCollection', id),\"showParameter\":(param, origin) => _vm.broadcast('showProcessParameter', param, origin),\"editParameter\":_vm.editParameter,\"editArguments\":_vm.openArgumentEditor,\"compactMode\":compact => this.compactMode = compact,\"selectionChanged\":_vm.selectionChanged,\"historyChanged\":_vm.historyChanged}})],1)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',[_vm._v(\" You can also import the processes from the Python and R client. You need to export your process to JSON first: \"),_c('ul',[_c('li',[_vm._v(\"In Python use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-python-client/cookbook/tricks.html#process-graph-export\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"print(result.to_json())\")])])]),_c('li',[_vm._v(\"In R use \"),_c('a',{attrs:{\"href\":\"https://open-eo.github.io/openeo-r-client/reference/index.html\",\"target\":\"_blank\"}},[_c('code',[_vm._v(\"toJSON(as(result, \\\"Process\\\"))\")])])])]),_vm._v(\" In both cases, \"),_c('code',[_vm._v(\"result\")]),_vm._v(\" is your last return value from a data cube process such as \"),_c('code',[_vm._v(\"save_result\")]),_vm._v(\". For more details, please read the corresponding chapter in the \"),_c('a',{attrs:{\"href\":\"https://openeo.org/documentation/1.0/cookbook/#output-process-as-json\",\"target\":\"_blank\"}},[_vm._v(\"openEO cookbook\")]),_vm._v(\". \")])\n}]\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!./VisualEditor.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!./VisualEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualEditor.vue?vue&type=template&id=52a0b403\"\nimport script from \"./VisualEditor.vue?vue&type=script&lang=js\"\nexport * from \"./VisualEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisualEditor.vue?vue&type=style&index=0&id=52a0b403&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\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!./Editor.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!./Editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=35752957\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&id=35752957&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',{attrs:{\"id\":\"wrapper\"}},[_c('div',{class:{authenticated: _vm.isAuthenticated, appMode: Boolean(_vm.appMode)},attrs:{\"id\":\"ide\"}},[_c('header',{staticClass:\"navbar\"},[_c('Logo'),_c('ul',{attrs:{\"id\":\"menu\"}},[(!_vm.simpleMode)?_c('li',[_c('div',{staticClass:\"menuItem\",attrs:{\"title\":\"Start a guided tour\"},on:{\"click\":_vm.showHelp}},[_c('i',{staticClass:\"fas fa-question-circle fa-fw\"}),_vm._v(\"Help\")])]):_vm._e(),(!_vm.simpleMode)?_c('li',[_c('div',{staticClass:\"menuItem\",attrs:{\"title\":\"Start the process wizard\"},on:{\"click\":function($event){return _vm.showWizard()}}},[_c('i',{staticClass:\"fas fa-magic fa-fw\"}),_vm._v(\"Wizard\")])]):_vm._e(),_c('li',[_c('div',{staticClass:\"menuItem\",attrs:{\"title\":\"Get server information\"},on:{\"click\":_vm.showServerInfo}},[_c('i',{staticClass:\"fas fa-info-circle fa-fw\"}),_vm._v(\"Server\")])]),_c('li',[_c('UserMenu')],1)])],1),_c('Splitpanes',{staticClass:\"default-theme\",on:{\"resize\":_vm.resized,\"pane-maximize\":_vm.resized}},[(!_vm.simpleMode)?_c('Pane',{attrs:{\"id\":\"discovery\",\"size\":_vm.splitpaneSizeH[0]}},[_c('DiscoveryToolbar',{staticClass:\"toolbar tour-ide-discovery\",attrs:{\"onAddProcess\":_vm.insertProcess,\"collectionPreview\":true,\"persist\":true}})],1):_vm._e(),(!_vm.simpleMode || _vm.hasProcess)?_c('Pane',{attrs:{\"id\":\"workspace\",\"size\":_vm.splitpaneSizeH[1]}},[_c('Splitpanes',{staticClass:\"default-theme\",attrs:{\"horizontal\":\"\"},on:{\"resize\":_vm.resized,\"pane-maximize\":_vm.resized}},[_c('Pane',{attrs:{\"id\":\"editor\",\"size\":_vm.splitpaneSizeV[0]}},[_c('Editor',{ref:\"editor\",staticClass:\"mainEditor tour-ide-editor\",attrs:{\"id\":\"main\",\"value\":_vm.process,\"title\":_vm.contextTitle,\"showIntro\":\"\"},on:{\"input\":_vm.updateEditor},scopedSlots:_vm._u([{key:\"file-toolbar\",fn:function(){return [_c('BButton',{attrs:{\"title\":\"Import a process from an external source\"},on:{\"click\":_vm.importProcess}},[_c('i',{staticClass:\"fas fa-cloud-download-alt\"})]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.saveSupported),expression:\"saveSupported\"}],attrs:{\"disabled\":!_vm.hasProcess,\"fn\":_vm.saveProcess,\"title\":'Save this process to ' + _vm.contextTitle,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-save\"}}),_c('BButton',{attrs:{\"disabled\":!_vm.hasProcess,\"title\":\"Download this process as a JSON file\"},on:{\"click\":_vm.exportJSON}},[_c('i',{staticClass:\"fas fa-file-download\"})]),_c('BButton',{attrs:{\"disabled\":!_vm.hasProcess,\"title\":\"Export this process into another programming language\"},on:{\"click\":_vm.exportCode}},[_c('i',{staticClass:\"fas fa-file-export\"})]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.validateSupported),expression:\"validateSupported\"}],attrs:{\"disabled\":!_vm.hasProcess,\"fn\":_vm.validateProcess,\"title\":\"Validate this process directly on the server\",\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-tasks\"}})]},proxy:true}],null,false,1996999620)})],1),(!_vm.simpleMode)?_c('Pane',{attrs:{\"id\":\"user\",\"size\":_vm.splitpaneSizeV[1]}},[(_vm.isAuthenticated)?_c('UserWorkspace',{staticClass:\"userContent tour-ide-workspace\"}):_c('div',{staticClass:\"message info\",attrs:{\"title\":\"Login is required to interact with the server.\"}},[_c('i',{staticClass:\"fas fa-sign-in-alt\"}),_c('span',{staticClass:\"login-message\"},[_c('strong',[_c('a',{on:{\"click\":_vm.login}},[_vm._v(\"Log in\")])]),_vm._v(\" is required to interact with the server.\")])])],1):_vm._e()],1)],1):_vm._e(),_c('Pane',{class:{empty: !_vm.showViewer},attrs:{\"id\":\"viewer\",\"size\":_vm.splitpaneSizeH[2]}},[_c('Viewer',{staticClass:\"tour-ide-viewer\",attrs:{\"editable\":!_vm.simpleMode},on:{\"empty\":_vm.onViewerEmpty}})],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"UserMenu\"}},[_c('div',{staticClass:\"menuItem\"},[_vm._m(0),_c('div',{staticClass:\"data\"},[_c('span',{staticClass:\"name nowrap\"},[_c('i',{staticClass:\"fas fa-user\"}),_vm._v(\" \"+_vm._s(_vm.userName))]),(_vm.budget)?_c('span',{staticClass:\"credits nowrap\"},[_c('i',{staticClass:\"fas fa-dollar-sign fa-fw\"}),_vm._v(\" \"+_vm._s(_vm.budget))]):_vm._e(),(_vm.hasStorage)?_c('span',{staticClass:\"storage nowrap\"},[_c('i',{staticClass:\"fas fa-database fa-fw\"}),_vm._v(\" \"+_vm._s(_vm.storageUsedPercent)+\"% used\")]):_vm._e()])]),_c('div',{staticClass:\"dropdown\"},[(_vm.profileLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.profileLink.href,\"target\":\"_blank\"}},[_vm._v(\"Welcome, \"+_vm._s(_vm.userName)+\"!\")]):_c('div',{staticClass:\"item\"},[_vm._v(\"Welcome, \"+_vm._s(_vm.userName)+\"!\")]),(_vm.isAuthenticated)?[(_vm.hasProfile)?_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.userDetails.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-user\"}),_vm._v(\" Profile\")]):_vm._e(),(_vm.settingsLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.settingsLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-user-edit\"}),_vm._v(\" \"+_vm._s(_vm.settingsLink.title || 'Edit Profile'))]):_vm._e(),_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.logout.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-sign-out-alt\"}),_vm._v(\" Logout\")])]:[_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.login.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-sign-in-alt\"}),_vm._v(\" Login\")]),(_vm.registerLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.registerLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-user-plus\"}),_vm._v(\" Register\")]):_vm._e(),(_vm.passwordLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.passwordLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-key\"}),_vm._v(\" Forgotten Password?\")]):_vm._e()],(!_vm.$config.serverUrl)?_c('a',{staticClass:\"item\",on:{\"click\":function($event){$event.preventDefault();return _vm.disconnect.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-sign-out-alt\"}),_vm._v(\" Disconnect\")]):_vm._e(),(_vm.userLinks.length > 0)?[_c('hr'),_vm._l((_vm.userLinks),function(link,key){return _c('a',{key:key,staticClass:\"item\",attrs:{\"href\":link.href,\"target\":\"_blank\",\"rel\":link.rel}},[_vm._v(_vm._s(link.title))])})]:_vm._e(),(_vm.budget || _vm.userInfo.default_plan || _vm.paymentLink)?[_c('hr'),_c('div',{staticClass:\"item\"},[_c('h4',[_vm._v(\"Billing\")]),(_vm.userInfo.default_plan)?_c('div',{staticClass:\"secondary-text\"},[_vm._v(\"Plan: \"+_vm._s(_vm.userInfo.default_plan))]):_vm._e(),(_vm.budget)?_c('div',{staticClass:\"secondary-text\"},[_vm._v(\"Budget: \"+_vm._s(_vm.budget))]):_vm._e()]),(_vm.paymentLink)?_c('a',{staticClass:\"item\",attrs:{\"href\":_vm.paymentLink.href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"fas fa-credit-card\"}),_vm._v(\" \"+_vm._s(_vm.paymentLink.title || 'Recharge'))]):_vm._e()]:_vm._e(),(_vm.hasStorage)?[_c('hr'),_c('div',{staticClass:\"item\"},[_c('h4',[_vm._v(\"Storage\")]),_c('div',{staticClass:\"secondary-text nowrap\"},[_vm._v(\"Used \"+_vm._s(_vm.formatMegabyte(_vm.storageUsed))+\" of \"+_vm._s(_vm.formatMegabyte(_vm.userInfo.storage.quota))+\".\")]),_c('div',{staticClass:\"storagePercent\"},[_c('div',{staticClass:\"used\",style:('width: ' + _vm.storageUsedPercent + '%')})])])]:_vm._e()],2)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"down\"},[_c('i',{staticClass:\"fas fa-chevron-down\"})])\n}]\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!./UserMenu.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!./UserMenu.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserMenu.vue?vue&type=template&id=23c6ba20&scoped=true\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=js\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserMenu.vue?vue&type=style&index=0&id=23c6ba20&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 \"23c6ba20\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"userContent\"}},[(_vm.showJobs)?_c('Tab',{attrs:{\"id\":\"jobs\",\"name\":\"Data Processing\",\"icon\":\"fa-tasks\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('JobPanel')],1):_vm._e(),(_vm.showServices)?_c('Tab',{attrs:{\"id\":\"services\",\"name\":\"Web Services\",\"icon\":\"fa-cloud\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('ServicePanel')],1):_vm._e(),(_vm.showCustomProcesses)?_c('Tab',{attrs:{\"id\":\"customProcesses\",\"name\":\"User-Defined Processes\",\"icon\":\"fa-sitemap\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('CustomProcessPanel')],1):_vm._e(),(_vm.showFiles)?_c('Tab',{attrs:{\"id\":\"files\",\"name\":\"Files\",\"icon\":\"fa-file\"},on:{\"show\":_vm.onShow,\"hide\":_vm.onHide}},[_c('FilePanel')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"FilePanel\"},on:{\"dragenter\":function($event){return _vm.dropZoneInfo(true)},\"dragleave\":function($event){return _vm.dropZoneInfo(false)},\"drop\":_vm.uploadFiles,\"dragover\":_vm.allowDrop}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showUploadDropHint),expression:\"showUploadDropHint\"}],staticClass:\"dropZone\"},[_vm._v(\"To upload files, drop them here.\")]),_c('DataTable',{ref:\"table\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Download this file to your computer\",\"fn\":() => _vm.downloadFile(p.row),\"fa\":\"\",\"icon\":\"fas fa-download\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this file from the server\",\"fn\":() => _vm.deleteFile(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],staticClass:\"upload\"},[_c('div',{staticClass:\"percent\",class:{active: this.uploadProgress > 0}},[_c('div',{staticClass:\"used\",class:{error: _vm.uploadErrored},style:('width: ' + this.uploadProgress + '%; opacity: ' + this.uploadFadeOut)})]),_c('div',{staticClass:\"addFile\"},[_c('input',{ref:\"uploadUserFile\",staticClass:\"uploadUserFile\",attrs:{\"type\":\"file\",\"name\":\"uploadUserFile\",\"multiple\":\"\"},on:{\"change\":_vm.uploadFiles}})])]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component data-table\"},[_c('div',{staticClass:\"menu\"},[_c('div',{staticClass:\"toolbar\"},[_vm._t(\"toolbar\")],2),(_vm.hasData)?_c('div',{staticClass:\"filter\"},[_c('SearchBox',{attrs:{\"placeholder\":_vm.searchPlaceholder,\"compact\":true},model:{value:(_vm.filterValue),callback:function ($$v) {_vm.filterValue=$$v},expression:\"filterValue\"}})],1):_vm._e()]),(_vm.hasData)?_c('table',[_c('thead',[_c('tr',_vm._l((_vm.columns),function(col,id){return _c('th',{directives:[{name:\"show\",rawName:\"v-show\",value:(!col.hide),expression:\"!col.hide\"}],key:col.name,class:_vm.thClasses(id),attrs:{\"width\":col.width,\"title\":_vm.thTitle(id)},on:{\"click\":function($event){return _vm.enableSort(id)}}},[_vm._v(_vm._s(col.name))])}),0)]),_c('tbody',[_vm._l((_vm.view),function(row,i){return _c('tr',{key:i},_vm._l((_vm.columns),function(col,id){return _c('td',{directives:[{name:\"show\",rawName:\"v-show\",value:(!col.hide),expression:\"!col.hide\"}],key:`${col.name}_${id}`,class:[id, {'edit': _vm.canEdit(col)}],attrs:{\"title\":_vm.canEdit(col) ? 'Double-click to change the value' : false,\"data-value\":col.stylable ? _vm.value(row, col, id) : false},on:{\"dblclick\":function($event){return _vm.onDblClick($event, row, col, id)}}},[_vm._t(id,function(){return [(_vm.showEditField(row, col, id))?[_c('form',{on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.saveEditField($event, row, col, id)}}},[_c('input',{ref:\"editField\",refInFor:true,attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.value(row, col, id)},on:{\"blur\":function($event){return _vm.saveEditField($event, row, col, id)},\"keyup\":function($event){return _vm.resetEditFieldEsc($event, row, col, id)}}})])]:_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.formattedValue(row, col, id))}})]},{\"row\":row,\"col\":col,\"id\":id})],2)}),0)}),(_vm.hasData && _vm.view.length == 0)?_c('tr',{staticClass:\"no-results\"},[_c('td',{attrs:{\"colspan\":_vm.columnCount}},[_vm._v(\"No element matches your search criteria.\")])]):_vm._e()],2)]):_c('div',{staticClass:\"no-data\"},[_vm._v(_vm._s(_vm.noDataMessage))]),(_vm.hasMore)?_c('AsyncButton',{staticClass:\"has-more-button\",attrs:{\"fa\":_vm.fa,\"icon\":\"fas fa-sync\",\"fn\":_vm.next}},[_vm._v(\"Load more...\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DataTable.vue?vue&type=template&id=9098dd08\"\nimport script from \"./DataTable.vue?vue&type=script&lang=js\"\nexport * from \"./DataTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./DataTable.vue?vue&type=style&index=0&id=9098dd08&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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 DataTable from '@openeo/vue-components/components/DataTable.vue';\nimport Utils from '../utils.js';\n\nexport default (namespace, singular, plural, loadInitially = true) => {\n\treturn {\n\t\tcomponents: {\n\t\t\tDataTable\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tname: singular,\n\t\t\t\tplualizedName: plural,\n\t\t\t\tsyncTimer: null,\n\t\t\t\tlastSyncTime: null\n\t\t\t};\n\t\t},\n\t\tmounted() {\n\t\t\tif (loadInitially) {\n\t\t\t\tthis.updateData();\n\t\t\t}\n\t\t},\n\t\tbeforeDestroy() {\n\t\t\tthis.stopSyncTimer();\n\t\t},\n\t\tcomputed: {\n\t\t\t...Utils.mapState(namespace, {data: namespace}),\n\t\t\t...Utils.mapState(namespace, ['pages', 'hasMore']),\n\t\t\t...Utils.mapGetters(namespace, ['supportsList', 'supportsCreate', 'supportsRead', 'supportsUpdate', 'supportsDelete']),\n\t\t\tnext() {\n\t\t\t\treturn this.hasMore ? this.nextPage : null;\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t...Utils.mapActions(namespace, ['list', 'nextPage', 'create', 'read', 'update', 'delete']),\n\t\t\tgetTable() { // To be overridden\n\t\t\t\treturn this.$refs && this.$refs.table ? this.$refs.table : null;\n\t\t\t},\n\t\t\tonShow() {\n\t\t\t\tthis.updateData().catch(error => Utils.exception(this, error, `Updating ${plural} failed`));\n\t\t\t\tthis.startSyncTimer();\n\t\t\t},\n\t\t\tonHide() {\n\t\t\t\tthis.stopSyncTimer();\n\t\t\t},\n\t\t\tstartSyncTimer() {\n\t\t\t\tif (this.supportsList && this.syncTimer === null) {\n\t\t\t\t\tthis.syncTimer = setInterval(this.updateData, this.getSyncInterval());\n\t\t\t\t}\n\t\t\t},\n\t\t\tstopSyncTimer() {\n\t\t\t\tif (this.syncTimer !== null) {\n\t\t\t\t\tclearInterval(this.syncTimer);\n\t\t\t\t\tthis.syncTimer = null;\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetSyncInterval() {\n\t\t\t\treturn this.$config.dataRefreshInterval*60*1000; // Refresh data every x minutes\n\t\t\t},\n\t\t\tasync refreshElement(obj, callback = null) {\n\t\t\t\tvar old = Object.assign({}, obj);\n\t\t\t\ttry {\n\t\t\t\t\tlet updated = await this.read({data: obj});\n\t\t\t\t\tif (typeof callback === 'function') {\n\t\t\t\t\t\tcallback(updated, old);\n\t\t\t\t\t}\n\t\t\t\t} catch(error) {\n\t\t\t\t\tUtils.exception(this, error, \"Load \" + singular + \" error\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync reloadData() {\n\t\t\t\treturn await this.updateData(true);\n\t\t\t},\n\t\t\tasync updateData(force = false) {\n\t\t\t\tvar table = this.getTable();\n\t\t\t\tvar nextSyncTime = Date.now() - this.getSyncInterval();\n\t\t\t\tif (!table || (!force && this.lastSyncTime > nextSyncTime)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\telse if (!this.supportsList) {\n\t\t\t\t\ttable.setNoData(\"Sorry, listing stored \" + plural + \" is not supported by the server.\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar isUpdate = this.data.length > 0;\n\t\t\t\t\tif (!isUpdate) {\n\t\t\t\t\t\ttable.setNoData(\"Loading \" + plural + \"...\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.lastSyncTime = Date.now();\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet data = await this.list();\n\t\t\t\t\t\tif(data.length == 0) {\n\t\t\t\t\t\t\ttable.setNoData(\"Add your first \" + singular + \" here...\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} catch(error) {\n\t\t\t\t\t\tif (!isUpdate) {\n\t\t\t\t\t\t\tUtils.exception(this, error);\n\t\t\t\t\t\t\ttable.setNoData(\"Sorry, unable to load data from the server.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t};\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AsyncButton',{attrs:{\"fa\":\"\",\"confirm\":\"\",\"consistent\":\"\",\"icon\":\"fas fa-sync\",\"title\":_vm.title,\"fn\":_vm.sync}})\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!./SyncButton.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!./SyncButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SyncButton.vue?vue&type=template&id=06fc6151\"\nimport script from \"./SyncButton.vue?vue&type=script&lang=js\"\nexport * from \"./SyncButton.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","\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!./FilePanel.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!./FilePanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilePanel.vue?vue&type=template&id=8e09be82\"\nimport script from \"./FilePanel.vue?vue&type=script&lang=js\"\nexport * from \"./FilePanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilePanel.vue?vue&type=style&index=0&id=8e09be82&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('DataTable',{ref:\"table\",staticClass:\"JobPanel\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Show details about this job\",\"fn\":() => _vm.showJobInfo(p.row),\"fa\":\"\",\"icon\":\"fas fa-info\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsEstimate),expression:\"supportsEstimate\"}],attrs:{\"title\":\"Create a cost and time estimate for this job\",\"fn\":() => _vm.estimateJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-file-invoice-dollar\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsUpdate),expression:\"supportsUpdate\"}],attrs:{\"title\":\"Edit the metadata of this job\",\"fn\":() => _vm.editMetadata(p.row),\"disabled\":!_vm.isJobInactive(p.row),\"fa\":\"\",\"icon\":\"fas fa-edit\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Edit the process of this job in the process editor\",\"confirm\":\"\",\"fn\":() => _vm.showInEditor(p.row),\"fa\":\"\",\"icon\":\"fas fa-project-diagram\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this job from the server, including all results\",\"fn\":() => _vm.deleteJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsStart && _vm.isJobInactive(p.row)),expression:\"supportsStart && isJobInactive(p.row)\"}],attrs:{\"title\":\"Start the processing on the server\",\"fn\":() => _vm.queueJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-play-circle\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsStop && _vm.isJobActive(p.row)),expression:\"supportsStop && isJobActive(p.row)\"}],attrs:{\"title\":\"Cancel the processing\",\"fn\":() => _vm.cancelJob(p.row),\"fa\":\"\",\"icon\":\"fas fa-stop-circle\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDownloadResults && _vm.mayHaveResults(p.row)),expression:\"supportsDownloadResults && mayHaveResults(p.row)\"}],attrs:{\"title\":\"Download the results to your computer\",\"fn\":() => _vm.downloadResults(p.row),\"fa\":\"\",\"icon\":\"fas fa-download\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDownloadResults && _vm.mayHaveResults(p.row)),expression:\"supportsDownloadResults && mayHaveResults(p.row)\"}],attrs:{\"title\":\"View the results\",\"fn\":() => _vm.viewResults(p.row, true),\"fa\":\"\",\"icon\":\"fas fa-eye\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canShare && _vm.supports('downloadResults') && _vm.mayHaveResults(p.row)),expression:\"canShare && supports('downloadResults') && mayHaveResults(p.row)\"}],attrs:{\"title\":\"Export and/or share this job\",\"fn\":() => _vm.shareResults(p.row),\"fa\":\"\",\"icon\":\"fas fa-share\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDebug),expression:\"supportsDebug\"}],attrs:{\"title\":\"View the logs of this job\",\"fn\":() => _vm.showLogs(p.row),\"fa\":\"\",\"icon\":\"fas fa-bug\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],attrs:{\"title\":\"Create a new job from the process in the process editor for batch processing\",\"fn\":_vm.createJobFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-plus\"}},[_vm._v(\"Create Batch Job\")]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supports('computeResult')),expression:\"supports('computeResult')\"}],attrs:{\"title\":\"Run the process in the process editor directly and view the results without storing them permanently\",\"fn\":_vm.executeProcess,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-play\"}},[_vm._v(\"Run now\")]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n methods: {\n\t\tgetTitleField(value = null) {\n\t\t\treturn {\n\t\t\t\tname: 'title',\n\t\t\t\tlabel: 'Title',\n\t\t\t\tschema: {type: 'string'},\n\t\t\t\tdefault: null,\n\t\t\t\tvalue: value,\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetDescriptionField(value = null) {\n\t\t\treturn {\n\t\t\t\tname: 'description',\n\t\t\t\tlabel: 'Description',\n\t\t\t\tschema: {type: 'string', subtype: 'commonmark'},\n\t\t\t\tdefault: null,\n\t\t\t\tvalue: value,\n\t\t\t\tdescription: 'CommonMark (Markdown) is allowed.',\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetLogLevelField(value = undefined) {\n\t\t\treturn {\n\t\t\t\tname: 'log_level',\n\t\t\t\tlabel: 'Log level',\n\t\t\t\tschema: {type: 'string', enum: ['debug', 'info', 'warning', 'error']},\n\t\t\t\tdefault: 'info',\n\t\t\t\tvalue: value,\n\t\t\t\tdescription: 'The minimum severity level for log entries that the back-end stores for the processing request.\\n\\ndebug (all logs) > info > warning > error (only errors)',\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetBillingPlanField(value = undefined) {\n\t\t\treturn {\n\t\t\t\tname: 'plan',\n\t\t\t\tlabel: 'Billing plan',\n\t\t\t\tschema: {type: 'string', subtype: 'billing-plan'},\n\t\t\t\tvalue: value,\n\t\t\t\toptional: true\n\t\t\t};\n\t\t},\n\t\tgetBudgetField(value = null) {\n\t\t\treturn {\n\t\t\t\tname: 'budget',\n\t\t\t\tlabel: 'Budget limit',\n\t\t\t\tschema: {type: 'number', subtype: 'budget'},\n\t\t\t\tdefault: null,\n\t\t\t\tvalue: value,\n\t\t\t\toptional: true\n\t\t\t};\n\t\t}\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!./JobPanel.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!./JobPanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./JobPanel.vue?vue&type=template&id=13c24778\"\nimport script from \"./JobPanel.vue?vue&type=script&lang=js\"\nexport * from \"./JobPanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./JobPanel.vue?vue&type=style&index=0&id=13c24778&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('DataTable',{ref:\"table\",staticClass:\"CustomProcessPanel\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Show details about this process\",\"fn\":() => _vm.processInfo(p.row),\"fa\":\"\",\"icon\":\"fas fa-info\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Edit this process in the process editor\",\"confirm\":\"\",\"fn\":() => _vm.showInEditor(p.row),\"fa\":\"\",\"icon\":\"fas fa-project-diagram\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this custom process from the server\",\"fn\":() => _vm.deleteProcess(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],attrs:{\"title\":\"Store the process in the process editor on the server\",\"fn\":_vm.addProcessFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-plus\"}},[_vm._v(\"Add\")]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],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!./CustomProcessPanel.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!./CustomProcessPanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CustomProcessPanel.vue?vue&type=template&id=98950a60\"\nimport script from \"./CustomProcessPanel.vue?vue&type=script&lang=js\"\nexport * from \"./CustomProcessPanel.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('DataTable',{ref:\"table\",staticClass:\"ServicePanel\",attrs:{\"fa\":\"\",\"data\":_vm.data,\"columns\":_vm.columns,\"next\":_vm.next},scopedSlots:_vm._u([{key:\"actions\",fn:function(p){return [_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Show details about this service\",\"fn\":() => _vm.serviceInfo(p.row),\"fa\":\"\",\"icon\":\"fas fa-info\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsUpdate),expression:\"supportsUpdate\"}],attrs:{\"title\":\"Edit the metadata of this service\",\"fn\":() => _vm.editMetadata(p.row),\"fa\":\"\",\"icon\":\"fas fa-edit\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsRead),expression:\"supportsRead\"}],attrs:{\"title\":\"Edit the process of this service in the process editor\",\"confirm\":\"\",\"fn\":() => _vm.showInEditor(p.row),\"fa\":\"\",\"icon\":\"fas fa-project-diagram\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDelete),expression:\"supportsDelete\"}],attrs:{\"title\":\"Delete this service from the server\",\"fn\":() => _vm.deleteService(p.row),\"fa\":\"\",\"icon\":\"fas fa-trash\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(p.row.enabled && _vm.isMapServiceSupported(p.row.type)),expression:\"p.row.enabled && isMapServiceSupported(p.row.type)\"}],attrs:{\"title\":\"View this service\",\"fn\":() => _vm.viewService(p.row),\"fa\":\"\",\"icon\":\"fas fa-map\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(p.row.enabled && _vm.canShare),expression:\"p.row.enabled && canShare\"}],attrs:{\"title\":\"Export and/or share this service\",\"fn\":() => _vm.shareResults(p.row),\"fa\":\"\",\"icon\":\"fas fa-share\"}}),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsDebug),expression:\"supportsDebug\"}],attrs:{\"title\":\"View the logs of this service\",\"fn\":() => _vm.showLogs(p.row),\"fa\":\"\",\"icon\":\"fas fa-bug\"}})]}}])},[_c('template',{slot:\"toolbar\"},[_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsCreate),expression:\"supportsCreate\"}],attrs:{\"title\":\"Create a new permanent service from the process in the process editor\",\"fn\":_vm.createServiceFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-plus\"}},[_vm._v(\"Create\")]),_c('AsyncButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportsQuickView),expression:\"supportsQuickView\"}],attrs:{\"title\":\"Quickly show the process on map without storing it permanently\",\"fn\":_vm.quickViewServiceFromScript,\"disabled\":!this.hasProcess,\"fa\":\"\",\"confirm\":\"\",\"icon\":\"fas fa-map\"}},[_vm._v(\"Show on Map\")]),(_vm.supportsList)?_c('SyncButton',{attrs:{\"name\":_vm.plualizedName,\"sync\":_vm.reloadData}}):_vm._e(),_c('FullscreenButton',{attrs:{\"element\":() => this.$el}})],1)],2)\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!./ServicePanel.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!./ServicePanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ServicePanel.vue?vue&type=template&id=5e571dea\"\nimport script from \"./ServicePanel.vue?vue&type=script&lang=js\"\nexport * from \"./ServicePanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./ServicePanel.vue?vue&type=style&index=0&id=5e571dea&prod&lang=css\"\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\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!./UserWorkspace.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!./UserWorkspace.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserWorkspace.vue?vue&type=template&id=4f36e82b\"\nimport script from \"./UserWorkspace.vue?vue&type=script&lang=js\"\nexport * from \"./UserWorkspace.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserWorkspace.vue?vue&type=style&index=0&id=4f36e82b&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',{staticClass:\"viewerContainer\",on:{\"drop\":_vm.onDrop,\"dragover\":_vm.allowDrop}},[_c('Tabs',{ref:\"tabs\",attrs:{\"id\":\"viewerTabs\",\"allowTabRename\":_vm.editable},on:{\"empty\":_vm.onTabsEmpty},scopedSlots:_vm._u([{key:\"empty\",fn:function(){return [_vm._v(\"Nothing to show right now...\")]},proxy:true},{key:\"dynamic\",fn:function({ tab }){return [(_vm.logViewerIcons.includes(tab.icon))?_c('LogViewer',{attrs:{\"data\":tab.data},on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}}):(tab.data.component)?_c(tab.data.component,_vm._g(_vm._b({tag:\"component\",on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}},'component',tab.data.props,false),tab.data.events)):_vm._e(),_vm._v(\" \"),(tab.icon === 'fa-info')?_c('MetadataViewer',{attrs:{\"data\":tab.data},on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}}):(tab.icon === 'fa-map')?_c('MapViewer',{attrs:{\"data\":tab.data,\"removableLayers\":_vm.isCollectionPreview(tab.data)},on:{\"mounted\":_vm.onMounted,\"options\":_vm.onOptionsChanged}}):_c('div',{staticClass:\"unsupported\"},[_vm._v(\" Sorry, the viewer doesn't support showing this type of data. \"),(_vm.isFormat(tab.data))?[_vm._v(\" Instead, you can download the data by clicking the link below.\"),_c('br'),_c('a',{attrs:{\"href\":tab.data.getUrl(),\"download\":\"\"}},[_vm._v(\"Download\")])]:_vm._e()],2)]}}])})],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!./Viewer.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!./Viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Viewer.vue?vue&type=template&id=252caae8\"\nimport script from \"./Viewer.vue?vue&type=script&lang=js\"\nexport * from \"./Viewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./Viewer.vue?vue&type=style&index=0&id=252caae8&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\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!./IDE.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!./IDE.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IDE.vue?vue&type=template&id=3e5a971a\"\nimport script from \"./IDE.vue?vue&type=script&lang=js\"\nexport * from \"./IDE.vue?vue&type=script&lang=js\"\nimport style0 from \"./IDE.vue?vue&type=style&index=0&id=3e5a971a&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 { AbortController } from '@openeo/js-client';\nimport Utils from '../utils';\n\nexport class CancellableRequestError extends Error {\n constructor(message, title = null, cause = null, close = true, isError = true) {\n super(message, {cause});\n this.title = title;\n this.close = close;\n this.isError = isError;\n }\n}\n\nexport function showCancellableRequestError(vm, error) {\n if (error instanceof CancellableRequestError) {\n if (error.isError) {\n Utils.error(vm, error.message, error.title);\n }\n else {\n Utils.ok(vm, error.message, error.title);\n }\n }\n}\n\nlet runIds = {};\nexport async function cancellableRequest(vm, callback, entity) {\n if (!runIds[entity]) {\n runIds[entity] = 1;\n }\n else {\n runIds[entity]++;\n }\n\n const abortController = new AbortController();\n const snotifyConfig = Object.assign({}, vm.$config.snotifyDefaults, {\n timeout: 0,\n type: 'async',\n buttons: [{\n text: 'Cancel',\n action: () => {\n abortController.abort();\n }\n }]\n });\n\n let toast;\n const toastTitle = `${entity} #${runIds[entity]}`;\n try {\n const message = `Processing in progress, please wait...`;\n // Pass a promise to snotify that never resolves as we manually close the toast\n const endlessPromise = () => new Promise(() => {});\n toast = vm.$snotify.async(message, toastTitle, endlessPromise, snotifyConfig);\n\n await callback(abortController);\n } catch(error) {\n if (Utils.axios().isCancel(error)) {\n throw new CancellableRequestError(`Cancelled successfully`, toastTitle, error, false, false);\n }\n else if (typeof error.message === 'string' && Utils.isObject(error.response) && [400,500].includes(error.response.status)) {\n vm.broadcast('viewLogs', [{\n id: error.id,\n code: error.code,\n level: 'error',\n message: error.message,\n links: error.links || []\n }]);\n Utils.error(vm, `${entity} failed. Please see the logs for details.`, toastTitle);\n }\n else {\n throw new CancellableRequestError(error.message, toastTitle, error, false);\n }\n } finally {\n if (toast) {\n vm.$snotify.remove(toast.id, true);\n }\n }\n}","import { BaseProcess, ProcessGraph } from '@openeo/js-processgraphs';\nimport Utils from \"../utils\";\n\nclass ProcessImpl extends BaseProcess {\n\tconstructor(process, exporter) {\n\t\tsuper(process);\n\t\tthis.exporter = exporter;\n\t}\n\tasync execute(node) {\n\t\tawait this.exporter.generateFunction(node);\n\t}\n}\n\nexport default class Exporter extends ProcessGraph {\n\n\tconstructor(process, registry, connection) {\n\t\tsuper(Utils.isObject(process) ? process : {}, registry);\n\t\tthis.connection = connection;\n\t\tthis.code = [];\n\t\tthis.fnCounter = 1;\n\t\tthis.allowEmpty();\n\t\tthis.fillUndefinedParameters();\n\t}\n\n\t// inherited from ProcessGraph\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new Exporter(process, this.processRegistry, this.getJsonSchemaValidator());\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tcopyProcessGraphInstanceProperties(pg) {\n\t\tpg = super.copyProcessGraphInstanceProperties(pg);\n\t\tpg.connection = this.connection;\n\t\treturn pg;\n\t}\n\n\tcreateProcessInstance(process) {\n\t\treturn new ProcessImpl(process, this);\n\t}\n\n\tisKeyword(keyword) {\n\t\treturn this.getKeywords().includes(keyword.toLowerCase());\n\t}\n\n\t// Methods to be implemented by sub-class\n\n\tgetKeywords() {\n\t\treturn [];\n\t}\n\n\tcomment(/*comment*/) {}\n\n\tgenerateImports() {}\n\n\tgenerateConnection() {}\n\n\tgenerateAuthentication() {}\n\n\tgenerateBuilder() {}\n\n\tgenerateMetadata(/*key, value*/) {}\n\n\tgenerateMissingParameter() {}\n\n\tasync generateFunction(/*node*/) {}\n\n\tgenerateFunctionParams(parameters) {\n\t\treturn parameters.map(p => {\n\t\t\tif (typeof p.default !== 'undefined') {\n\t\t\t\treturn `${p.name} = ${this.e(p.default)}`;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn p.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync generateCallback(/*callback, parameters, variable*/) {}\n\n\tgenerateResult(/*resultNode, callback*/) {}\n\n\tmakeNull() {\n\t\treturn \"null\";\n\t}\n\tmakeBoolean(val) {\n\t\treturn val ? \"true\" : \"false\";\n\t}\n\tmakeArray(arr) {\n\t\treturn `[${arr.join(', ')}]`;\n\t}\n\tmakeObject(obj) {\n\t\tlet arr = Utils.mapObject(obj, (val, key) => `${this.makeString(key)}: ${val}`);\n\t\treturn `{${arr.join(', ')}}`;\n\t}\n\tmakeString(str) {\n\t\treturn JSON.stringify(str);\n\t}\n\tmakeNumber(num) {\n\t\treturn num;\n\t}\n\n\t// Helpers\n\n\te(value) {\n\t\tif (value === null) {\n\t\t\treturn this.makeNull();\n\t\t}\n\t\telse if (typeof value === 'boolean') {\n\t\t\treturn this.makeBoolean(value);\n\t\t}\n\t\telse if (typeof value === 'number') {\n\t\t\treturn this.makeNumber(value);\n\t\t}\n\t\telse if (typeof value === 'string') {\n\t\t\treturn this.makeString(value);\n\t\t}\n\t\telse if (Array.isArray(value)) {\n\t\t\treturn this.makeArray(value.map(val => this.e(val)));\n\t\t}\n\t\telse if (Utils.isObject(value)) {\n\t\t\treturn this.makeObject(Utils.mapObjectValues(value, val => this.e(val)));\n\t\t}\n\t\telse if (typeof value === 'function') {\n\t\t\treturn value();\n\t\t}\n\t\telse {\n\t\t\treturn this.makeNull();\n\t\t}\n\t}\n\n\tgenerateMetadata() {\n\t\tlet hasComment = false;\n\t\tfor(let key in this.process) {\n\t\t\tif (key === 'process_graph') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet val = this.process[key];\n\t\t\tif (Array.isArray(val) && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'string' && val.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (typeof val === 'boolean' && !val) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!hasComment) {\n\t\t\t\tthis.newLine();\n\t\t\t\tthis.comment(`Set the metadata for the process`);\n\t\t\t\thasComment = true;\n\t\t\t}\n\t\t\tthis.generateMetadataEntry(key, val);\n\t\t}\n\t}\n\n\tasync resolveArguments(args, onExporter, filter) {\n\t\tlet newArgs = Array.isArray(args) ? [] : {};\n\t\tfor(let key in args) {\n\t\t\tlet value = args[key];\n\t\t\tif (filter && filter(key, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_node, this.varPrefix());\n\t\t\t\t\tcontinue; \n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tnewArgs[key] = () => this.var(value.from_parameter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse if (value instanceof Exporter) {\n\t\t\t\t\tlet fnName = await onExporter(key);\n\t\t\t\t\tnewArgs[key] = () => fnName;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tnewArgs[key] = await this.resolveArguments(value, onExporter, filter);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewArgs[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn newArgs;\n\t}\n\n\tasync resolveCallback(node, key) {\n\t\tlet callback;\n\t\tif (node.process_id === 'load_collection') {\n\t\t\tlet properties = node.getArgument('properties');\n\t\t\tcallback = properties[key];\n\t\t}\n\t\telse {\n\t\t\tcallback = node.getArgument(key);\n\t\t}\n\t\tlet parameters = callback.getCallbackParameters();\n\t\tawait callback.execute(parameters);\n\t\tlet fnName = this.var(`${key}${this.fnCounter++}`, 'fn_');\n\t\tlet replacement = await this.generateCallback(callback, parameters, fnName);\n\t\treturn replacement ? replacement : fnName;\n\t}\n\n\tasync generateArguments(node, ordered = false, filter = null) {\n\t\tlet args = await this.resolveArguments(node.arguments, async key => await this.resolveCallback(node, key), filter);\n\t\tif (ordered) {\n\t\t\targs = this.orderArguments(node, args);\n\t\t}\n\t\treturn args;\n\t}\n\n\torderArguments(node, args) {\n\t\tlet process = node.getProcessGraph().getProcess(node);\n\t\tif (process && Array.isArray(process.parameters)) {\n\t\t\tlet orderedArgs = process.parameters.map(param => {\n\t\t\t\tif (typeof args[param.name] !== 'undefined') {\n\t\t\t\t\treturn args[param.name];\n\t\t\t\t}\n\t\t\t\telse if (!param.optional) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet definedValueFound = false;\n\t\t\tfor(let i = orderedArgs.length-1; i >= 0; i--) {\n\t\t\t\tif (typeof orderedArgs[i] === 'undefined') {\n\t\t\t\t\tif (definedValueFound) {\n\t\t\t\t\t\torderedArgs[i] = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\torderedArgs.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdefinedValueFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn orderedArgs;\n\t\t}\n\t}\n\n\tvarPrefix() {\n\t\tif (!this.getParent()) {\n\t\t\treturn 'datacube';\n\t\t}\n\t\telse {\n\t\t\treturn 'data';\n\t\t}\n\t}\n\n\tvar(id, prefix = \"var\") {\n\t\tid = String(id);\n\t\tif (this.isKeyword(id)) {\n\t\t\treturn `${id}_`;\n\t\t}\n\t\tif (!id.match(/^[a-z_]\\w*$/)) {\n\t\t\treturn prefix + id.replace(/[^\\w]+/g, '_');\n\t\t}\n\t\telse {\n\t\t\treturn id;\n\t\t}\n\t}\n\n\tgetTab() {\n\t\treturn `\\t`;\n\t}\n\n\taddCode(code, prefix = '', level = 0) {\n\t\tif (typeof code !== 'string') {\n\t\t\treturn;\n\t\t}\n\t\tlet tabs = this.getTab().repeat(level);\n\t\tlet lines = code.trim().split(/\\r\\n|\\r|\\n/g);\n\t\tfor(let line of lines) {\n\t\t\tthis.code.push(`${tabs}${prefix}${line}\\n`);\n\t\t}\n\t}\n\n\tnewLine(count = 1) {\n\t\tfor(let i = 0; i < count; i++) {\n\t\t\tthis.addCode('');\n\t\t}\n\t}\n\n\tgetServerUrl() {\n\t\treturn this.connection.getUrl();\n\t}\n\n\tasync toCode(callback = false) {\n\t\tthis.code = [];\n\t\tif (!callback) {\n\t\t\tthis.comment(`Import required packages`);\n\t\t\tthis.generateImports();\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`Connect to the back-end`);\n\t\t\tthis.generateConnection();\n\t\t\tthis.generateAuthentication();\n\t\t\tthis.newLine();\n\t\t\tthis.generateBuilder();\n\t\t\tthis.generateMetadata();\n\t\t\tthis.newLine();\n\t\t}\n\t\tlet params = this.getProcessParameters();\n\t\tif (params.length > 0) {\n\t\t\tthis.comment('ToDo: Here you need to set values for the parameters');\n\t\t\tfor(let param of params) {\n\t\t\t\tthis.generateMissingParameter(param);\n\t\t\t}\n\t\t\tthis.newLine();\n\t\t}\n\t\tawait this.execute();\n\t\tif (!callback) {\n\t\t\tthis.newLine();\n\t\t\tthis.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);\n\t\t}\n\t\tthis.generateResult(this.getResultNode(), callback);\n\t\treturn this.code.join('').trim();\n\t}\n\n\tasync execute() {\n\t\tawait this.validate();\n\t\tthis.reset();\n\t\tawait this.executeNodes(this.getStartNodes());\n\t\treturn this.getResultNode();\n\t}\n\n\tisMath() {\n\t\tif (typeof this._isMath === 'undefined') {\n\t\t\t// Determine whether the process is just math\n\t\t\tthis._isMath = this.processRegistry.isMath(this);\n\t\t}\n\t\treturn this._isMath;\n\t}\n\n}","import Utils from \"../utils\";\nimport Exporter from \"./exporter\";\nimport { Formula } from '@openeo/js-client';\n\nconst KEYWORDS = [\n\t\"abstract\",\n\t\"arguments\",\n\t\"await\",\n\t\"boolean\",\n\t\"break\",\n\t\"byte\",\n\t\"case\",\n\t\"catch\",\n\t\"char\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"debugger\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"double\",\n\t\"else\",\n\t\"enum\",\n\t\"eval\",\n\t\"export\",\n\t\"extends\",\n\t\"false\",\n\t\"final\",\n\t\"finally\",\n\t\"float\",\n\t\"for\",\n\t\"function\",\n\t\"goto\",\n\t\"if\",\n\t\"implements\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"int\",\n\t\"interface\",\n\t\"let\",\n\t\"long\",\n\t\"native\",\n\t\"new\",\n\t\"null\",\n\t\"package\",\n\t\"private\",\n\t\"protected\",\n\t\"public\",\n\t\"return\",\n\t\"short\",\n\t\"static\",\n\t\"super\",\n\t\"switch\",\n\t\"synchronized\",\n\t\"this\",\n\t\"throw\",\n\t\"throws\",\n\t\"transient\",\n\t\"true\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"volatile\",\n\t\"while\",\n\t\"with\",\n\t\"yield\",\n\t// specific to this generator\n\t\"builder\",\n\t\"connection\",\n\t\"formula\",\n\t\"openeo\",\n\t\"result\"\n];\n\nexport default class JavaScript extends Exporter {\n\n\tconstructor(process, registry, connection, generateFormula = false) {\n\t\tsuper(process, registry, connection);\n\t\tthis.generateFormula = generateFormula;\n\t}\n\n\tcreateProcessGraphInstance(process) {\n\t\tlet pg = new JavaScript(process, this.processRegistry, this.getJsonSchemaValidator(), this.generateFormula);\n\t\treturn this.copyProcessGraphInstanceProperties(pg);\n\t}\n\n\tparse() {\n\t\tif (this.parsed) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.parse();\n\t}\n\n\tgetKeywords() {\n\t\treturn KEYWORDS;\n\t}\n\n\tcomment(comment) {\n\t\tthis.addCode(comment, '// ');\n\t}\n\n\tgenerateImports() {\n\t\tthis.addCode(`import { OpenEO, Formula } from '@openeo/js-client';`);\n\t}\n\n\tgenerateConnection() {\n\t\tthis.addCode(`let connection = await OpenEO.connect('${this.getServerUrl()}');`);\n\t}\n\n\tgenerateAuthentication() {\n\t\tthis.comment(`ToDo: Here you need to add your authentication steps`);\n\t}\n\n\tgenerateBuilder() {\n\t\tthis.addCode(`let builder = await connection.buildProcess();`);\n\t}\n\n\tgenerateMetadataEntry(key, value) {\n\t\tthis.addCode(`builder.${key} = ${this.e(value)};`);\n\t}\n\n\tasync generateFunction(node) {\n\t\tlet builderName = node.getParent() ? 'this' : 'builder';\n\t\tlet variable = this.var(node.id, this.varPrefix());\n\t\tlet args = await this.generateArguments(node, !node.namespace);\n\n\t\tthis.comment(node.description);\n\t\tif (Utils.isObject(args)) {\n\t\t\tlet processId = node.namespace ? `${node.process_id}@${node.namespace}` : node.process_id;\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.process(\"${processId}\", ${this.e(args)});`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let ${variable} = ${builderName}.${node.process_id}(${args.map(arg => this.e(arg)).join(', ')});`);\n\t\t}\n\t}\n\n\tgenerateMissingParameter(parameter) {\n\t\tthis.comment(parameter.description);\n\t\tlet paramName = this.var(parameter.name, 'param');\n\t\tlet value = typeof parameter.default !== 'undefined' ? parameter.default : null;\n\t\tthis.addCode(`let ${paramName} = ${this.e(value)};`);\n\t}\n\n\tasync generateCallback(callback, parameters, variable) {\n\t\tif (this.generateFormula && callback && callback.isMath()) {\n\t\t\tlet formula = callback.toFormulaString();\n\t\t\tlet escaped = JSON.stringify(formula);\n\t\t\treturn `new Formula(${escaped})`;\n\t\t}\n\t\telse {\n\t\t\tlet params = this.generateFunctionParams(parameters);\n\t\t\tthis.newLine();\n\t\t\tthis.addCode(`let ${variable} = function(${params.join(', ')}) {`);\n\t\t\tthis.addCode(await callback.toCode(true), '', 1);\n\t\t\tthis.addCode(`}`);\n\t\t}\n\t}\n\n\tgenerateResult(resultNode, callback) {\n\t\tif (!resultNode) {\n\t\t\treturn;\n\t\t}\n\t\tlet variable = this.var(resultNode.id, this.varPrefix());\n\t\tif (callback) {\n\t\t\tthis.addCode(`return ${variable};`);\n\t\t}\n\t\telse {\n\t\t\tthis.addCode(`let result = await connection.computeResult(${variable});`);\n\t\t}\n\t}\n\n\ttoFormulaString() {\n\t\tif (this.isMath()) {\n\t\t\treturn this.nodeToFormula(this.getResultNode());\n\t\t}\n\t\telse {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetArrayElementPlaceholder(node) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tif (node.getArgumentType('data') === 'parameter') {\n\t\t\t\tlet parameter = node.getRawArgument('data').from_parameter;\n\t\t\t\tlet index = this.getCallbackParameters().findIndex(param => param.name === parameter);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\treturn '$'.repeat(index+1) + (node.getArgument('label') || node.getArgument('index'));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tnodeToFormula(node, parentOperator = null) {\n\t\tif (node.process_id === 'array_element') {\n\t\t\tlet arrayElement = this.getArrayElementPlaceholder(node);\n\t\t\tif (arrayElement) {\n\t\t\t\treturn arrayElement;\n\t\t\t}\n\t\t}\n\n\t\tlet operator = Formula.reverseOperatorMapping[node.process_id];\n\t\tlet process = this.processRegistry.get(node.process_id);\n\t\tlet isArrayData = (typeof Formula.arrayOperatorMapping[node.process_id] !== 'undefined');\n\n\t\tlet convertValue = value => {\n\t\t\tif (Utils.isObject(value)) {\n\t\t\t\tif (value.from_node) {\n\t\t\t\t\tlet refNode = node.getProcessGraph().getNode(value.from_node);\n\t\t\t\t\tif (refNode) {\n\t\t\t\t\t\tvalue = this.nodeToFormula(refNode, operator);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = '#' + value.from_node;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.from_parameter) {\n\t\t\t\t\tvalue = value.from_parameter;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Objects not allowed');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\t// Create the list of arguments\n\t\tlet argList = [];\n\t\tlet params = Array.isArray(process.parameters) ? process.parameters : [];\n\t\tfor(let parameter of params) {\n\t\t\tlet value = convertValue(node.getRawArgument(parameter.name));\n\n\t\t\tif (isArrayData && Array.isArray(value) && parameter.name === 'data') {\n\t\t\t\targList = value.map(v => convertValue(v));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if(typeof value !== 'undefined') {\n\t\t\t\targList.push(value);\n\t\t\t}\n\t\t\telse if(typeof parameter.default !== 'undefined') {\n\t\t\t\targList.push(parameter.default);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('Argument for parameter \"' + parameter.name + '\" missing');\n\t\t\t}\n\t\t}\n\t\t \n\t\t // Filter null values for array data to handle ignore_nodata\n\t\tif (isArrayData) {\n\t\t\targList = argList.filter(v => v !== null);\n\t\t}\n\n\t\tif (operator) {\n\t\t\tlet strongOps = ['/', '*']; // \"Punktrechnung\" vor\n\t\t\tlet weakOps = ['-', '+']; // \"Strichrechung\"\n\t\t\tlet formula = argList\n\t\t\t\t.map(v => v < 0 ? '(' + v + ')' : v) // Put negative values in brackets\n\t\t\t\t.join(operator); // Merge everything together\n\t\t\t\n\t\t\t// Check whether brackets are required\n\t\t\tif (\n\t\t\t\t// No brackets on top-level\n\t\t\t\t!parentOperator\n\t\t\t\t// If operators are both weak, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && weakOps.includes(operator))\n\t\t\t\t// If operators are both strong, no brackets required -> not correct, x/(a*b) needs it, see https://github.com/Open-EO/openeo-web-editor/issues/235\n//\t\t\t\t|| (strongOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t\t// No brackets required for power, it's the strongest operation\n\t\t\t\t|| operator === '^'\n\t\t\t\t// If the parent operation is a weak operation (+/-) and this is a strong operation, no brackets required\n\t\t\t\t|| (weakOps.includes(parentOperator) && strongOps.includes(operator))\n\t\t\t) {\n\t\t\t\treturn formula;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '(' + formula + ')';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn node.process_id + '(' + argList.join(', ') + ')';\n\t\t}\n\t}\n\n}","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar splitpanes_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __vue2_script$1 = {\n name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean },\n pushOtherPanes: { type: Boolean, default: true },\n dblClickSplitter: { type: Boolean, default: true },\n rtl: { type: Boolean, default: false },\n firstSplitter: { type: Boolean }\n },\n provide() {\n return {\n requestUpdate: this.requestUpdate,\n onPaneAdd: this.onPaneAdd,\n onPaneRemove: this.onPaneRemove,\n onPaneClick: this.onPaneClick\n };\n },\n data: () => ({\n container: null,\n ready: false,\n panes: [],\n touch: {\n mouseDown: false,\n dragging: false,\n activeSplitter: null\n },\n splitterTaps: {\n splitter: null,\n timeoutId: null\n }\n }),\n computed: {\n panesCount() {\n return this.panes.length;\n },\n indexedPanes() {\n return this.panes.reduce((obj, pane2) => (obj[pane2.id] = pane2) && obj, {});\n }\n },\n methods: {\n updatePaneComponents() {\n this.panes.forEach((pane2) => {\n pane2.update && pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n },\n bindEvents() {\n document.addEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.addEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"touchend\", this.onMouseUp);\n }\n },\n unbindEvents() {\n document.removeEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.removeEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"touchend\", this.onMouseUp);\n }\n },\n onMouseDown(event, splitterIndex) {\n this.bindEvents();\n this.touch.mouseDown = true;\n this.touch.activeSplitter = splitterIndex;\n },\n onMouseMove(event) {\n if (this.touch.mouseDown) {\n event.preventDefault();\n this.touch.dragging = true;\n this.calculatePanesSize(this.getCurrentMouseDrag(event));\n this.$emit(\"resize\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n },\n onMouseUp() {\n if (this.touch.dragging) {\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n this.touch.mouseDown = false;\n setTimeout(() => {\n this.touch.dragging = false;\n this.unbindEvents();\n }, 100);\n },\n onSplitterClick(event, splitterIndex) {\n if (\"ontouchstart\" in window) {\n event.preventDefault();\n if (this.dblClickSplitter) {\n if (this.splitterTaps.splitter === splitterIndex) {\n clearTimeout(this.splitterTaps.timeoutId);\n this.splitterTaps.timeoutId = null;\n this.onSplitterDblClick(event, splitterIndex);\n this.splitterTaps.splitter = null;\n } else {\n this.splitterTaps.splitter = splitterIndex;\n this.splitterTaps.timeoutId = setTimeout(() => {\n this.splitterTaps.splitter = null;\n }, 500);\n }\n }\n }\n if (!this.touch.dragging)\n this.$emit(\"splitter-click\", this.panes[splitterIndex]);\n },\n onSplitterDblClick(event, splitterIndex) {\n let totalMinSizes = 0;\n this.panes = this.panes.map((pane2, i) => {\n pane2.size = i === splitterIndex ? pane2.max : pane2.min;\n if (i !== splitterIndex)\n totalMinSizes += pane2.min;\n return pane2;\n });\n this.panes[splitterIndex].size -= totalMinSizes;\n this.$emit(\"pane-maximize\", this.panes[splitterIndex]);\n },\n onPaneClick(event, paneId) {\n this.$emit(\"pane-click\", this.indexedPanes[paneId]);\n },\n getCurrentMouseDrag(event) {\n const rect = this.container.getBoundingClientRect();\n const { clientX, clientY } = \"ontouchstart\" in window && event.touches ? event.touches[0] : event;\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n };\n },\n getCurrentDragPercentage(drag) {\n drag = drag[this.horizontal ? \"y\" : \"x\"];\n const containerSize = this.container[this.horizontal ? \"clientHeight\" : \"clientWidth\"];\n if (this.rtl && !this.horizontal)\n drag = containerSize - drag;\n return drag * 100 / containerSize;\n },\n calculatePanesSize(drag) {\n const splitterIndex = this.touch.activeSplitter;\n let sums = {\n prevPanesSize: this.sumPrevPanesSize(splitterIndex),\n nextPanesSize: this.sumNextPanesSize(splitterIndex),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const minDrag = 0 + (this.pushOtherPanes ? 0 : sums.prevPanesSize);\n const maxDrag = 100 - (this.pushOtherPanes ? 0 : sums.nextPanesSize);\n const dragPercentage = Math.max(Math.min(this.getCurrentDragPercentage(drag), maxDrag), minDrag);\n let panesToResize = [splitterIndex, splitterIndex + 1];\n let paneBefore = this.panes[panesToResize[0]] || null;\n let paneAfter = this.panes[panesToResize[1]] || null;\n const paneBeforeMaxReached = paneBefore.max < 100 && dragPercentage >= paneBefore.max + sums.prevPanesSize;\n const paneAfterMaxReached = paneAfter.max < 100 && dragPercentage <= 100 - (paneAfter.max + this.sumNextPanesSize(splitterIndex + 1));\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n if (paneBeforeMaxReached) {\n paneBefore.size = paneBefore.max;\n paneAfter.size = Math.max(100 - paneBefore.max - sums.prevPanesSize - sums.nextPanesSize, 0);\n } else {\n paneBefore.size = Math.max(100 - paneAfter.max - sums.prevPanesSize - this.sumNextPanesSize(splitterIndex + 1), 0);\n paneAfter.size = paneAfter.max;\n }\n return;\n }\n if (this.pushOtherPanes) {\n const vars = this.doPushOtherPanes(sums, dragPercentage);\n if (!vars)\n return;\n ({ sums, panesToResize } = vars);\n paneBefore = this.panes[panesToResize[0]] || null;\n paneAfter = this.panes[panesToResize[1]] || null;\n }\n if (paneBefore !== null) {\n paneBefore.size = Math.min(Math.max(dragPercentage - sums.prevPanesSize - sums.prevReachedMinPanes, paneBefore.min), paneBefore.max);\n }\n if (paneAfter !== null) {\n paneAfter.size = Math.min(Math.max(100 - dragPercentage - sums.nextPanesSize - sums.nextReachedMinPanes, paneAfter.min), paneAfter.max);\n }\n },\n doPushOtherPanes(sums, dragPercentage) {\n const splitterIndex = this.touch.activeSplitter;\n const panesToResize = [splitterIndex, splitterIndex + 1];\n if (dragPercentage < sums.prevPanesSize + this.panes[panesToResize[0]].min) {\n panesToResize[0] = this.findPrevExpandedPane(splitterIndex).index;\n sums.prevReachedMinPanes = 0;\n if (panesToResize[0] < splitterIndex) {\n this.panes.forEach((pane2, i) => {\n if (i > panesToResize[0] && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n }\n sums.prevPanesSize = this.sumPrevPanesSize(panesToResize[0]);\n if (panesToResize[0] === void 0) {\n sums.prevReachedMinPanes = 0;\n this.panes[0].size = this.panes[0].min;\n this.panes.forEach((pane2, i) => {\n if (i > 0 && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[1]].size = 100 - sums.prevReachedMinPanes - this.panes[0].min - sums.prevPanesSize - sums.nextPanesSize;\n return null;\n }\n }\n if (dragPercentage > 100 - sums.nextPanesSize - this.panes[panesToResize[1]].min) {\n panesToResize[1] = this.findNextExpandedPane(splitterIndex).index;\n sums.nextReachedMinPanes = 0;\n if (panesToResize[1] > splitterIndex + 1) {\n this.panes.forEach((pane2, i) => {\n if (i > splitterIndex && i < panesToResize[1]) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n }\n sums.nextPanesSize = this.sumNextPanesSize(panesToResize[1] - 1);\n if (panesToResize[1] === void 0) {\n sums.nextReachedMinPanes = 0;\n this.panes[this.panesCount - 1].size = this.panes[this.panesCount - 1].min;\n this.panes.forEach((pane2, i) => {\n if (i < this.panesCount - 1 && i >= splitterIndex + 1) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[0]].size = 100 - sums.prevPanesSize - sums.nextReachedMinPanes - this.panes[this.panesCount - 1].min - sums.nextPanesSize;\n return null;\n }\n }\n return { sums, panesToResize };\n },\n sumPrevPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i < splitterIndex ? pane2.size : 0), 0);\n },\n sumNextPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i > splitterIndex + 1 ? pane2.size : 0), 0);\n },\n findPrevExpandedPane(splitterIndex) {\n const pane2 = [...this.panes].reverse().find((p) => p.index < splitterIndex && p.size > p.min);\n return pane2 || {};\n },\n findNextExpandedPane(splitterIndex) {\n const pane2 = this.panes.find((p) => p.index > splitterIndex + 1 && p.size > p.min);\n return pane2 || {};\n },\n checkSplitpanesNodes() {\n const children = Array.from(this.container.children);\n children.forEach((child) => {\n const isPane = child.classList.contains(\"splitpanes__pane\");\n const isSplitter = child.classList.contains(\"splitpanes__splitter\");\n if (!isPane && !isSplitter) {\n child.parentNode.removeChild(child);\n console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\");\n return;\n }\n });\n },\n addSplitter(paneIndex, nextPaneNode, isVeryFirst = false) {\n const splitterIndex = paneIndex - 1;\n const elm = document.createElement(\"div\");\n elm.classList.add(\"splitpanes__splitter\");\n if (!isVeryFirst) {\n elm.onmousedown = (event) => this.onMouseDown(event, splitterIndex);\n if (typeof window !== \"undefined\" && \"ontouchstart\" in window) {\n elm.ontouchstart = (event) => this.onMouseDown(event, splitterIndex);\n }\n elm.onclick = (event) => this.onSplitterClick(event, splitterIndex + 1);\n }\n if (this.dblClickSplitter) {\n elm.ondblclick = (event) => this.onSplitterDblClick(event, splitterIndex + 1);\n }\n nextPaneNode.parentNode.insertBefore(elm, nextPaneNode);\n },\n removeSplitter(node) {\n node.onmousedown = void 0;\n node.onclick = void 0;\n node.ondblclick = void 0;\n node.parentNode.removeChild(node);\n },\n redoSplitters() {\n const children = Array.from(this.container.children);\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__splitter\"))\n this.removeSplitter(el);\n });\n let paneIndex = 0;\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__pane\")) {\n if (!paneIndex && this.firstSplitter)\n this.addSplitter(paneIndex, el, true);\n else if (paneIndex)\n this.addSplitter(paneIndex, el);\n paneIndex++;\n }\n });\n },\n requestUpdate(_a) {\n var _b = _a, { target } = _b, args = __objRest(_b, [\"target\"]);\n const pane2 = this.indexedPanes[target._uid];\n Object.entries(args).forEach(([key, value]) => pane2[key] = value);\n },\n onPaneAdd(pane2) {\n let index = -1;\n Array.from(pane2.$el.parentNode.children).some((el) => {\n if (el.className.includes(\"splitpanes__pane\"))\n index++;\n return el === pane2.$el;\n });\n const min = parseFloat(pane2.minSize);\n const max = parseFloat(pane2.maxSize);\n this.panes.splice(index, 0, {\n id: pane2._uid,\n index,\n min: isNaN(min) ? 0 : min,\n max: isNaN(max) ? 100 : max,\n size: pane2.size === null ? null : parseFloat(pane2.size),\n givenSize: pane2.size,\n update: pane2.update\n });\n this.panes.forEach((p, i) => p.index = i);\n if (this.ready) {\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ addedPane: this.panes[index] });\n this.$emit(\"pane-add\", { index, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n }\n },\n onPaneRemove(pane2) {\n const index = this.panes.findIndex((p) => p.id === pane2._uid);\n const removed = this.panes.splice(index, 1)[0];\n this.panes.forEach((p, i) => p.index = i);\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ removedPane: __spreadProps(__spreadValues({}, removed), { index }) });\n this.$emit(\"pane-remove\", { removed, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n },\n resetPaneSizes(changedPanes = {}) {\n if (!changedPanes.addedPane && !changedPanes.removedPane)\n this.initialPanesSizing();\n else if (this.panes.some((pane2) => pane2.givenSize !== null || pane2.min || pane2.max < 100))\n this.equalizeAfterAddOrRemove(changedPanes);\n else\n this.equalize();\n if (this.ready)\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n },\n equalize() {\n const equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n this.panes.forEach((pane2) => {\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n initialPanesSizing() {\n 100 / this.panesCount;\n let leftToAllocate = 100;\n let ungrowable = [];\n let unshrinkable = [];\n let definedSizes = 0;\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size !== null)\n definedSizes++;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n let leftToAllocate2 = 100;\n if (leftToAllocate > 0.1) {\n this.panes.forEach((pane2) => {\n if (pane2.size === null) {\n pane2.size = Math.max(Math.min(leftToAllocate / (this.panesCount - definedSizes), pane2.max), pane2.min);\n }\n leftToAllocate2 -= pane2.size;\n });\n if (leftToAllocate2 > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n }\n },\n equalizeAfterAddOrRemove({ addedPane, removedPane } = {}) {\n let equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n if (addedPane && addedPane.givenSize !== null) {\n equalSpace = (100 - addedPane.givenSize) / (this.panesCount - 1);\n }\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (Math.abs(leftToAllocate) < 0.1)\n return;\n this.panes.forEach((pane2) => {\n if (addedPane && addedPane.givenSize !== null && addedPane.id === pane2.id)\n ;\n else\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n readjustSizes(leftToAllocate, ungrowable, unshrinkable) {\n let equalSpaceToAllocate;\n if (leftToAllocate > 0)\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - ungrowable.length);\n else\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - unshrinkable.length);\n this.panes.forEach((pane2, i) => {\n if (leftToAllocate > 0 && !ungrowable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n } else if (!unshrinkable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n }\n pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n if (Math.abs(leftToAllocate) > 0.1) {\n this.$nextTick(() => {\n if (this.ready) {\n console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n }\n });\n }\n }\n },\n watch: {\n panes: {\n deep: true,\n immediate: false,\n handler() {\n this.updatePaneComponents();\n }\n },\n horizontal() {\n this.updatePaneComponents();\n },\n firstSplitter() {\n this.redoSplitters();\n },\n dblClickSplitter(enable) {\n const splitters = [...this.container.querySelectorAll(\".splitpanes__splitter\")];\n splitters.forEach((splitter, i) => {\n splitter.ondblclick = enable ? (event) => this.onSplitterDblClick(event, i) : void 0;\n });\n }\n },\n beforeDestroy() {\n this.ready = false;\n },\n mounted() {\n this.container = this.$refs.container;\n this.checkSplitpanesNodes();\n this.redoSplitters();\n this.resetPaneSizes();\n this.$emit(\"ready\");\n this.ready = true;\n },\n render(h) {\n return h(\"div\", {\n ref: \"container\",\n class: [\n \"splitpanes\",\n `splitpanes--${this.horizontal ? \"horizontal\" : \"vertical\"}`,\n {\n \"splitpanes--dragging\": this.touch.dragging\n }\n ]\n }, this.$slots.default);\n }\n};\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar splitpanes = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"splitpanes__pane\", style: _vm.style, on: { \"click\": function($event) {\n return _vm.onPaneClick($event, _vm._uid);\n } } }, [_vm._t(\"default\")], 2);\n};\nvar staticRenderFns = [];\nconst __vue2_script = {\n name: \"pane\",\n inject: [\"requestUpdate\", \"onPaneAdd\", \"onPaneRemove\", \"onPaneClick\"],\n props: {\n size: { type: [Number, String], default: null },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n data: () => ({\n style: {}\n }),\n mounted() {\n this.onPaneAdd(this);\n },\n beforeDestroy() {\n this.onPaneRemove(this);\n },\n methods: {\n update(style) {\n this.style = style;\n }\n },\n computed: {\n sizeNumber() {\n return this.size || this.size === 0 ? parseFloat(this.size) : null;\n },\n minSizeNumber() {\n return parseFloat(this.minSize);\n },\n maxSizeNumber() {\n return parseFloat(this.maxSize);\n }\n },\n watch: {\n sizeNumber(size) {\n this.requestUpdate({ target: this, size });\n },\n minSizeNumber(min) {\n this.requestUpdate({ target: this, min });\n },\n maxSizeNumber(max) {\n this.requestUpdate({ target: this, max });\n }\n }\n};\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar pane = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { pane as Pane, splitpanes as Splitpanes };\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.reduce');\n"],"names":["components","FederationNotice","FederationMissingNotice","props","federation","type","Object","default","render","_vm","this","_c","_self","staticClass","attrs","collections","showKeywords","searchTerm","hideDeprecated","deprecatedFilter","hideExperimental","experimentalFilter","sort","offerDetails","heading","collapsed","loadAdditionalData","on","detailsToggled","scopedSlots","_u","key","fn","scope","_t","missing","_e","slot","item","mapOptions","proxy","staticRenderFns","name","Collection","loadAsyncComponent","SearchableList","mixins","FederationMixin","Array","String","Boolean","Function","beforeCreate","enableHtmlProps","methods","args","$emit","component","fileFormats","_v","_s","showAll","isArray","gis_data_types","_l","summary","identifier","FileFormat","formats","showInput","showOutput","computed","typesToShow","types","push","data","format","assign","id","processes","showCategories","provideDownload","processUrl","showGraph","Process","class","compact","directives","rawName","value","expression","placeholder","minLength","searchHint","domProps","$event","target","composing","Number","watch","newValue","oldValue","length","runtimes","docker","tags","tag","lang","version","UdfRuntime","awesome","fa","title","disabled","update","loadingClasses","asyncState","icon","BButton","LoadingIcon","required","confirm","consistent","nativeTooltip","loading","classes","split","event","e","setTimeout","model","callback","$$v","showDeprecated","_i","$$a","$$el","$$c","checked","$$i","concat","slice","showExperimental","supportsLoadCollection","onDrag","showCollectionInfo","hasCollectionPreview","showCollectionPreview","allProcesses","showProcess","namespace","hasUdfRuntimes","udfRuntimes","supportsRunUdf","runtime","showUdfInfo","supportsSaveResult","showFileFormatInfo","EventBusMixin","Collections","FileFormats","Processes","SearchBox","UdfRuntimes","onAddProcess","collectionPreview","persist","internalSearchTerm","$config","showDeprecatedByDefault","showExperimentalByDefault","Utils","mapState","mapGetters","has","size","all","get","discoverySearchTerm","set","setDiscoverySearchTerm","immediate","handler","newVal","oldVal","mapMutations","mapActions","setModelDnD","loadProcess","then","broadcast","collection","getPreviewLinkFromSTAC","process","output","ref","canSwitchView","showModel","editable","parent","parentSchema","modelValue","showDiscoveryToolbar","showIntro","defaultValue","commit","onError","showCode","codeValue","confirmClear","canUndo","$refs","blocks","undo","canRedo","redo","hasSelection","deleteSelected","click","editProcess","addParameter","supportsMath","highlightFormula","isMath","showExpressionModal","compactMode","toggleCompact","perfectScale","element","visualEditor","enabled","isFullScreen","insertProcess","onDrop","allowDrop","showHelpOverlay","canPaste","paste","importProcess","_m","errorHandler","showParameter","param","origin","editParameter","openArgumentEditor","selectionChanged","historyChanged","ModelBuilder","DiscoveryToolbar","FullscreenButton","formula","initialNode","isObject","process_graph","node","keys","openArgumentEditorForNode","error","exception","setInitialNode","mounted","navigator","clipboard","readText","text","JSON","parse","import","message","edges","filter","block","$el","allowsDelete","history","index","preventDefault","getModelNodeFromDnD","pageX","pageY","files","dataTransfer","file","reader","FileReader","onload","result","onerror","readAsText","getNameField","undefined","description","label","schema","pattern","getDescriptionField","optional","subtype","getOptionalField","getDefaultField","toggledBy","getExperimentalField","getDeprecatedField","getSchemaField","minItems","items","returns","fields","categories","experimental","deprecated","info","exceptions","additionalProperties","properties","http","enum","examples","arguments","links","href","rel","newData","pickFromObject","returns_description","returns_schema","export","newProcess","defaults","equals","addPgParameter","parameter","saveCallback","js","JavaScript","connection","setCallbackParameters","getPgParameters","map","spec","events","save","insertNodes","nodeId","deepClone","processSpec","process_id","parameters","p","ProcessParameter","isEditable","selectParameterName","confirmed","clear","x","y","pos","getPositionForPageXY","addProcess","nodes","replace","VisualEditor","TextEditor","Tabs","Tab","Date","now","updateTab","sourceEditor","updateState","tabs","getActiveTabId","activeEditor","graphBuilder","authenticated","isAuthenticated","appMode","simpleMode","showHelp","showWizard","showServerInfo","resized","splitpaneSizeH","hasProcess","splitpaneSizeV","contextTitle","updateEditor","saveSupported","saveProcess","exportJSON","exportCode","validateSupported","validateProcess","login","empty","showViewer","onViewerEmpty","userName","budget","hasStorage","storageUsedPercent","profileLink","hasProfile","userDetails","apply","settingsLink","logout","registerLink","passwordLink","serverUrl","disconnect","userLinks","link","userInfo","default_plan","paymentLink","formatMegabyte","storageUsed","storage","quota","style","friendlyLinks","serverLinks","capabilities","find","free","formatBudget","currency","profile","omitFromObject","user_id","Math","round","logoutUser","resetEditor","ok","window","pushState","num","gb","showJobs","onShow","onHide","showServices","showCustomProcesses","showFiles","dropZoneInfo","uploadFiles","showUploadDropHint","columns","next","supportsRead","downloadFile","row","supportsDelete","deleteFile","supportsCreate","active","uploadProgress","uploadErrored","uploadFadeOut","supportsList","plualizedName","reloadData","searchPlaceholder","filterValue","col","hide","thClasses","width","thTitle","enableSort","i","canEdit","stylable","onDblClick","showEditField","stopPropagation","saveEditField","refInFor","resetEditFieldEsc","formattedValue","hasData","view","columnCount","noDataMessage","AsyncButton","primaryKey","editField","sortState","direction","updateView","hasMore","includes","hasFilter","created","determinePrimaryKey","edit","action","$nextTick","focus","setNoData","config","headers","console","warn","computedValue","colId","a","b","sortFn","compareStringCaseInsensitive","toLowerCase","values","hasOwnProperty","filterable","toString","search","clearFilter","call","DataTypes","Formatters","singular","plural","loadInitially","DataTable","syncTimer","lastSyncTime","updateData","beforeDestroy","stopSyncTimer","nextPage","getTable","table","catch","startSyncTimer","setInterval","getSyncInterval","clearInterval","dataRefreshInterval","refreshElement","obj","old","updated","read","force","nextSyncTime","isUpdate","list","log","sync","WorkPanelMixin","SyncButton","path","sortByPath","modified","actions","uploadProgressPerFile","deep","reduce","finishAllUploads","ev","show","uploadFile","create","percent","$set","uploadUserFile","t","delete","showJobInfo","supportsEstimate","estimateJob","supportsUpdate","editMetadata","isJobInactive","showInEditor","deleteJob","supportsStart","queueJob","supportsStop","isJobActive","cancelJob","supportsDownloadResults","mayHaveResults","downloadResults","viewResults","canShare","supports","shareResults","supportsDebug","showLogs","createJobFromScript","executeProcess","getTitleField","getLogLevelField","getBillingPlanField","getBudgetField","WorkPanelMixinInstance","FieldMixin","watchers","jobUpdater","listen","replaceProcess","startAndQueueProcess","getResourceTitle","formatIdOrTitle","updateTitle","status","supportedBatchJobSharingServices","updatedJobs","job","isActiveJobStatusCode","executeWatchers","interval","log2","clearTimeout","updatedJob","options","createJob","computeResult","abortController","cancellableRequest","CancellableRequestError","showCancellableRequestError","jobCreated","buttons","normalizeToDefaultData","plan","log_level","supportsBillingPlans","supportsBilling","Promise","resolve","reject","getResultsAsStac","StacMigrate","getAll","estimate","Job","updateJob","oldJob","newTitle","queue","cancel","stac","assets","url","extra","context","processInfo","deleteProcess","addProcessFromScript","updatedProcess","getIdField","match","store","normalize","toJSON","UserProcess","updateMetadata","serviceInfo","deleteService","isMapServiceSupported","viewService","createServiceFromScript","supportsQuickView","quickViewServiceFromScript","createdQuickViews","toUpperCase","toggleEnabled","mapService","serviceTypes","service","hasRequiredParam","configuration","some","beforeLogoutListener","$options","listener","onExit","promises","updatedService","serviceCreated","getServiceTypeField","getEnabledField","getConfigField","createService","script","quiet","settings","oldService","updateService","Service","onClose","service2","FilePanel","JobPanel","CustomProcessPanel","ServicePanel","tab","$children","onTabsEmpty","logViewerIcons","onMounted","onOptionsChanged","_g","_b","isCollectionPreview","isFormat","getUrl","DataViewer","TableViewer","ImageViewer","LogViewer","MapViewer","MetadataViewer","showSyncResults","showJobResults","showWebService","closeTabWithLogs","addToMapChooser","showAppMode","tabTitleCounter","tabIdCounter","nextTabId","resultType","resultUrl","expires","formatTimestamp","attributes","preview","Format","describeCollection","bbox","extentToBBox","extent","spatial","layers","dimensions","showMapViewer","resource","defaultTitle","selectTab","faIcon","getTab","addTab","closeTab","makeTitle","formatRegistry","createFilesFromBlob","forEach","download","finally","logs","showMetadata","createFilesFromSTAC","confirmOpenAll","showMetadataViewer","reUseExistingTab","Error","asset","openMapTabs","maps","createFileFromAsset","loadData","addGeoTiff","tabId","getContext","callChildFunction","setViewerOptions","hasNone","uniqueTitle","unique","Editor","Logo","Viewer","UserMenu","UserWorkspace","Splitpanes","Pane","resizeListener","userInfoUpdater","supportsJobUpdate","supportsServiceUpdate","supportsUserProcessUpdate","showDataForm","addEventListener","describeAccount","setCollectionPreview","openWizard","openWizardProps","removeEventListener","discoveryCompleted","filename","saveToFile","stringify","preselectUsecase","errors","level","setContext","setProcess","editor","closeCallback","field","closed","constructor","cause","close","isError","super","vm","runIds","async","entity","AbortController","snotifyConfig","snotifyDefaults","timeout","abort","toast","toastTitle","endlessPromise","$snotify","axios","isCancel","response","code","remove","ProcessImpl","BaseProcess","exporter","execute","generateFunction","Exporter","ProcessGraph","registry","fnCounter","allowEmpty","fillUndefinedParameters","createProcessGraphInstance","pg","processRegistry","getJsonSchemaValidator","copyProcessGraphInstanceProperties","createProcessInstance","isKeyword","keyword","getKeywords","comment","generateImports","generateConnection","generateAuthentication","generateBuilder","generateMetadata","generateMissingParameter","generateFunctionParams","generateCallback","generateResult","makeNull","makeBoolean","val","makeArray","arr","join","makeObject","mapObject","makeString","str","makeNumber","mapObjectValues","hasComment","newLine","generateMetadataEntry","resolveArguments","onExporter","newArgs","from_node","var","varPrefix","from_parameter","fnName","resolveCallback","getArgument","getCallbackParameters","replacement","generateArguments","ordered","orderArguments","getProcessGraph","getProcess","orderedArgs","definedValueFound","pop","getParent","prefix","addCode","repeat","lines","trim","line","count","getServerUrl","toCode","params","getProcessParameters","getResultNode","validate","reset","executeNodes","getStartNodes","_isMath","KEYWORDS","generateFormula","parsed","builderName","variable","processId","arg","paramName","toFormulaString","escaped","resultNode","nodeToFormula","getArrayElementPlaceholder","getArgumentType","getRawArgument","findIndex","parentOperator","arrayElement","operator","Formula","reverseOperatorMapping","isArrayData","arrayOperatorMapping","convertValue","refNode","getNode","argList","v","strongOps","weakOps","__defProp","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","prototype","__propIsEnum","propertyIsEnumerable","__defNormalProp","enumerable","configurable","writable","__spreadValues","prop","__spreadProps","__objRest","source","exclude","indexOf","normalizeComponent","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","h","existing","exports","__vue2_script$1","horizontal","pushOtherPanes","dblClickSplitter","rtl","firstSplitter","provide","requestUpdate","onPaneAdd","onPaneRemove","onPaneClick","container","ready","panes","touch","mouseDown","dragging","activeSplitter","splitterTaps","splitter","timeoutId","panesCount","indexedPanes","pane2","updatePaneComponents","bindEvents","document","onMouseMove","passive","onMouseUp","unbindEvents","onMouseDown","splitterIndex","calculatePanesSize","getCurrentMouseDrag","min","max","onSplitterClick","onSplitterDblClick","totalMinSizes","paneId","rect","getBoundingClientRect","clientX","clientY","touches","left","top","getCurrentDragPercentage","drag","containerSize","sums","prevPanesSize","sumPrevPanesSize","nextPanesSize","sumNextPanesSize","prevReachedMinPanes","nextReachedMinPanes","minDrag","maxDrag","dragPercentage","panesToResize","paneBefore","paneAfter","paneBeforeMaxReached","paneAfterMaxReached","vars","doPushOtherPanes","findPrevExpandedPane","findNextExpandedPane","total","reverse","checkSplitpanesNodes","children","from","child","isPane","classList","contains","isSplitter","parentNode","removeChild","addSplitter","paneIndex","nextPaneNode","isVeryFirst","elm","createElement","onmousedown","ontouchstart","onclick","ondblclick","insertBefore","removeSplitter","redoSplitters","el","className","_a","_uid","entries","parseFloat","minSize","maxSize","splice","isNaN","givenSize","resetPaneSizes","addedPane","pane3","removed","removedPane","changedPanes","equalizeAfterAddOrRemove","equalize","initialPanesSizing","equalSpace","leftToAllocate","ungrowable","unshrinkable","readjustSizes","definedSizes","leftToAllocate2","abs","equalSpaceToAllocate","newPaneSize","allocated","enable","splitters","querySelectorAll","$slots","__vue2_render","__vue2_staticRenderFns","__cssModules$1","__component__$1","__vue2_injectStyles$1","o","splitpanes","_h","$createElement","__vue2_script","inject","sizeNumber","minSizeNumber","maxSizeNumber","__cssModules","__component__","__vue2_injectStyles","pane","$","iterate","aCallable","anObject","getIteratorDirect","$TypeError","TypeError","proto","real","reducer","record","noInitial","accumulator","counter","IS_RECORD"],"sourceRoot":""} \ No newline at end of file diff --git a/js/768.8ff8aaf2.js b/js/768.e71c0931.js similarity index 97% rename from js/768.8ff8aaf2.js rename to js/768.e71c0931.js index 724fae5c..7c677972 100644 --- a/js/768.8ff8aaf2.js +++ b/js/768.e71c0931.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[768],{40768:(t,e,a)=>{a.r(e),a.d(e,{default:()=>c});var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"metadataViewer"},[t.isCollection?e("Collection",{attrs:{data:t.data},scopedSlots:t._u([{key:"spatial-extents",fn:function(t){return[e("MapExtentViewer",{staticClass:"resultMap",attrs:{footprint:t.extents}})]}}],null,!1,2235462431)}):t.isItem?e("Item",{attrs:{data:t.data},scopedSlots:t._u([{key:"location",fn:function(t){return[e("MapExtentViewer",{staticClass:"resultMap",attrs:{footprint:t.geometry||t.bbox}})]}}])}):e("ul",{staticClass:"list"},t._l(t.data.assets,(function(a,s){return e("StacAsset",{key:s,attrs:{asset:a,id:s,context:t.data}})})),1)],1)},n=[];let i=0;const o={name:"MetadataViewer",props:{data:{type:Object,required:!0}},components:{Collection:()=>a.e(5630).then(a.bind(a,3249)),Item:()=>a.e(8645).then(a.bind(a,38645)),MapExtentViewer:()=>Promise.all([a.e(1160),a.e(5983),a.e(1323),a.e(5624),a.e(1189),a.e(6617),a.e(5640),a.e(2559),a.e(2365),a.e(3800),a.e(3291),a.e(3876),a.e(9882),a.e(6709)]).then(a.bind(a,85856)),StacAsset:()=>Promise.all([a.e(7261),a.e(434)]).then(a.bind(a,84890))},computed:{isCollection(){return"Collection"===this.data.type},isItem(){return"Feature"===this.data.type}},data(){return{tabsId:"metadata_viewer_"+i++}},mounted(){this.$emit("mounted",this)}},r=o;var l=a(81656),d=(0,l.A)(r,s,n,!1,null,"2555d3c8",null);const c=d.exports}}]); -//# sourceMappingURL=768.8ff8aaf2.js.map \ No newline at end of file +//# sourceMappingURL=768.e71c0931.js.map \ No newline at end of file diff --git a/js/768.8ff8aaf2.js.map b/js/768.e71c0931.js.map similarity index 98% rename from js/768.8ff8aaf2.js.map rename to js/768.e71c0931.js.map index ff911376..d34b1699 100644 --- a/js/768.8ff8aaf2.js.map +++ b/js/768.e71c0931.js.map @@ -1 +1 @@ -{"version":3,"file":"js/768.8ff8aaf2.js","mappings":"wKAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAAEJ,EAAIK,aAAcH,EAAG,aAAa,CAACI,MAAM,CAAC,KAAON,EAAIO,MAAMC,YAAYR,EAAIS,GAAG,CAAC,CAACC,IAAI,kBAAkBC,GAAG,SAASC,GAAG,MAAO,CAACV,EAAG,kBAAkB,CAACE,YAAY,YAAYE,MAAM,CAAC,UAAYM,EAAEC,WAAW,IAAI,MAAK,EAAM,cAAeb,EAAIc,OAAQZ,EAAG,OAAO,CAACI,MAAM,CAAC,KAAON,EAAIO,MAAMC,YAAYR,EAAIS,GAAG,CAAC,CAACC,IAAI,WAAWC,GAAG,SAASC,GAAG,MAAO,CAACV,EAAG,kBAAkB,CAACE,YAAY,YAAYE,MAAM,CAAC,UAAYM,EAAEG,UAAYH,EAAEI,QAAQ,OAAOd,EAAG,KAAK,CAACE,YAAY,QAAQJ,EAAIiB,GAAIjB,EAAIO,KAAKW,QAAQ,SAASC,EAAMC,GAAI,OAAOlB,EAAG,YAAY,CAACQ,IAAIU,EAAGd,MAAM,CAAC,MAAQa,EAAM,GAAKC,EAAG,QAAUpB,EAAIO,OAAO,IAAG,IAAI,EAChsB,EACIc,EAAkB,GCiBtB,IAAAC,EAAA,EAEA,SACAC,KAAA,iBACAC,MAAA,CACAjB,KAAA,CACAkB,KAAAC,OACAC,UAAA,IAGAC,WAAA,CACAC,WAAAA,IAAA,+BACAC,KAAAA,IAAA,gCACAC,gBAAAA,IAAA,iLACAC,UAAAA,IAAA,yDAEAC,SAAA,CACA5B,YAAAA,GACA,0BAAAE,KAAAkB,IACA,EACAX,MAAAA,GACA,uBAAAP,KAAAkB,IACA,GAEAlB,IAAAA,GACA,OACA2B,OAAA,mBAAAZ,IAEA,EACAa,OAAAA,GACA,KAAAC,MAAA,eACA,GClDsQ,I,eCQlQC,GAAY,OACd,EACAtC,EACAsB,GACA,EACA,KACA,WACA,MAIF,QAAegB,EAAiB,O","sources":["webpack://@openeo/web-editor/./src/components/viewer/MetadataViewer.vue","webpack://@openeo/web-editor/src/components/viewer/MetadataViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/MetadataViewer.vue?6c1c","webpack://@openeo/web-editor/./src/components/viewer/MetadataViewer.vue?a131"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"metadataViewer\"},[(_vm.isCollection)?_c('Collection',{attrs:{\"data\":_vm.data},scopedSlots:_vm._u([{key:\"spatial-extents\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"resultMap\",attrs:{\"footprint\":p.extents}})]}}],null,false,2235462431)}):(_vm.isItem)?_c('Item',{attrs:{\"data\":_vm.data},scopedSlots:_vm._u([{key:\"location\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"resultMap\",attrs:{\"footprint\":p.geometry || p.bbox}})]}}])}):_c('ul',{staticClass:\"list\"},_vm._l((_vm.data.assets),function(asset,id){return _c('StacAsset',{key:id,attrs:{\"asset\":asset,\"id\":id,\"context\":_vm.data}})}),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!./MetadataViewer.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!./MetadataViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MetadataViewer.vue?vue&type=template&id=2555d3c8&scoped=true\"\nimport script from \"./MetadataViewer.vue?vue&type=script&lang=js\"\nexport * from \"./MetadataViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./MetadataViewer.vue?vue&type=style&index=0&id=2555d3c8&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 \"2555d3c8\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","isCollection","attrs","data","scopedSlots","_u","key","fn","p","extents","isItem","geometry","bbox","_l","assets","asset","id","staticRenderFns","tabId","name","props","type","Object","required","components","Collection","Item","MapExtentViewer","StacAsset","computed","tabsId","mounted","$emit","component"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/768.e71c0931.js","mappings":"wKAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAAEJ,EAAIK,aAAcH,EAAG,aAAa,CAACI,MAAM,CAAC,KAAON,EAAIO,MAAMC,YAAYR,EAAIS,GAAG,CAAC,CAACC,IAAI,kBAAkBC,GAAG,SAASC,GAAG,MAAO,CAACV,EAAG,kBAAkB,CAACE,YAAY,YAAYE,MAAM,CAAC,UAAYM,EAAEC,WAAW,IAAI,MAAK,EAAM,cAAeb,EAAIc,OAAQZ,EAAG,OAAO,CAACI,MAAM,CAAC,KAAON,EAAIO,MAAMC,YAAYR,EAAIS,GAAG,CAAC,CAACC,IAAI,WAAWC,GAAG,SAASC,GAAG,MAAO,CAACV,EAAG,kBAAkB,CAACE,YAAY,YAAYE,MAAM,CAAC,UAAYM,EAAEG,UAAYH,EAAEI,QAAQ,OAAOd,EAAG,KAAK,CAACE,YAAY,QAAQJ,EAAIiB,GAAIjB,EAAIO,KAAKW,QAAQ,SAASC,EAAMC,GAAI,OAAOlB,EAAG,YAAY,CAACQ,IAAIU,EAAGd,MAAM,CAAC,MAAQa,EAAM,GAAKC,EAAG,QAAUpB,EAAIO,OAAO,IAAG,IAAI,EAChsB,EACIc,EAAkB,GCiBtB,IAAAC,EAAA,EAEA,SACAC,KAAA,iBACAC,MAAA,CACAjB,KAAA,CACAkB,KAAAC,OACAC,UAAA,IAGAC,WAAA,CACAC,WAAAA,IAAA,+BACAC,KAAAA,IAAA,gCACAC,gBAAAA,IAAA,iLACAC,UAAAA,IAAA,yDAEAC,SAAA,CACA5B,YAAAA,GACA,0BAAAE,KAAAkB,IACA,EACAX,MAAAA,GACA,uBAAAP,KAAAkB,IACA,GAEAlB,IAAAA,GACA,OACA2B,OAAA,mBAAAZ,IAEA,EACAa,OAAAA,GACA,KAAAC,MAAA,eACA,GClDsQ,I,eCQlQC,GAAY,OACd,EACAtC,EACAsB,GACA,EACA,KACA,WACA,MAIF,QAAegB,EAAiB,O","sources":["webpack://@openeo/web-editor/./src/components/viewer/MetadataViewer.vue","webpack://@openeo/web-editor/src/components/viewer/MetadataViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/MetadataViewer.vue?6c1c","webpack://@openeo/web-editor/./src/components/viewer/MetadataViewer.vue?a131"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"metadataViewer\"},[(_vm.isCollection)?_c('Collection',{attrs:{\"data\":_vm.data},scopedSlots:_vm._u([{key:\"spatial-extents\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"resultMap\",attrs:{\"footprint\":p.extents}})]}}],null,false,2235462431)}):(_vm.isItem)?_c('Item',{attrs:{\"data\":_vm.data},scopedSlots:_vm._u([{key:\"location\",fn:function(p){return [_c('MapExtentViewer',{staticClass:\"resultMap\",attrs:{\"footprint\":p.geometry || p.bbox}})]}}])}):_c('ul',{staticClass:\"list\"},_vm._l((_vm.data.assets),function(asset,id){return _c('StacAsset',{key:id,attrs:{\"asset\":asset,\"id\":id,\"context\":_vm.data}})}),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!./MetadataViewer.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!./MetadataViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MetadataViewer.vue?vue&type=template&id=2555d3c8&scoped=true\"\nimport script from \"./MetadataViewer.vue?vue&type=script&lang=js\"\nexport * from \"./MetadataViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./MetadataViewer.vue?vue&type=style&index=0&id=2555d3c8&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 \"2555d3c8\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","isCollection","attrs","data","scopedSlots","_u","key","fn","p","extents","isItem","geometry","bbox","_l","assets","asset","id","staticRenderFns","tabId","name","props","type","Object","required","components","Collection","Item","MapExtentViewer","StacAsset","computed","tabsId","mounted","$emit","component"],"sourceRoot":""} \ No newline at end of file diff --git a/js/8396.80d94f20.js b/js/8396.6387c5ef.js similarity index 98% rename from js/8396.80d94f20.js rename to js/8396.6387c5ef.js index 58c3b94a..7004ce39 100644 --- a/js/8396.80d94f20.js +++ b/js/8396.6387c5ef.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[2327,8396],{2327:(t,e,a)=>{a.r(e),a.d(e,{default:()=>c});var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"vue-component object-tree",class:{inline:0===t.size}},[0===t.size?e("em",[t._v(t._s(t.format(t.data)))]):Array.isArray(t.data)?[e("ol",t._l(t.indicesShown,(function(a){return e("li",{key:a},[t.isStructured(t.data[a])?e("openeo-object-tree",{attrs:{data:t.data[a]}}):t.isUrl(t.data[a])?e("a",{attrs:{href:t.data[a],target:"_blank"}},[t._v(t._s(t.data[a]))]):t.format(t.data[a])?e("em",[t._v(t._s(t.format(t.data[a])))]):[t._v(t._s(t.data[a]))]],2)})),0),t.size!==t.indicesShown.length?e("button",{attrs:{type:"button"},on:{click:t.show}},[t._v("Show all "+t._s(t.data.length)+" entries")]):t._e()]:"object"===typeof t.data?e("ul",t._l(t.data,(function(a,s){return e("li",{key:s},[e("strong",[t._v(t._s(t.prettifyKey(s)))]),t._v(": "),t.isStructured(a)?e("openeo-object-tree",{attrs:{data:a}}):t.isUrl(a)?e("a",{attrs:{href:a,target:"_blank"}},[t._v(t._s(a))]):t.format(a)?e("em",[t._v(t._s(t.format(a)))]):[t._v(t._s(a))]],2)})),0):[t._v(t._s(t.data))]],2)},r=[],o=a(86975);const n={name:"ObjectTree",components:{"openeo-object-tree":()=>Promise.resolve().then(a.bind(a,2327))},props:{data:{default:null},collapseAfter:{type:Number,default:10}},data(){return{expand:!1}},computed:{isSingleValue(){return Array.isArray(this.data)&&1===this.data.length&&0===o.A.size(this.data[0])},size(){return"object"===typeof this.data?o.A.size(this.data):1},indicesShown(){if(!Array.isArray(this.data))return[];let t=this.data;return!this.expand&&null!==this.collapseAfter&&this.size>this.collapseAfter&&(t=Array(this.collapseAfter)),[...t.keys()]}},beforeCreate(){o.A.enableHtmlProps(this)},methods:{prettifyKey(t){return o.A.prettifyString(t)},show(){this.expand=!0},isStructured(t){return o.A.size(t)>0},format(t){return null===t?"N/A":!0===t?"✔️":!1===t?"❌":"object"===typeof t&&0===o.A.size(t)?"Empty":"function"===typeof t?"JavaScript Function":"symbol"===typeof t?"JavaScript Symbol":null},isUrl(t){return o.A.isUrl(t,!1)}}},i=n;var d=a(81656),l=(0,d.A)(i,s,r,!1,null,null,null);const c=l.exports},58396:(t,e,a)=>{a.r(e),a.d(e,{default:()=>_});var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"dataViewer"},[t.isScalar?e("pre",{staticClass:"text"},[t._v(t._s(t.content))]):t.isNodata?e("em",{staticClass:"text"},[t._v("No data retrieved.")]):e("Tabs",{attrs:{id:t.tabsId,position:"bottom"}},[e("Tab",{attrs:{id:"visual",name:"Visual",icon:"fa-list",selected:!0}},[e("ObjectTree",{staticClass:"tree",attrs:{data:t.content}})],1),e("Tab",{attrs:{id:"source",name:"Code",icon:"fa-code"},on:{show:t.showCode}},[e("TextEditor",{ref:"sourceEditor",staticClass:"textEditorTab",attrs:{editable:!1,value:t.content,id:t.tabsId+"_text",language:t.codeLanguage}})],1)],1)],1)},r=[],o=a(2327),n=a(4615),i=a(58379),d=a(20600),l=a(75024);let c=0;const u={name:"DataViewer",props:{data:{type:Object,required:!0}},components:{ObjectTree:o["default"],Tabs:n["default"],Tab:i["default"],TextEditor:d.A},computed:{isScalar(){return"object"!==typeof this.content},isNodata(){return null===this.content||"undefined"===typeof this.content}},data(){return{content:null,tabsId:"data_viewer_"+c++,codeLanguage:null}},created(){this.data instanceof l.A&&(this.codeLanguage="json"),this.content=this.data.getData()},mounted(){this.$emit("mounted",this)},methods:{showCode(){this.$refs.sourceEditor.updateState()}}},h=u;var p=a(81656),f=(0,p.A)(h,s,r,!1,null,"4f9e86e9",null);const _=f.exports}}]); -//# sourceMappingURL=8396.80d94f20.js.map \ No newline at end of file +//# sourceMappingURL=8396.6387c5ef.js.map \ No newline at end of file diff --git a/js/8396.80d94f20.js.map b/js/8396.6387c5ef.js.map similarity index 99% rename from js/8396.80d94f20.js.map rename to js/8396.6387c5ef.js.map index 14b92575..fa25e3a0 100644 --- a/js/8396.80d94f20.js.map +++ b/js/8396.6387c5ef.js.map @@ -1 +1 @@ -{"version":3,"file":"js/8396.80d94f20.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue?6010","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/ObjectTree.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue?a80a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue","webpack://@openeo/web-editor/./src/components/viewer/DataViewer.vue","webpack://@openeo/web-editor/src/components/viewer/DataViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/DataViewer.vue?0bee","webpack://@openeo/web-editor/./src/components/viewer/DataViewer.vue?0a75"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component object-tree\",class:{inline: _vm.size === 0}},[(_vm.size === 0)?_c('em',[_vm._v(_vm._s(_vm.format(_vm.data)))]):(Array.isArray(_vm.data))?[_c('ol',_vm._l((_vm.indicesShown),function(i){return _c('li',{key:i},[(_vm.isStructured(_vm.data[i]))?_c('openeo-object-tree',{attrs:{\"data\":_vm.data[i]}}):(_vm.isUrl(_vm.data[i]))?_c('a',{attrs:{\"href\":_vm.data[i],\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.data[i]))]):(_vm.format(_vm.data[i]))?_c('em',[_vm._v(_vm._s(_vm.format(_vm.data[i])))]):[_vm._v(_vm._s(_vm.data[i]))]],2)}),0),(_vm.size !== _vm.indicesShown.length)?_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":_vm.show}},[_vm._v(\"Show all \"+_vm._s(_vm.data.length)+\" entries\")]):_vm._e()]:(typeof _vm.data === 'object')?_c('ul',_vm._l((_vm.data),function(value,key){return _c('li',{key:key},[_c('strong',[_vm._v(_vm._s(_vm.prettifyKey(key)))]),_vm._v(\": \"),(_vm.isStructured(value))?_c('openeo-object-tree',{attrs:{\"data\":value}}):(_vm.isUrl(value))?_c('a',{attrs:{\"href\":value,\"target\":\"_blank\"}},[_vm._v(_vm._s(value))]):(_vm.format(value))?_c('em',[_vm._v(_vm._s(_vm.format(value)))]):[_vm._v(_vm._s(value))]],2)}),0):[_vm._v(_vm._s(_vm.data))]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ObjectTree.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ObjectTree.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ObjectTree.vue?vue&type=template&id=0a88edb0\"\nimport script from \"./ObjectTree.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectTree.vue?vue&type=script&lang=js\"\nimport style0 from \"./ObjectTree.vue?vue&type=style&index=0&id=0a88edb0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"dataViewer\"},[(_vm.isScalar)?_c('pre',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.content))]):(_vm.isNodata)?_c('em',{staticClass:\"text\"},[_vm._v(\"No data retrieved.\")]):_c('Tabs',{attrs:{\"id\":_vm.tabsId,\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual\",\"icon\":\"fa-list\",\"selected\":true}},[_c('ObjectTree',{staticClass:\"tree\",attrs:{\"data\":_vm.content}})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\"},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":false,\"value\":_vm.content,\"id\":_vm.tabsId + '_text',\"language\":_vm.codeLanguage}})],1)],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!./DataViewer.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!./DataViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DataViewer.vue?vue&type=template&id=4f9e86e9&scoped=true\"\nimport script from \"./DataViewer.vue?vue&type=script&lang=js\"\nexport * from \"./DataViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./DataViewer.vue?vue&type=style&index=0&id=4f9e86e9&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 \"4f9e86e9\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","class","inline","size","_v","_s","format","data","Array","isArray","_l","i","key","isStructured","attrs","isUrl","indicesShown","length","on","show","_e","value","prettifyKey","staticRenderFns","name","components","props","default","collapseAfter","type","Number","expand","computed","isSingleValue","arr","keys","beforeCreate","enableHtmlProps","methods","prettifyString","url","component","isScalar","content","isNodata","tabsId","showCode","ref","codeLanguage","tabId","Object","required","ObjectTree","Tabs","Tab","TextEditor","created","JSON_","getData","mounted","$emit","$refs","sourceEditor","updateState"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/8396.6387c5ef.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue?6010","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/ObjectTree.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue?a80a","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/ObjectTree.vue","webpack://@openeo/web-editor/./src/components/viewer/DataViewer.vue","webpack://@openeo/web-editor/src/components/viewer/DataViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/DataViewer.vue?0bee","webpack://@openeo/web-editor/./src/components/viewer/DataViewer.vue?0a75"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component object-tree\",class:{inline: _vm.size === 0}},[(_vm.size === 0)?_c('em',[_vm._v(_vm._s(_vm.format(_vm.data)))]):(Array.isArray(_vm.data))?[_c('ol',_vm._l((_vm.indicesShown),function(i){return _c('li',{key:i},[(_vm.isStructured(_vm.data[i]))?_c('openeo-object-tree',{attrs:{\"data\":_vm.data[i]}}):(_vm.isUrl(_vm.data[i]))?_c('a',{attrs:{\"href\":_vm.data[i],\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.data[i]))]):(_vm.format(_vm.data[i]))?_c('em',[_vm._v(_vm._s(_vm.format(_vm.data[i])))]):[_vm._v(_vm._s(_vm.data[i]))]],2)}),0),(_vm.size !== _vm.indicesShown.length)?_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":_vm.show}},[_vm._v(\"Show all \"+_vm._s(_vm.data.length)+\" entries\")]):_vm._e()]:(typeof _vm.data === 'object')?_c('ul',_vm._l((_vm.data),function(value,key){return _c('li',{key:key},[_c('strong',[_vm._v(_vm._s(_vm.prettifyKey(key)))]),_vm._v(\": \"),(_vm.isStructured(value))?_c('openeo-object-tree',{attrs:{\"data\":value}}):(_vm.isUrl(value))?_c('a',{attrs:{\"href\":value,\"target\":\"_blank\"}},[_vm._v(_vm._s(value))]):(_vm.format(value))?_c('em',[_vm._v(_vm._s(_vm.format(value)))]):[_vm._v(_vm._s(value))]],2)}),0):[_vm._v(_vm._s(_vm.data))]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ObjectTree.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ObjectTree.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ObjectTree.vue?vue&type=template&id=0a88edb0\"\nimport script from \"./ObjectTree.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectTree.vue?vue&type=script&lang=js\"\nimport style0 from \"./ObjectTree.vue?vue&type=style&index=0&id=0a88edb0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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:\"dataViewer\"},[(_vm.isScalar)?_c('pre',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.content))]):(_vm.isNodata)?_c('em',{staticClass:\"text\"},[_vm._v(\"No data retrieved.\")]):_c('Tabs',{attrs:{\"id\":_vm.tabsId,\"position\":\"bottom\"}},[_c('Tab',{attrs:{\"id\":\"visual\",\"name\":\"Visual\",\"icon\":\"fa-list\",\"selected\":true}},[_c('ObjectTree',{staticClass:\"tree\",attrs:{\"data\":_vm.content}})],1),_c('Tab',{attrs:{\"id\":\"source\",\"name\":\"Code\",\"icon\":\"fa-code\"},on:{\"show\":_vm.showCode}},[_c('TextEditor',{ref:\"sourceEditor\",staticClass:\"textEditorTab\",attrs:{\"editable\":false,\"value\":_vm.content,\"id\":_vm.tabsId + '_text',\"language\":_vm.codeLanguage}})],1)],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!./DataViewer.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!./DataViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DataViewer.vue?vue&type=template&id=4f9e86e9&scoped=true\"\nimport script from \"./DataViewer.vue?vue&type=script&lang=js\"\nexport * from \"./DataViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./DataViewer.vue?vue&type=style&index=0&id=4f9e86e9&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 \"4f9e86e9\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","class","inline","size","_v","_s","format","data","Array","isArray","_l","i","key","isStructured","attrs","isUrl","indicesShown","length","on","show","_e","value","prettifyKey","staticRenderFns","name","components","props","default","collapseAfter","type","Number","expand","computed","isSingleValue","arr","keys","beforeCreate","enableHtmlProps","methods","prettifyString","url","component","isScalar","content","isNodata","tabsId","showCode","ref","codeLanguage","tabId","Object","required","ObjectTree","Tabs","Tab","TextEditor","created","JSON_","getData","mounted","$emit","$refs","sourceEditor","updateState"],"sourceRoot":""} \ No newline at end of file diff --git a/js/887.575d445d.js b/js/887.10ec50ff.js similarity index 99% rename from js/887.575d445d.js rename to js/887.10ec50ff.js index 9bdb7f6a..c50095a0 100644 --- a/js/887.575d445d.js +++ b/js/887.10ec50ff.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[887],{17834:(e,t,s)=>{s.d(t,{A:()=>i});var l=s(86975);const a={cpu:"CPU usage",memory:"Memory usage",duration:"Wall time",network:"Network Transfer IO",disk:"Storage IO",storage:"Storage space"},i={computed:{hasUsageMetrics(){return l.A.size(this.usage)>0}},filters:{usageLabel(e){return a[e]?a[e]:l.A.prettifyString(e)},usageValue(e){return"number"===typeof e?e.toLocaleString():e}}}},66622:(e,t,s)=>{s.d(t,{A:()=>u});var l=function(){var e=this,t=e._self._c;return t("li",{staticClass:"vue-component log-entry",class:{[e.log.level]:!0,expanded:e.expanded}},[t("summary",[t("span",{staticClass:"toggle",on:{click:function(t){return e.toggle()}}},[e._v("▸")]),t("span",{staticClass:"log-message",on:{click:function(t){!e.expanded&&e.toggle()}}},[e._v(e._s(e.log.message))]),e.log.level?t("ul",{staticClass:"badges small inline"},[e.relativeTime?t("li",{staticClass:"badge time",attrs:{title:e.formattedTime}},[e._v(e._s(e.relativeTime))]):e._e(),t("li",{staticClass:"badge",class:e.log.level},[e._v(e._s(e.log.level))])]):e._e()]),e.expanded?t("ul",{staticClass:"details"},[e.log.code?t("li",[e._v("Code: "+e._s(e.log.code))]):e._e(),Array.isArray(e.log.path)&&e.log.path.length?t("li",[e._v(" Path: "),t("ol",{staticClass:"path"},e._l(e.path,(function(s,l){return t("li",{key:l},[t("strong",[t("code",[e._v("#"+e._s(s.node_id))])]),s.process_id?[t("br"),e._v("Process: "),t("code",[e._v(e._s(s.process_id))]),s.namespace?[e._v(" in namespace "),t("code",[e._v(e._s(s.namespace))])]:e._e(),s.parameter?[t("br"),e._v("Parameter: "),t("code",[e._v(e._s(s.parameter))])]:e._e()]:e._e()],2)})),0)]):e._e(),e.hasData?t("li",[e._v(" Data: "),t("ObjectTree",{attrs:{data:e.log.data}})],1):e._e(),e.hasUsageMetrics?t("li",[e._v(" Usage metrics: "),t("ul",{staticClass:"usage"},e._l(e.usage,(function(s,l){return t("li",{key:l},[t("strong",{staticClass:"metric"},[e._v(e._s(e._f("usageLabel")(l)))]),e._v(": "+e._s(e._f("usageValue")(s.value))+" "),t("span",{staticClass:"unit"},[e._v(e._s(s.unit))])])})),0)]):e._e(),t("li",[e._v("ID: "+e._s(e.log.id))]),Array.isArray(e.log.links)&&e.log.links.length?t("li",[e._v(" Related Resources: "),t("LinkList",{attrs:{links:e.log.links}})],1):e._e()]):e._e()])},a=[],i=s(86975),r=s(17834);const n=[{length:1e3,unit:"ms"},{length:60,unit:"s"},{length:60,unit:"m"},{length:24,unit:"h"}],o={name:"Log",mixins:[r.A],components:{LinkList:()=>s.e(2810).then(s.bind(s,52810)),ObjectTree:()=>s.e(2327).then(s.bind(s,2327))},props:{log:{type:Object,default:()=>[]},startTime:{type:String,default:null}},computed:{hasData(){return"undefined"!==typeof this.log.data},usage(){return this.log.usage},relativeTime(){if(!this.startTime||!this.log.time)return null;if(this.log.time===this.startTime)return i.A.formatTimestamp(this.log.time);try{let e=new Date(this.startTime),t=new Date(this.log.time),s=t-e,l=[];for(let a of n){let e=s%a.length;if(s-=e,0!==e&&l.push(e+a.unit),s{s.r(t),s.d(t,{default:()=>_});var l=function(){var e=this,t=e._self._c;return t("div",{staticClass:"log-viewer"},[null===e.logs?t("div",{staticClass:"no-data"},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),e._v(" Loading logs...")]):t("Logs",{attrs:{logs:e.logs}})],1)},a=[],i=s(2566),r=s(61663),n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"vue-component logs"},[e.hasLogs?t("div",{staticClass:"log-container"},[t("div",{staticClass:"log-header"},[t("div",{staticClass:"log-search"},[null===e.externalSearchTerm?t("SearchBox",{attrs:{placeholder:"Search in Logs",minLength:2},model:{value:e.searchTerm,callback:function(t){e.searchTerm=t},expression:"searchTerm"}}):e._e(),t("MultiSelect",{staticClass:"log-fields",attrs:{options:e.availableFields,trackBy:"id",label:"label",multiple:!0,searchable:!1,allowEmpty:!1,closeOnSelect:!1,limit:3,limitText:e=>`+ ${e}`,selectedLabel:"✓",deselectLabel:"✗",selectLabel:"+",title:"Select the fields to search through"},model:{value:e.fields,callback:function(t){e.fields=t},expression:"fields"}})],1),t("MultiSelect",{staticClass:"log-levels",attrs:{options:e.levels,multiple:!0,searchable:!1,allowEmpty:!1,closeOnSelect:!1,selectedLabel:"✓",deselectLabel:"✗",selectLabel:"+",title:"Select the log levels shown in the list of logs"},scopedSlots:e._u([{key:"tag",fn:function(s){return[t("span",{key:s.index,staticClass:"multiselect__tag",class:s.option},[t("span",{domProps:{textContent:e._s(s.option)}}),t("i",{staticClass:"multiselect__tag-icon",attrs:{tabindex:"1"},on:{keypress:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),s.remove(s.option))},mousedown:function(e){return e.preventDefault(),s.remove(s.option)}}})])]}}],null,!1,1224176521),model:{value:e.levelsShown,callback:function(t){e.levelsShown=t},expression:"levelsShown"}})],1),t("ul",{staticClass:"log-body"},e._l(e.logs,(function(s,l){return t("Log",{directives:[{name:"show",rawName:"v-show",value:e.shown[l],expression:"shown[i]"}],key:s.id,attrs:{log:s,startTime:e.startTime}})})),1)]):t("div",{staticClass:"log-empty"},[e._v("No logs available.")])])},o=[],c=s(86975),h=s(66622);const d={name:"Logs",components:{Log:h.A,MultiSelect:()=>s.e(5262).then(s.t.bind(s,75262,23)),SearchBox:()=>Promise.resolve().then(s.bind(s,9409))},props:{logs:{type:Array,default:()=>[]},externalSearchTerm:{type:String,default:null}},data(){let e=["debug","info","warning","error"],t=[{id:"id",label:"ID"},{id:"code",label:"Code",default:!0},{id:"level",label:"Level"},{id:"message",label:"Message",default:!0},{id:"time",label:"Date and Time"},{id:"data",label:"Data",default:!0},{id:"path",label:"Path"},{id:"usage",label:"Usage Metrics"},{id:"links",label:"Related Resources"}];return{levels:e.slice(0),levelsShown:e.slice(0),searchTerm:"",availableFields:t,fields:t.filter((e=>Boolean(e.default)))}},computed:{shown(){return this.logs.map((e=>{if(!this.levelsShown.includes(e.level))return!1;if(this.searchTerm.length>=2){if(this.fields.length!=this.availableFields.length){let t=this.fields.map((e=>e.id));e=c.A.pickFromObject(e,t)}return c.A.search(this.searchTerm,e)}return!0}))},startTime(){if(this.hasLogs){let e=this.logs.find((e=>c.A.isObject(e)&&"string"===typeof e.time&&e.time.length>10));if(c.A.isObject(e)&&e.time)return e.time}return null},hasLogs(){return Array.isArray(this.logs)&&this.logs.length>0}},watch:{externalSearchTerm:{immediate:!0,handler(e){this.searchTerm="string"===typeof e?e:""}}},beforeCreate(){c.A.enableHtmlProps(this)}},u=d;var g=s(81656),m=(0,g.A)(u,n,o,!1,null,null,null);const p=m.exports,v={name:"LogViewer",mixins:[r.A],components:{Logs:p},props:{data:{type:[Object,Array],required:!0}},data(){return{logs:null,syncTimer:null}},computed:{...i.A.mapState(["connection"]),isJob(){return i.A.isObject(this.data)&&"function"===typeof this.data.debugJob},isService(){return i.A.isObject(this.data)&&"function"===typeof this.data.debugService},logIterator(){return this.isJob?this.data.debugJob():this.isService?this.data.debugService():null}},created(){this.isJob&&this.listen("jobStatusUpdated",this.onJobStatusUpdated)},mounted(){this.$emit("mounted",this)},beforeDestroy(){this.onHide()},methods:{onShow(){this.loadNext(),this.isJob?this.onJobStatusUpdated(this.data):this.isService&&this.startWatcher()},onHide(){this.stopWatcher()},onJobStatusUpdated(e){e===this.data&&"string"===typeof this.data.status&&(i.A.isActiveJobStatusCode(this.data.status)?this.startWatcher():this.stopWatcher())},startWatcher(){null===this.syncTimer&&(this.syncTimer=setInterval(this.loadNext.bind(this),1e4))},stopWatcher(){null!==this.syncTimer&&(clearInterval(this.syncTimer),this.syncTimer=null)},async loadNext(){try{if(this.logIterator){let e=await this.logIterator.nextLogs();if(!Array.isArray(this.logs)||this.logs.length>0&&e.length>0&&e[0].id==this.logs[0].id)this.logs=e;else for(let t of e)this.logs.push(t)}else Array.isArray(this.data)&&!this.logs&&(this.logs=this.data)}catch(e){i.A.exception(this,e,"Loading logs failed")}}}},f=v;var b=(0,g.A)(f,l,a,!1,null,null,null);const _=b.exports}}]); -//# sourceMappingURL=887.575d445d.js.map \ No newline at end of file +//# sourceMappingURL=887.10ec50ff.js.map \ No newline at end of file diff --git a/js/887.575d445d.js.map b/js/887.10ec50ff.js.map similarity index 99% rename from js/887.575d445d.js.map rename to js/887.10ec50ff.js.map index ffe7189e..0c9f5135 100644 --- a/js/887.575d445d.js.map +++ b/js/887.10ec50ff.js.map @@ -1 +1 @@ -{"version":3,"file":"js/887.575d445d.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/UsageMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/Log.vue?430b","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/Log.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/Log.vue?685c","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/Log.vue","webpack://@openeo/web-editor/./src/components/viewer/LogViewer.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Logs.vue?67f1","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Logs.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Logs.vue?b8f2","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Logs.vue","webpack://@openeo/web-editor/src/components/viewer/LogViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/LogViewer.vue?9345","webpack://@openeo/web-editor/./src/components/viewer/LogViewer.vue?956f"],"sourcesContent":["import Utils from '../../utils';\n\nconst usageLabels = {\n\tcpu: \"CPU usage\",\n\tmemory: \"Memory usage\",\n\tduration: \"Wall time\",\n\tnetwork: \"Network Transfer IO\",\n\tdisk: \"Storage IO\",\n\tstorage: \"Storage space\"\n};\n\nexport default {\n\tcomputed: {\n\t\thasUsageMetrics() {\n\t\t\treturn Utils.size(this.usage) > 0;\n\t\t}\n\t},\n\tfilters: {\n\t\tusageLabel(key) {\n\t\t\tif (usageLabels[key]) {\n\t\t\t\treturn usageLabels[key];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Utils.prettifyString(key);\n\t\t\t}\n\t\t},\n\t\tusageValue(num) {\n\t\t\tif (typeof num === 'number') {\n\t\t\t\treturn num.toLocaleString();\n\t\t\t}\n\t\t\treturn num;\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"vue-component log-entry\",class:{[_vm.log.level]: true, expanded: _vm.expanded}},[_c('summary',[_c('span',{staticClass:\"toggle\",on:{\"click\":function($event){return _vm.toggle()}}},[_vm._v(\"▸\")]),_c('span',{staticClass:\"log-message\",on:{\"click\":function($event){!_vm.expanded && _vm.toggle()}}},[_vm._v(_vm._s(_vm.log.message))]),(_vm.log.level)?_c('ul',{staticClass:\"badges small inline\"},[(_vm.relativeTime)?_c('li',{staticClass:\"badge time\",attrs:{\"title\":_vm.formattedTime}},[_vm._v(_vm._s(_vm.relativeTime))]):_vm._e(),_c('li',{staticClass:\"badge\",class:_vm.log.level},[_vm._v(_vm._s(_vm.log.level))])]):_vm._e()]),(_vm.expanded)?_c('ul',{staticClass:\"details\"},[(_vm.log.code)?_c('li',[_vm._v(\"Code: \"+_vm._s(_vm.log.code))]):_vm._e(),(Array.isArray(_vm.log.path) && _vm.log.path.length)?_c('li',[_vm._v(\" Path: \"),_c('ol',{staticClass:\"path\"},_vm._l((_vm.path),function(path,i){return _c('li',{key:i},[_c('strong',[_c('code',[_vm._v(\"#\"+_vm._s(path.node_id))])]),(path.process_id)?[_c('br'),_vm._v(\"Process: \"),_c('code',[_vm._v(_vm._s(path.process_id))]),(path.namespace)?[_vm._v(\" in namespace \"),_c('code',[_vm._v(_vm._s(path.namespace))])]:_vm._e(),(path.parameter)?[_c('br'),_vm._v(\"Parameter: \"),_c('code',[_vm._v(_vm._s(path.parameter))])]:_vm._e()]:_vm._e()],2)}),0)]):_vm._e(),(_vm.hasData)?_c('li',[_vm._v(\" Data: \"),_c('ObjectTree',{attrs:{\"data\":_vm.log.data}})],1):_vm._e(),(_vm.hasUsageMetrics)?_c('li',[_vm._v(\" Usage metrics: \"),_c('ul',{staticClass:\"usage\"},_vm._l((_vm.usage),function(metric,key){return _c('li',{key:key},[_c('strong',{staticClass:\"metric\"},[_vm._v(_vm._s(_vm._f(\"usageLabel\")(key)))]),_vm._v(\": \"+_vm._s(_vm._f(\"usageValue\")(metric.value))+\" \"),_c('span',{staticClass:\"unit\"},[_vm._v(_vm._s(metric.unit))])])}),0)]):_vm._e(),_c('li',[_vm._v(\"ID: \"+_vm._s(_vm.log.id))]),(Array.isArray(_vm.log.links) && _vm.log.links.length)?_c('li',[_vm._v(\" Related Resources: \"),_c('LinkList',{attrs:{\"links\":_vm.log.links}})],1):_vm._e()]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Log.vue?vue&type=template&id=2ff6e855\"\nimport script from \"./Log.vue?vue&type=script&lang=js\"\nexport * from \"./Log.vue?vue&type=script&lang=js\"\nimport style0 from \"./Log.vue?vue&type=style&index=0&id=2ff6e855&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@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:\"log-viewer\"},[(_vm.logs === null)?_c('div',{staticClass:\"no-data\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_vm._v(\" Loading logs...\")]):_c('Logs',{attrs:{\"logs\":_vm.logs}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component logs\"},[(_vm.hasLogs)?_c('div',{staticClass:\"log-container\"},[_c('div',{staticClass:\"log-header\"},[_c('div',{staticClass:\"log-search\"},[(_vm.externalSearchTerm === null)?_c('SearchBox',{attrs:{\"placeholder\":\"Search in Logs\",\"minLength\":2},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}):_vm._e(),_c('MultiSelect',{staticClass:\"log-fields\",attrs:{\"options\":_vm.availableFields,\"trackBy\":\"id\",\"label\":\"label\",\"multiple\":true,\"searchable\":false,\"allowEmpty\":false,\"closeOnSelect\":false,\"limit\":3,\"limitText\":count => `+ ${count}`,\"selectedLabel\":\"✓\",\"deselectLabel\":\"✗\",\"selectLabel\":\"+\",\"title\":\"Select the fields to search through\"},model:{value:(_vm.fields),callback:function ($$v) {_vm.fields=$$v},expression:\"fields\"}})],1),_c('MultiSelect',{staticClass:\"log-levels\",attrs:{\"options\":_vm.levels,\"multiple\":true,\"searchable\":false,\"allowEmpty\":false,\"closeOnSelect\":false,\"selectedLabel\":\"✓\",\"deselectLabel\":\"✗\",\"selectLabel\":\"+\",\"title\":\"Select the log levels shown in the list of logs\"},scopedSlots:_vm._u([{key:\"tag\",fn:function(props){return [_c('span',{key:props.index,staticClass:\"multiselect__tag\",class:props.option},[_c('span',{domProps:{\"textContent\":_vm._s(props.option)}}),_c('i',{staticClass:\"multiselect__tag-icon\",attrs:{\"tabindex\":\"1\"},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return props.remove(props.option)},\"mousedown\":function($event){$event.preventDefault();return props.remove(props.option)}}})])]}}],null,false,1224176521),model:{value:(_vm.levelsShown),callback:function ($$v) {_vm.levelsShown=$$v},expression:\"levelsShown\"}})],1),_c('ul',{staticClass:\"log-body\"},_vm._l((_vm.logs),function(log,i){return _c('Log',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.shown[i]),expression:\"shown[i]\"}],key:log.id,attrs:{\"log\":log,\"startTime\":_vm.startTime}})}),1)]):_c('div',{staticClass:\"log-empty\"},[_vm._v(\"No logs available.\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=ce4409e2\"\nimport script from \"./Logs.vue?vue&type=script&lang=js\"\nexport * from \"./Logs.vue?vue&type=script&lang=js\"\nimport style0 from \"vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./Logs.vue?vue&type=style&index=1&id=ce4409e2&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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\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!./LogViewer.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!./LogViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LogViewer.vue?vue&type=template&id=2283b1c9\"\nimport script from \"./LogViewer.vue?vue&type=script&lang=js\"\nexport * from \"./LogViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./LogViewer.vue?vue&type=style&index=0&id=2283b1c9&prod&lang=css\"\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"],"names":["usageLabels","cpu","memory","duration","network","disk","storage","computed","hasUsageMetrics","size","this","usage","filters","usageLabel","key","prettifyString","usageValue","num","toLocaleString","render","_vm","_c","_self","staticClass","class","log","level","expanded","on","$event","toggle","_v","_s","message","attrs","formattedTime","relativeTime","_e","code","Array","isArray","path","length","_l","i","node_id","process_id","namespace","parameter","data","metric","_f","value","unit","id","links","staticRenderFns","timeUnits","name","mixins","UsageMixin","components","LinkList","ObjectTree","props","type","Object","default","startTime","String","hasData","time","formatTimestamp","start","Date","future","delta","parts","temp","remainder","push","reverse","join","error","methods","component","logs","externalSearchTerm","model","callback","$$v","searchTerm","expression","availableFields","count","fields","levels","scopedSlots","_u","fn","index","option","domProps","indexOf","_k","keyCode","preventDefault","remove","levelsShown","directives","rawName","shown","Log","MultiSelect","SearchBox","label","slice","filter","field","Boolean","map","includes","pickFromObject","search","hasLogs","find","isObject","watch","immediate","handler","beforeCreate","enableHtmlProps","EventBusMixin","Logs","required","syncTimer","Utils","mapState","isJob","debugJob","isService","debugService","logIterator","created","listen","onJobStatusUpdated","mounted","$emit","beforeDestroy","onHide","onShow","loadNext","startWatcher","stopWatcher","job","status","isActiveJobStatusCode","setInterval","bind","clearInterval","nextLogs","exception"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/887.10ec50ff.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/UsageMixin.js","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/Log.vue?430b","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/internal/Log.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/Log.vue?685c","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/internal/Log.vue","webpack://@openeo/web-editor/./src/components/viewer/LogViewer.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Logs.vue?67f1","webpack://@openeo/web-editor/node_modules/@openeo/vue-components/components/Logs.vue","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Logs.vue?b8f2","webpack://@openeo/web-editor/./node_modules/@openeo/vue-components/components/Logs.vue","webpack://@openeo/web-editor/src/components/viewer/LogViewer.vue","webpack://@openeo/web-editor/./src/components/viewer/LogViewer.vue?9345","webpack://@openeo/web-editor/./src/components/viewer/LogViewer.vue?956f"],"sourcesContent":["import Utils from '../../utils';\n\nconst usageLabels = {\n\tcpu: \"CPU usage\",\n\tmemory: \"Memory usage\",\n\tduration: \"Wall time\",\n\tnetwork: \"Network Transfer IO\",\n\tdisk: \"Storage IO\",\n\tstorage: \"Storage space\"\n};\n\nexport default {\n\tcomputed: {\n\t\thasUsageMetrics() {\n\t\t\treturn Utils.size(this.usage) > 0;\n\t\t}\n\t},\n\tfilters: {\n\t\tusageLabel(key) {\n\t\t\tif (usageLabels[key]) {\n\t\t\t\treturn usageLabels[key];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Utils.prettifyString(key);\n\t\t\t}\n\t\t},\n\t\tusageValue(num) {\n\t\t\tif (typeof num === 'number') {\n\t\t\t\treturn num.toLocaleString();\n\t\t\t}\n\t\t\treturn num;\n\t\t}\n\t}\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"vue-component log-entry\",class:{[_vm.log.level]: true, expanded: _vm.expanded}},[_c('summary',[_c('span',{staticClass:\"toggle\",on:{\"click\":function($event){return _vm.toggle()}}},[_vm._v(\"▸\")]),_c('span',{staticClass:\"log-message\",on:{\"click\":function($event){!_vm.expanded && _vm.toggle()}}},[_vm._v(_vm._s(_vm.log.message))]),(_vm.log.level)?_c('ul',{staticClass:\"badges small inline\"},[(_vm.relativeTime)?_c('li',{staticClass:\"badge time\",attrs:{\"title\":_vm.formattedTime}},[_vm._v(_vm._s(_vm.relativeTime))]):_vm._e(),_c('li',{staticClass:\"badge\",class:_vm.log.level},[_vm._v(_vm._s(_vm.log.level))])]):_vm._e()]),(_vm.expanded)?_c('ul',{staticClass:\"details\"},[(_vm.log.code)?_c('li',[_vm._v(\"Code: \"+_vm._s(_vm.log.code))]):_vm._e(),(Array.isArray(_vm.log.path) && _vm.log.path.length)?_c('li',[_vm._v(\" Path: \"),_c('ol',{staticClass:\"path\"},_vm._l((_vm.path),function(path,i){return _c('li',{key:i},[_c('strong',[_c('code',[_vm._v(\"#\"+_vm._s(path.node_id))])]),(path.process_id)?[_c('br'),_vm._v(\"Process: \"),_c('code',[_vm._v(_vm._s(path.process_id))]),(path.namespace)?[_vm._v(\" in namespace \"),_c('code',[_vm._v(_vm._s(path.namespace))])]:_vm._e(),(path.parameter)?[_c('br'),_vm._v(\"Parameter: \"),_c('code',[_vm._v(_vm._s(path.parameter))])]:_vm._e()]:_vm._e()],2)}),0)]):_vm._e(),(_vm.hasData)?_c('li',[_vm._v(\" Data: \"),_c('ObjectTree',{attrs:{\"data\":_vm.log.data}})],1):_vm._e(),(_vm.hasUsageMetrics)?_c('li',[_vm._v(\" Usage metrics: \"),_c('ul',{staticClass:\"usage\"},_vm._l((_vm.usage),function(metric,key){return _c('li',{key:key},[_c('strong',{staticClass:\"metric\"},[_vm._v(_vm._s(_vm._f(\"usageLabel\")(key)))]),_vm._v(\": \"+_vm._s(_vm._f(\"usageValue\")(metric.value))+\" \"),_c('span',{staticClass:\"unit\"},[_vm._v(_vm._s(metric.unit))])])}),0)]):_vm._e(),_c('li',[_vm._v(\"ID: \"+_vm._s(_vm.log.id))]),(Array.isArray(_vm.log.links) && _vm.log.links.length)?_c('li',[_vm._v(\" Related Resources: \"),_c('LinkList',{attrs:{\"links\":_vm.log.links}})],1):_vm._e()]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Log.vue?vue&type=template&id=2ff6e855\"\nimport script from \"./Log.vue?vue&type=script&lang=js\"\nexport * from \"./Log.vue?vue&type=script&lang=js\"\nimport style0 from \"./Log.vue?vue&type=style&index=0&id=2ff6e855&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../@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:\"log-viewer\"},[(_vm.logs === null)?_c('div',{staticClass:\"no-data\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_vm._v(\" Loading logs...\")]):_c('Logs',{attrs:{\"logs\":_vm.logs}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"vue-component logs\"},[(_vm.hasLogs)?_c('div',{staticClass:\"log-container\"},[_c('div',{staticClass:\"log-header\"},[_c('div',{staticClass:\"log-search\"},[(_vm.externalSearchTerm === null)?_c('SearchBox',{attrs:{\"placeholder\":\"Search in Logs\",\"minLength\":2},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}):_vm._e(),_c('MultiSelect',{staticClass:\"log-fields\",attrs:{\"options\":_vm.availableFields,\"trackBy\":\"id\",\"label\":\"label\",\"multiple\":true,\"searchable\":false,\"allowEmpty\":false,\"closeOnSelect\":false,\"limit\":3,\"limitText\":count => `+ ${count}`,\"selectedLabel\":\"✓\",\"deselectLabel\":\"✗\",\"selectLabel\":\"+\",\"title\":\"Select the fields to search through\"},model:{value:(_vm.fields),callback:function ($$v) {_vm.fields=$$v},expression:\"fields\"}})],1),_c('MultiSelect',{staticClass:\"log-levels\",attrs:{\"options\":_vm.levels,\"multiple\":true,\"searchable\":false,\"allowEmpty\":false,\"closeOnSelect\":false,\"selectedLabel\":\"✓\",\"deselectLabel\":\"✗\",\"selectLabel\":\"+\",\"title\":\"Select the log levels shown in the list of logs\"},scopedSlots:_vm._u([{key:\"tag\",fn:function(props){return [_c('span',{key:props.index,staticClass:\"multiselect__tag\",class:props.option},[_c('span',{domProps:{\"textContent\":_vm._s(props.option)}}),_c('i',{staticClass:\"multiselect__tag-icon\",attrs:{\"tabindex\":\"1\"},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return props.remove(props.option)},\"mousedown\":function($event){$event.preventDefault();return props.remove(props.option)}}})])]}}],null,false,1224176521),model:{value:(_vm.levelsShown),callback:function ($$v) {_vm.levelsShown=$$v},expression:\"levelsShown\"}})],1),_c('ul',{staticClass:\"log-body\"},_vm._l((_vm.logs),function(log,i){return _c('Log',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.shown[i]),expression:\"shown[i]\"}],key:log.id,attrs:{\"log\":log,\"startTime\":_vm.startTime}})}),1)]):_c('div',{staticClass:\"log-empty\"},[_vm._v(\"No logs available.\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=ce4409e2\"\nimport script from \"./Logs.vue?vue&type=script&lang=js\"\nexport * from \"./Logs.vue?vue&type=script&lang=js\"\nimport style0 from \"vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./Logs.vue?vue&type=style&index=1&id=ce4409e2&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../@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\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!./LogViewer.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!./LogViewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LogViewer.vue?vue&type=template&id=2283b1c9\"\nimport script from \"./LogViewer.vue?vue&type=script&lang=js\"\nexport * from \"./LogViewer.vue?vue&type=script&lang=js\"\nimport style0 from \"./LogViewer.vue?vue&type=style&index=0&id=2283b1c9&prod&lang=css\"\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"],"names":["usageLabels","cpu","memory","duration","network","disk","storage","computed","hasUsageMetrics","size","this","usage","filters","usageLabel","key","prettifyString","usageValue","num","toLocaleString","render","_vm","_c","_self","staticClass","class","log","level","expanded","on","$event","toggle","_v","_s","message","attrs","formattedTime","relativeTime","_e","code","Array","isArray","path","length","_l","i","node_id","process_id","namespace","parameter","data","metric","_f","value","unit","id","links","staticRenderFns","timeUnits","name","mixins","UsageMixin","components","LinkList","ObjectTree","props","type","Object","default","startTime","String","hasData","time","formatTimestamp","start","Date","future","delta","parts","temp","remainder","push","reverse","join","error","methods","component","logs","externalSearchTerm","model","callback","$$v","searchTerm","expression","availableFields","count","fields","levels","scopedSlots","_u","fn","index","option","domProps","indexOf","_k","keyCode","preventDefault","remove","levelsShown","directives","rawName","shown","Log","MultiSelect","SearchBox","label","slice","filter","field","Boolean","map","includes","pickFromObject","search","hasLogs","find","isObject","watch","immediate","handler","beforeCreate","enableHtmlProps","EventBusMixin","Logs","required","syncTimer","Utils","mapState","isJob","debugJob","isService","debugService","logIterator","created","listen","onJobStatusUpdated","mounted","$emit","beforeDestroy","onHide","onShow","loadNext","startWatcher","stopWatcher","job","status","isActiveJobStatusCode","setInterval","bind","clearInterval","nextLogs","exception"],"sourceRoot":""} \ No newline at end of file diff --git a/js/9882.aa162fda.js b/js/9882.0cfed7b6.js similarity index 99% rename from js/9882.aa162fda.js rename to js/9882.0cfed7b6.js index 5ae39b85..3c59e08b 100644 --- a/js/9882.aa162fda.js +++ b/js/9882.0cfed7b6.js @@ -1,2 +1,2 @@ "use strict";(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[9882],{66451:(t,e,o)=>{o.d(e,{A:()=>S});o(81454);var s=o(2566),a=o(61663),i=o(70915),r=o(58704),n=o(41312),l=o(42770),d=o(82986),h=o(54602);const p={mixins:[a.A],methods:{addGeoJson(t,e=!1,o="GeoJSON",a=!0){let n;n=t instanceof h["default"]?t:this.createGeoJsonSource(t,this.map.getView().getProjection());let p=new d["default"]({title:o,source:n});s.A.isObject(a)?p.setStyle(a):!a&&this.removeLayerFill&&this.removeLayerFill(p),this.map.addLayer(p);let u=n.getExtent();if((0,i.Im)(u)||this.map.getView().fit(u,this.getFitOptions()),e){var c=new l.A({hitTolerance:5,multi:!1,condition:r.t5,layers:[p]});c.on("select",this.onSelect),this.map.addInteraction(c)}return p},onSelect(t){if(t.selected.length>0){let e=t.selected[0],o=s.A.omitFromObject(e.getProperties(),["geometry"]),a=e.getId()||"Feature Properties";this.broadcast("showDataModal",o,a)}},createGeoJsonSource(t,e){let o=[];return s.A.detectGeoJson(t)&&(o=(new n.A).readFeatures(t,{featureProjection:e})),new h["default"]({features:o,wrapX:!1})}}},u=p;var c,g,m=o(81656),w=(0,m.A)(u,c,g,!1,null,null,null);const f=w.exports;var y=o(86717),b=o(34142);const A={mixins:[f],methods:{addExtent(t,e=!0){let o=null;return o=s.A.isObject(t)?"undefined"!==typeof t.west&&"undefined"!==typeof t.east&&"undefined"!==typeof t.south&&"undefined"!==typeof t.north?[t]:"Collection"===t.type?t.extent.spatial.bbox.map((t=>s.A.extentToBBox(t))):"Feature"!==t.type||t.geometry||t.bbox?t:null:t,Array.isArray(o)&&o.length>0?this.addRectangles(o,e):o?this.addGeoJson(o,!1,"Footprint",e):null},addRectangles(t,e=!0){let o=this.map.getView().getProjection(),s=t.map((t=>{let e=(0,b.VY)([t.west,t.south,t.east,t.north]).transform("EPSG:4326",o);return new y["default"](e)})),a=new h["default"]({features:s,projection:o,wrapX:!1}),i=new d["default"]({title:"Bounding Boxes",displayInLayerSwitcher:!1,source:a});return e||this.removeLayerFill(i),this.map.addLayer(i),this.map.getView().fit(a.getExtent(),this.getFitOptions()),i},removeLayerFill(t){let e=t.getStyle();"function"===typeof e&&(e=e()[0]),e.setFill(null)}}},L=A;var v,x,C=(0,m.A)(L,v,x,!1,null,null,null);const S=C.exports},95104:(t,e,o)=>{o.d(e,{A:()=>B});o(81454);var s=o(61663),a=o(2566),i=(o(82488),o(57364)),r=o(43965),n=o(80169),l=o(64488),d=o(866),h=o(89718),p=o(95286),u=o(51176),c=o(30945),g=o(10702),m=o(99037),w=function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"show",rawName:"v-show",value:t.show,expression:"show"}],staticClass:"ol-unselectable ol-progress-control"},[e("div",{staticClass:"progress-bar"},[e("div",{staticClass:"progress-bar-inner",style:{width:t.percent}})]),e("div",{staticClass:"progress-label"},[t._v(t._s(t.label))])])},f=[],y=o(23634);const b={name:"ProgressControl",mixins:[y.A],data(){return{loading:0,loaded:0}},computed:{show(){return this.loading>0&&this.loaded<=this.loading},percent(){return(this.loaded/this.loading*100).toFixed(1)+"%"},label(){return"Loading Tiles ("+this.percent+")"}},methods:{addLoading(){this.loading++,this.update()},addLoaded(){this.loaded++,this.update()},update(){this.loading===this.loaded&&(this.loading=0,this.loaded=0),this.loading===this.loaded&&(this.loading=0,this.loaded=0)}}},A=b;var L=o(81656),v=(0,L.A)(A,w,f,!1,null,"3a0e8f20",null);const x=v.exports;var C=function(){var t=this,e=t._self._c;return e("div",{staticClass:"ol-location ol-unselectable ol-control",staticStyle:{"pointer-events":"auto"}},[e("button",{attrs:{type:"button",title:"Go to your location"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.request.apply(null,arguments)}}},[e("i",{staticClass:"fas fa-location-arrow"})])])},S=[];const F={name:"UserLocationControl",mixins:[y.A],methods:{request(){"geolocation"in navigator&&navigator.geolocation.getCurrentPosition((t=>{let e=this.map.getView(),o=[t.coords.longitude,t.coords.latitude];e.setCenter((0,h.fromLonLat)(o,e.getProjection()))}),(t=>Utils.error(this,t,"Location Error")),{maximumAge:1/0})}}},j=F;var P=(0,L.A)(j,C,S,!1,null,"34b57b3b",null);const M=P.exports;let $=1;const _={components:{ProgressControl:x,UserLocationControl:M},mixins:[s.A],props:{show:{type:Boolean,default:!0},editable:{type:Boolean,default:!0},removableLayers:{type:Boolean,default:!1}},data(){return{map:null,id:"map_"+$++,options:{}}},watch:{async show(){await this.showMap()}},async mounted(){await this.showMap()},methods:{async showMap(){this.show&&(await this.$nextTick(),await this.renderMap(),this.$emit("options",this.options))},async createMap(t="EPSG:3857"){let e,o={showFullExtent:!0};if("string"===typeof t?o.projection=await u.A.get(t):t instanceof p.A?o.projection=t:t instanceof d.Ay?e=t:a.A.isObject(t)&&(o=t),!e){if(e=new d.Ay(o),!e.getCenter()){let t=this.$config.mapLocation;Array.isArray(t)&&2==t.length||(t=[0,0]),e.setCenter((0,h.fromLonLat)([t[1],t[0]],e.getProjection()))}e.getZoom()||e.setZoom(this.$config.mapZoom||0)}if(null!==this.map)return this.map.updateSize(),void this.map.render();var s=[new i.A,new r.A],c={target:this.id,view:e};this.editable?c.controls=(0,n.N)().extend(s):(c.interactions=[],c.controls=s),this.map=new l.A(c),this.listen("windowResized",this.updateMapSize)},addLayerSwitcher(){const t={trash:this.removableLayers,extent:!0};this.map.addControl(new m.A(t))},addBasemaps(){let t={opaque:!0,attributionsCollapsible:!1,wrapX:!1},e=[];if(Array.isArray(this.$config.basemaps)){let o=!1;for(let s of this.$config.basemaps){let a=new g.A(Object.assign({},t,s)),i=new c.A({source:this.trackTileProgress(a),baseLayer:!0,title:s.title,noSwitcherDelete:!0,visible:!o});e.push(i),this.map.addLayer(i),o=!0}}return e},setOptions(t,e){this.options[t]=e,this.$emit("options",this.options)},onShow(){this.listen("windowResized",this.updateMapSize)},onHide(){this.unlisten("windowResized")},async renderMap(){await this.createMap(),this.addBasemaps()},async updateMapSize(){this.map&&(await this.$nextTick(),this.map.updateSize())},addLayerToMap(t){t.set("userLayer",!0),this.map.addLayer(t)},removeLayerFromMap(t){let e=this.getLayerFromMap(t);e&&this.map.removeLayer(e)},getLayerFromMap(t){let e=this.map.getLayers().getArray();for(let o of e)if(o.get("id")===t)return o;return null},getVisibleLayers(){let t=[],e=this.map.getLayers().getArray();for(let o of e)o.get("userLayer")&&o.getVisible()&&t.push(o);return t},getFitOptions(t=25){let e={};var o=this.map.getSize();return e.padding=o&&t>0?[o[1]*t/100,o[0]*t/100,o[1]*t/100,o[0]*t/100]:[30,30,30,30],e},trackTileProgress(t){if(this.$refs.progress){t.on("tileloadstart",(()=>this.$refs.progress&&this.$refs.progress.addLoading()));let e=()=>this.$refs.progress&&this.$refs.progress.addLoaded();t.on("tileloadend",e),t.on("tileloaderror",e)}return t},fromLonLat(t){return(0,h.fromLonLat)(t,this.map.getView().getProjection())},toExtent(t){let e=null;return a.A.isObject(t)&&"west"in t&&"south"in t&&"east"in t&&"north"in t?e=[t.west,t.south,t.east,t.north]:Array.isArray(t)&&t.length>=4&&(e=t),e}}},O=_;var T,k,z=(0,L.A)(O,T,k,!1,null,null,null);const B=z.exports},23634:(t,e,o)=>{o.d(e,{A:()=>a});o(81454);var s=o(10972);const a={props:{map:{type:Object}},data(){return{control:null}},mounted(){this.control=new s["default"]({element:this.$el})},watch:{map(t){t&&this.map.addControl(this.control)}},methods:{getControl(){return this.control}}}}}]); -//# sourceMappingURL=9882.aa162fda.js.map \ No newline at end of file +//# sourceMappingURL=9882.0cfed7b6.js.map \ No newline at end of file diff --git a/js/9882.aa162fda.js.map b/js/9882.0cfed7b6.js.map similarity index 99% rename from js/9882.aa162fda.js.map rename to js/9882.0cfed7b6.js.map index 40a14a9f..4d3272a1 100644 --- a/js/9882.aa162fda.js.map +++ b/js/9882.0cfed7b6.js.map @@ -1 +1 @@ -{"version":3,"file":"js/9882.aa162fda.js","mappings":"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","sources":["webpack://@openeo/web-editor/src/components/maps/GeoJsonMixin.vue","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMixin.vue?fc6d","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMixin.vue","webpack://@openeo/web-editor/src/components/maps/ExtentMixin.vue","webpack://@openeo/web-editor/./src/components/maps/ExtentMixin.vue?0e90","webpack://@openeo/web-editor/./src/components/maps/ExtentMixin.vue","webpack://@openeo/web-editor/./src/components/maps/ProgressControl.vue","webpack://@openeo/web-editor/src/components/maps/ProgressControl.vue","webpack://@openeo/web-editor/./src/components/maps/ProgressControl.vue?5a7a","webpack://@openeo/web-editor/./src/components/maps/ProgressControl.vue?33a4","webpack://@openeo/web-editor/./src/components/maps/UserLocationControl.vue","webpack://@openeo/web-editor/src/components/maps/UserLocationControl.vue","webpack://@openeo/web-editor/./src/components/maps/UserLocationControl.vue?5ceb","webpack://@openeo/web-editor/./src/components/maps/UserLocationControl.vue?73c5","webpack://@openeo/web-editor/src/components/maps/MapMixin.vue","webpack://@openeo/web-editor/./src/components/maps/MapMixin.vue?c1da","webpack://@openeo/web-editor/./src/components/maps/MapMixin.vue","webpack://@openeo/web-editor/./src/components/maps/ControlMixin.js"],"sourcesContent":["","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!./GeoJsonMixin.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!./GeoJsonMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeoJsonMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeoJsonMixin.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 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!./ExtentMixin.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!./ExtentMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./ExtentMixin.vue?vue&type=script&lang=js\"\nexport * from \"./ExtentMixin.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',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"ol-unselectable ol-progress-control\"},[_c('div',{staticClass:\"progress-bar\"},[_c('div',{staticClass:\"progress-bar-inner\",style:({width: _vm.percent})})]),_c('div',{staticClass:\"progress-label\"},[_vm._v(_vm._s(_vm.label))])])\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!./ProgressControl.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!./ProgressControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProgressControl.vue?vue&type=template&id=3a0e8f20&scoped=true\"\nimport script from \"./ProgressControl.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProgressControl.vue?vue&type=style&index=0&id=3a0e8f20&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 \"3a0e8f20\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ol-location ol-unselectable ol-control\",staticStyle:{\"pointer-events\":\"auto\"}},[_c('button',{attrs:{\"type\":\"button\",\"title\":\"Go to your location\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.request.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-location-arrow\"})])])\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!./UserLocationControl.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!./UserLocationControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserLocationControl.vue?vue&type=template&id=34b57b3b&scoped=true\"\nimport script from \"./UserLocationControl.vue?vue&type=script&lang=js\"\nexport * from \"./UserLocationControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserLocationControl.vue?vue&type=style&index=0&id=34b57b3b&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 \"34b57b3b\",\n null\n \n)\n\nexport default component.exports","","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!./MapMixin.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!./MapMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./MapMixin.vue?vue&type=script&lang=js\"\nexport * from \"./MapMixin.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 { Control } from 'ol/control.js';\n\nexport default {\n\tprops: {\n\t\tmap: {\n\t\t\ttype: Object\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcontrol: null\n\t\t};\n\t},\n\tmounted() {\n\t\tthis.control = new Control({\n\t\t\telement: this.$el\n\t\t});\n\t},\n\twatch: {\n\t\tmap(newMap) {\n\t\t\tif (newMap) {\n\t\t\t\tthis.map.addControl(this.control);\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\tgetControl() {\n\t\t\treturn this.control;\n\t\t}\n\t}\n}"],"names":["mixins","EventBusMixin","methods","addGeoJson","geojson","selectable","title","fillOrStyle","source","VectorSource","createGeoJsonSource","map","getView","getProjection","layer","VectorLayer","Utils","isObject","setStyle","removeLayerFill","addLayer","extent","getExtent","extentIsEmpty","fit","getFitOptions","select","Select","hitTolerance","multi","condition","singleClick","layers","on","onSelect","addInteraction","event","selected","length","feature","props","omitFromObject","getProperties","getId","broadcast","projection","features","detectGeoJson","GeoJSON","readFeatures","featureProjection","wrapX","render","staticRenderFns","component","GeoJsonMixin","addExtent","data","fill","footprint","west","east","south","north","type","spatial","bbox","extentToBBox","geometry","Array","isArray","addRectangles","rectangles","mapProj","polygon","PolygonFromExtent","transform","Feature","displayInLayerSwitcher","style","getStyle","setFill","_vm","this","_c","_self","directives","name","rawName","value","show","expression","staticClass","width","percent","_v","_s","label","ControlMixin","loading","loaded","computed","toFixed","addLoading","update","addLoaded","staticStyle","attrs","$event","preventDefault","stopPropagation","request","apply","arguments","navigator","geolocation","getCurrentPosition","position","view","coords","longitude","latitude","setCenter","fromLonLat","error","maximumAge","Infinity","idCounter","components","ProgressControl","UserLocationControl","Boolean","default","editable","removableLayers","id","options","watch","showMap","mounted","$nextTick","renderMap","$emit","createMap","opts","viewOpts","showFullExtent","ProjManager","get","Projection","View","getCenter","location","$config","mapLocation","getZoom","setZoom","mapZoom","updateSize","customControls","FullScreen","ScaleLine","mapOptions","target","controls","defaultControls","extend","interactions","Map","listen","updateMapSize","addLayerSwitcher","trash","addControl","LayerSwitcher","addBasemaps","basemapOptions","opaque","attributionsCollapsible","baselayers","basemaps","hasDefault","basemap","XYZ","Object","assign","baselayer","TileLayer","trackTileProgress","baseLayer","noSwitcherDelete","visible","push","setOptions","key","onShow","onHide","unlisten","addLayerToMap","set","removeLayerFromMap","getLayerFromMap","removeLayer","getLayers","getArray","getVisibleLayers","shownLayers","getVisible","paddingPc","fitOptions","size","getSize","padding","$refs","progress","loadedFn","toExtent","control","Control","element","$el","newMap","getControl"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/9882.0cfed7b6.js","mappings":"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","sources":["webpack://@openeo/web-editor/src/components/maps/GeoJsonMixin.vue","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMixin.vue?fc6d","webpack://@openeo/web-editor/./src/components/maps/GeoJsonMixin.vue","webpack://@openeo/web-editor/src/components/maps/ExtentMixin.vue","webpack://@openeo/web-editor/./src/components/maps/ExtentMixin.vue?0e90","webpack://@openeo/web-editor/./src/components/maps/ExtentMixin.vue","webpack://@openeo/web-editor/./src/components/maps/ProgressControl.vue","webpack://@openeo/web-editor/src/components/maps/ProgressControl.vue","webpack://@openeo/web-editor/./src/components/maps/ProgressControl.vue?5a7a","webpack://@openeo/web-editor/./src/components/maps/ProgressControl.vue?33a4","webpack://@openeo/web-editor/./src/components/maps/UserLocationControl.vue","webpack://@openeo/web-editor/src/components/maps/UserLocationControl.vue","webpack://@openeo/web-editor/./src/components/maps/UserLocationControl.vue?5ceb","webpack://@openeo/web-editor/./src/components/maps/UserLocationControl.vue?73c5","webpack://@openeo/web-editor/src/components/maps/MapMixin.vue","webpack://@openeo/web-editor/./src/components/maps/MapMixin.vue?c1da","webpack://@openeo/web-editor/./src/components/maps/MapMixin.vue","webpack://@openeo/web-editor/./src/components/maps/ControlMixin.js"],"sourcesContent":["","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!./GeoJsonMixin.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!./GeoJsonMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./GeoJsonMixin.vue?vue&type=script&lang=js\"\nexport * from \"./GeoJsonMixin.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 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!./ExtentMixin.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!./ExtentMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./ExtentMixin.vue?vue&type=script&lang=js\"\nexport * from \"./ExtentMixin.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',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"ol-unselectable ol-progress-control\"},[_c('div',{staticClass:\"progress-bar\"},[_c('div',{staticClass:\"progress-bar-inner\",style:({width: _vm.percent})})]),_c('div',{staticClass:\"progress-label\"},[_vm._v(_vm._s(_vm.label))])])\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!./ProgressControl.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!./ProgressControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProgressControl.vue?vue&type=template&id=3a0e8f20&scoped=true\"\nimport script from \"./ProgressControl.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProgressControl.vue?vue&type=style&index=0&id=3a0e8f20&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 \"3a0e8f20\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ol-location ol-unselectable ol-control\",staticStyle:{\"pointer-events\":\"auto\"}},[_c('button',{attrs:{\"type\":\"button\",\"title\":\"Go to your location\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.request.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-location-arrow\"})])])\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!./UserLocationControl.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!./UserLocationControl.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserLocationControl.vue?vue&type=template&id=34b57b3b&scoped=true\"\nimport script from \"./UserLocationControl.vue?vue&type=script&lang=js\"\nexport * from \"./UserLocationControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserLocationControl.vue?vue&type=style&index=0&id=34b57b3b&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 \"34b57b3b\",\n null\n \n)\n\nexport default component.exports","","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!./MapMixin.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!./MapMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./MapMixin.vue?vue&type=script&lang=js\"\nexport * from \"./MapMixin.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 { Control } from 'ol/control.js';\n\nexport default {\n\tprops: {\n\t\tmap: {\n\t\t\ttype: Object\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcontrol: null\n\t\t};\n\t},\n\tmounted() {\n\t\tthis.control = new Control({\n\t\t\telement: this.$el\n\t\t});\n\t},\n\twatch: {\n\t\tmap(newMap) {\n\t\t\tif (newMap) {\n\t\t\t\tthis.map.addControl(this.control);\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\tgetControl() {\n\t\t\treturn this.control;\n\t\t}\n\t}\n}"],"names":["mixins","EventBusMixin","methods","addGeoJson","geojson","selectable","title","fillOrStyle","source","VectorSource","createGeoJsonSource","map","getView","getProjection","layer","VectorLayer","Utils","isObject","setStyle","removeLayerFill","addLayer","extent","getExtent","extentIsEmpty","fit","getFitOptions","select","Select","hitTolerance","multi","condition","singleClick","layers","on","onSelect","addInteraction","event","selected","length","feature","props","omitFromObject","getProperties","getId","broadcast","projection","features","detectGeoJson","GeoJSON","readFeatures","featureProjection","wrapX","render","staticRenderFns","component","GeoJsonMixin","addExtent","data","fill","footprint","west","east","south","north","type","spatial","bbox","extentToBBox","geometry","Array","isArray","addRectangles","rectangles","mapProj","polygon","PolygonFromExtent","transform","Feature","displayInLayerSwitcher","style","getStyle","setFill","_vm","this","_c","_self","directives","name","rawName","value","show","expression","staticClass","width","percent","_v","_s","label","ControlMixin","loading","loaded","computed","toFixed","addLoading","update","addLoaded","staticStyle","attrs","$event","preventDefault","stopPropagation","request","apply","arguments","navigator","geolocation","getCurrentPosition","position","view","coords","longitude","latitude","setCenter","fromLonLat","error","maximumAge","Infinity","idCounter","components","ProgressControl","UserLocationControl","Boolean","default","editable","removableLayers","id","options","watch","showMap","mounted","$nextTick","renderMap","$emit","createMap","opts","viewOpts","showFullExtent","ProjManager","get","Projection","View","getCenter","location","$config","mapLocation","getZoom","setZoom","mapZoom","updateSize","customControls","FullScreen","ScaleLine","mapOptions","target","controls","defaultControls","extend","interactions","Map","listen","updateMapSize","addLayerSwitcher","trash","addControl","LayerSwitcher","addBasemaps","basemapOptions","opaque","attributionsCollapsible","baselayers","basemaps","hasDefault","basemap","XYZ","Object","assign","baselayer","TileLayer","trackTileProgress","baseLayer","noSwitcherDelete","visible","push","setOptions","key","onShow","onHide","unlisten","addLayerToMap","set","removeLayerFromMap","getLayerFromMap","removeLayer","getLayers","getArray","getVisibleLayers","shownLayers","getVisible","paddingPc","fitOptions","size","getSize","padding","$refs","progress","loadedFn","toExtent","control","Control","element","$el","newMap","getControl"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.7eddb026.js b/js/app.c3a32488.js similarity index 97% rename from js/app.7eddb026.js rename to js/app.c3a32488.js index 2158c43e..486564b6 100644 --- a/js/app.7eddb026.js +++ b/js/app.c3a32488.js @@ -1,2 +1,2 @@ -(()=>{var e={66644:(e,t,s)=>{"use strict";s.d(t,{A:()=>p});var r=function(){var e=this,t=e._self._c;return t("div",{staticClass:"logo"},[e.$config.logo?t("img",{attrs:{src:e.$config.logo,alt:e.$config.serviceName}}):e._e(),t("h2",[e._v(e._s(e.$config.appName)+" "),t("span",{staticClass:"version",on:{click:e.showWebEditorInfo}},[e._v(e._s(e.version))])])])},i=[],a=s(61663),o=s(8330);const n={name:"Logo",mixins:[a.A],data(){return{version:o.version}},methods:{showWebEditorInfo(){this.broadcast("showWebEditorInfo")}}},c=n;var l=s(81656),d=(0,l.A)(c,r,i,!1,null,"af3cbbb2",null);const p=d.exports},19306:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r={serverUrl:"",serviceName:"openEO",appName:"Web Editor",skipLogin:!1,mapLocation:[49.8,9.9],mapZoom:4,geocoder:"https://nominatim.openstreetmap.org/search",loginMessage:"",logo:"./logo.png",snotifyDefaults:{timeout:1e4,titleMaxLength:30,bodyMaxLength:120,showProgressBar:!0,closeOnClick:!0,pauseOnHover:!0},supportedMapServices:["xyz","wmts"],supportedBatchJobSharingServices:["ShareEditor","CopyUrl","BlueskyShare","MastodonSocialShare","XShare"],supportedWebServiceSharingServices:["ShareEditor","CopyUrl","BlueskyShare","MastodonSocialShare","XShare"],supportedWizards:[{component:"SpectralIndices",title:"Compute Spectral Indices",description:"A spectral index is a mathematical equation that is applied on the various spectral bands of an image per pixel. It is often used to highlight vegetation, urban areas, snow, burn, soil, or water/drought/moisture stress. Provided by Awesome Spectral Indices (https://github.com/awesome-spectral-indices/awesome-spectral-indices).",requiredProcesses:["reduce_dimension"]}],basemaps:[{title:"OpenStreetMap",url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",attributions:'© OpenStreetMap contributors.',maxZoom:19}],importCommunityExamples:!0,processNamespaces:[],oidcClientIds:{},showHttpWarning:!0,dataRefreshInterval:2,showExperimentalByDefault:!1,showDeprecatedByDefault:!1,pageLimit:50}},61663:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r={data(){return{eventBusListeners:{}}},beforeDestroy(){for(var e in this.eventBusListeners)this.$root.$off(e,this.eventBusListeners[e])},methods:{hasListener(e){return!!this.eventBusListeners[e]},listen(e,t){this.unlisten(e),this.$root.$on(e,t),this.eventBusListeners[e]=t},unlisten(e){this.hasListener(e)&&(this.$root.$off(e,this.eventBusListeners[e]),delete this.eventBusListeners[e])},broadcast(){this.$root.$emit(...arguments)}}}},51176:(e,t,s)=>{"use strict";s.d(t,{A:()=>c});var r=s(96737),i=s(89718),a=s(95286),o=s(84078),n=s(2566);class c{static async get(e){return e instanceof a.A?e:await c._load(e)}static add(e,t,s){try{r.A.defs(e,t),(0,o.kz)(r.A);let a=(0,i.get)(e);return Array.isArray(s)&&(s=(0,i.transformExtent)(s,"EPSG:4326",a),a.setExtent(s)),t.includes("+datum=WGS84")&&(a.basemap=!0),a}catch(a){return console.error(a),null}}static async addFromStac(e){if(n.A.isObject(e)&&n.A.isObject(e.properties)){if(e.properties["proj:code"])return await c.get(e.properties["proj:code"]);if(e.properties["proj:wkt2"])return c.add(e.id,e.properties["proj:wkt2"])}return null}static async _load(e){let t,r;if("string"===typeof e&&e.match(/^EPSG:\d+$/i))t=e.toUpperCase(),r=e.substr(5);else{if(!Number.isInteger(e))return null;t=`EPSG:${e}`,r=String(e)}let a=(0,i.get)(t);if(a)return a;let o=await s.e(4054).then(s.t.bind(s,14054,19));return r in o?c.add(t,o[r][0],o[r][1]):null}}},40772:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});s(81454);var r=s(6765);class i extends r.wI{constructor(e,t=[",",";"]){super(e,"TableViewer","fa-table"),this.delim=t}async parseData(e){if("string"===typeof e){let t=this.parseCSV(e.trim());return t.map((e=>e.map((e=>(e=e.trim(),0===e.length?NaN:isNaN(e)?e:parseFloat(e))))))}return e}parseCSV(e){for(var t=[],s=!1,r=0,i=0,a=0;a{"use strict";s.d(t,{rS:()=>o,wI:()=>a,yL:()=>i});var r=s(2566);class i{constructor(e){Object.assign(this,e),this.context=null}setContext(e){this.context=e}getContext(){return this.context}getUrl(){return this.href}canGroup(){return!1}isBinary(){return!0}download(e=null){let t=document.createElement("a");t.style.display="none",t.href=this.getUrl(),t.setAttribute("download",e||r.A.makeFileName("result",this.type)),t.setAttribute("target","_blank"),document.body.appendChild(t),t.click(),document.body.removeChild(t)}async loadData(e){this.loaded||(this.data=await this.fetchData(e),this.loaded=!0)}getData(){if(!this.loaded)throw new Error("Data must be loaded before");return this.data}async fetchData(e){let t,s=this.getUrl();if(s.startsWith("blob:")){let e=await fetch(s);t=await e.blob()}else{let r=!1;try{let t=new URL(e.getUrl()),i=new URL(s);r=t.origin===i.origin}catch(a){}t=await e.download(s,r)}let r=new Promise(((e,s)=>{let r=new FileReader;r.onload=t=>e(t.target.result),r.onerror=s,this.isBinary()?r.readAsBinaryString(t):r.readAsText(t)})),i=await r;return await this.parseData(i)}async parseData(e){return e}}class a extends i{constructor(e,t=null,s="fa-database",r={},i={}){super(e),this.loaded=!1,this.component=t,this.props=r,this.props.data||(this.props.data=this),this.icon=s,this.events=i}isBinary(){return!1}}class o extends i{constructor(e){super(e)}}},76130:(e,t,s)=>{"use strict";s.d(t,{A:()=>m});s(98992),s(3949);var r=s(6765),i=s(2566),a=s(51176),o=s(34099),n=s(98622),c=s(89718),l=s(95286),d=s(8100);const p="STATISTICS_MINIMUM",u="STATISTICS_MAXIMUM",h="DESCRIPTION";class f extends r.wI{constructor(e,t){super(e,"MapViewer","fa-map",{removableLayers:!0}),this._bands=[],this._nodata=[],this.img=null,this.projection=null,this.extent=null,this.convertToRGB=!1,this.stac=t}isBinary(){return!0}canGroup(){return!0}async loadData(e){return this.loaded||(await this.parseMetadata(),this.loaded=!0),this}getData(){return this}async parseMetadata(){let e,t,s=this.stac&&(this.stac.geometry||this.stac.extent);this.projection=await a.A.addFromStac(this.stac),Array.isArray(this["file:nodata"])&&this["file:nodata"].length>0&&(this._nodata=i.A.parseNodata(this["file:nodata"])),Array.isArray(this.bands)&&this.bands.length>0&&this.bands.forEach(((e,t)=>{e.name&&this.setBandInfo(t,{name:e.name}),i.A.isObject(e.statistics)&&this.setBandInfo(t,{min:e.statistics.minimum,max:e.statistics.maximum}),0===this._nodata.length&&"undefined"!==typeof e.nodata&&this._nodata.push(i.A.parseNodata(e.nodata))})),e=this.getBlob()?await(0,o._F)(this.getBlob()):await(0,o.uz)(this.getUrl()),this.img=await e.getImage();for(let a=0;a{"use strict";s.d(t,{A:()=>o});s(98992),s(37550);var r=s(2566),i=s(6765);class a extends i.wI{constructor(e,t="DataViewer"){super(e,t),this.isGeoJson=!1}async parseData(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){console.log(t)}return r.A.detectGeoJson(e)?(this.isGeoJson=!0,this.component="MapViewer",this.icon="fa-map"):this.isTable(e)&&(this.component="TableViewer",this.icon="fa-table"),e}isTable(e){if(!e||"object"!==typeof e||0===r.A.size(e))return!1;let t=Object.values(e),s=Object.keys(t[0]);return!t.some((e=>!e||"object"!==typeof e||!r.A.equals(Object.keys(e),s)))}}const o=a},15424:(e,t,s)=>{"use strict";s(98992),s(54520);var r=s(85471),i=s(96346),a=(s(72577),s(81454),s(95353)),o=s(73902),n=s(31572),c=s(71321),l=s.n(c),d=s(2566),p=s(60478),u=s(14894);const h={mathProcesses:null,getMathProcesses(){return this.mathProcesses||(this.mathProcesses=this.all().filter(p.A.isMathProcess)),this.mathProcesses},isMath(e){if(e instanceof u.ProcessGraph&&(e=e.process),!d.A.isObject(e)||0===d.A.size(e.process_graph))return null;let t=this.getMathProcesses().map((e=>e.id)).concat(Object.values(o.Formula.operatorMapping)).concat(Object.keys(o.Formula.arrayOperatorMapping)).concat(["array_element"]),s=Object.values(e.process_graph).find((e=>!t.includes(e.process_id)));return"undefined"===typeof s}};var f=s(19306),m=(s(3949),s(58597)),g=s(6765);class v extends g.wI{constructor(e){super(e,"ImageViewer","fa-image")}isBinary(){return!0}async fetchData(){return new Promise(((e,t)=>{let s=new Image;s.crossOrigin="anonymous",s.onerror=()=>t(new Error("Failed to load the image")),s.onload=()=>e(s),s.fetchPriotity="high",s.decoding="sync",s.src=this.getUrl()}))}}const b=v;var y=s(40772),w=s(76130),A=s(75024);class C extends g.wI{constructor(e){super(e,"DataViewer")}}const P=C;class S extends y.A{constructor(e){super(e,["\t"])}}const x=S;class M{constructor(){}createFilesFromSTAC(e,t=null){let s=Object.values(e.assets).filter((e=>!Array.isArray(e.roles)||!e.roles.includes("metadata"))).map((t=>this.createFileFromAsset(t,e)));return t&&s.forEach((e=>e.setContext(t))),s}createFilesFromBlob(e){if(!(e instanceof Blob))throw new Error("Given data is not a valid Blob");return this.createFilesFromSTAC({stac_version:"1.0.0",type:"Feature",geometry:null,properties:{},links:[],assets:{result:{href:URL.createObjectURL(e),blob:e,type:e.type}}})}createFileFromAsset(e,t){try{if("string"===typeof e.type){let s=m.parse(e.type.toLowerCase());switch(s.type){case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/webp":return new b(e);case"application/json":case"text/json":case"application/geo+json":return new A.A(e);case"text/plain":return new P(e);case"text/csv":return new y.A(e);case"text/tab-separated-values":return new x(e);case"image/tiff":return new w.A(e,t)}}if("string"===typeof e.href){let s=e.href.split(/[#?]/)[0].split(".").pop().trim().toLowerCase();switch(s){case"png":case"jpg":case"jpeg":case"gif":case"webp":return new b(e);case"json":case"geojson":return new A.A(e);case"txt":return new P(e);case"csv":return new y.A(e);case"tsv":return new x(e);case"tif":case"tiff":return new w.A(e,t)}}}catch(s){console.log(s)}return new g.rS(e)}}const O="serverUrls",_=()=>({appMode:null,storedServers:JSON.parse(localStorage.getItem(O)||"[]"),context:null,process:null,discoverySearchTerm:"",hightestModalZIndex:1e3,epsgCodes:[],initialProcess:null,initialNode:null,openWizard:null,openWizardProps:{},collectionPreview:null,viewerOptions:{},modelDnD:null,formatRegistry:new M}),F={namespaced:!0,state:_(),getters:{hasProcess:e=>d.A.isObject(e.process)&&d.A.size(e.process)>0&&d.A.size(e.process.process_graph),getModelNodeFromDnD:(e,t,s,r)=>()=>new Promise(((t,s)=>{if(!e.modelDnD)return void t(null);const i=()=>{switch(e.modelDnD.type){case"collection":return{process_id:"load_collection",arguments:r.collectionDefaults(e.modelDnD.data.id)};case"process":return{process_id:e.modelDnD.data.id,namespace:e.modelDnD.data.namespace,arguments:{}};case"udf":return{process_id:"run_udf",arguments:e.modelDnD.data};case"fileformat":return{process_id:"save_result",arguments:{format:e.modelDnD.data.name,options:{}}};default:return null}};if(e.modelDnD.loading){let s=setInterval((()=>{e.modelDnD&&!e.modelDnD.loading&&(clearInterval(s),t(i()))}),50)}else t(i())}))},actions:{async loadEpsgCodes(e){if(0===e.state.epsgCodes.length){let t=await s.e(4011).then(s.t.bind(s,64011,19));e.commit("epsgCodes",t.default)}},async loadInitialProcess(e){if(!e.state.process)if(d.A.isUrl(e.state.initialProcess)){let s=await d.A.axios().get(e.state.initialProcess);if(d.A.isObject(s.data)){var t=new u.ProcessGraph(s.data);t.parse(),e.commit("setProcess",s.data)}}else if("string"===typeof e.state.initialProcess&&e.state.initialProcess.length>0){let[t,r]=d.A.extractUDPParams(e.state.initialProcess);try{await e.dispatch("loadProcess",{id:t,namespace:r},{root:!0})}catch(s){console.warn(s)}e.commit("setProcess",{process_graph:{[t]:{process_id:t,namespace:r,arguments:{},result:!0}}})}},async loadForAppMode(e){if(e.state.appMode&&"service"!==e.state.appMode.resultType)try{let t=await d.A.axios().get(e.state.appMode.resultUrl);d.A.isObject(t.data)&&e.commit("setAppModeData",t.data)}catch(t){throw console.error(t),new Error("Sorry, the shared data is not available anymore!")}}},mutations:{setModelDnD(e,t=null){e.modelDnD=t},setDiscoverySearchTerm(e,t){e.discoverySearchTerm="string"===typeof t?t:""},setInitialProcess(e,t){e.initialProcess=t},setInitialNode(e,t){e.initialNode=t},setAppMode(e,t){e.appMode={...t,title:"Results",data:null,expires:null}},setAppModeData(e,t){let s,i,a;t.type&&(t=l().stac(t,!1)),r.Ay.set(e.appMode,"data",t),"Collection"===t.type?(s=d.A.getProcessingExpression(t)||d.A.getProcessingExpression(t.summaries),i=t.title,a=t.expires):"Feature"===t.type&&(s=d.A.getProcessingExpression(t.properties),i=t.properties?.title,a=t.properties?.expires),s&&(e.process=s),i&&(r.Ay.set(e.appMode,"title",i),r.Ay.set(e.appMode,"expires",a),e.context=i)},setViewerOptions(e,t){e.viewerOptions=t||{}},setOpenWizard(e,{component:t,options:s}){e.openWizard=t,t&&(e.openWizardProps=s)},setCollectionPreview(e,t){e.collectionPreview=t,e.discoverySearchTerm||(e.discoverySearchTerm="string"===typeof t?t:"")},openModal(e){e.hightestModalZIndex=e.hightestModalZIndex+1},closeModal(e){e.hightestModalZIndex=e.hightestModalZIndex-1},addServer(e,t){-1===e.storedServers.indexOf(t)&&e.storedServers.push(t),localStorage.setItem(O,JSON.stringify(e.storedServers))},removeServer(e,t){e.storedServers.splice(e.storedServers.indexOf(t),1),localStorage.setItem(O,JSON.stringify(e.storedServers))},setContext(e,t){e.context=t,t instanceof o.Job||t instanceof o.Service?e.process=t.process:t instanceof o.UserProcess?e.process=t.toJSON():d.A.isObject(t)&&t.process?e.process=t.process:e.process=t},setProcess(e,t){e.process=t},epsgCodes(e,t){e.epsgCodes=t},reset(e){Object.assign(e,_())}}},T=({namespace:e,listFn:t,paginateFn:s,createFn:i,updateFn:a,deleteFn:c,readFn:l,readFnById:d,customizations:p,primaryKey:u})=>{u||(u="id");const h=()=>({pages:null,hasMore:!1,[e]:[]});let f={namespaced:!0,state:h(),getters:{supportsList:(e,s,r,i)=>i.supports(t),supportsCreate:(e,t,s,r)=>r.supports(i),supportsUpdate:(e,t,s,r)=>r.supports(a),supportsDelete:(e,t,s,r)=>r.supports(c),supportsRead:(e,t,s,r)=>r.supports(l),getById:t=>s=>{let r=t[e].find((e=>e[u]===s));return"undefined"!==typeof r?r:null}},actions:{async create(e,t){if(e.getters.supportsCreate){let s=e.rootState.connection,r=await s[i].apply(s,t);return e.commit("upsert",r),r}throw new Error("Adding is not supported by the server.")},async delete(e,{data:t}){if(!e.getters.supportsDelete)throw new Error("Deleting is not supported by the server.");await t[c](),e.commit("delete",t)},async update(e,{data:t,parameters:s}){if(e.getters.supportsUpdate){let r=await t[a](s);return e.commit("upsert",r),r}throw new Error("Updating is not supported by the server.")},async read(e,{data:t}){let s=null;if(!(t instanceof o.UserProcess)){let r=n.Utils.isObject(t)?t[u]:t;t=e.getters.getById(r),t||(s=await e.rootState.connection[d](t))}return s||(s=await t[l]()),e.commit("upsert",s),s},async list(r){const i=r.state[e].length;if(r.getters.supportsList){let a=Math.max(r.rootState.pageLimit,i);if(s){const t=r.rootState.connection[s](a,r.state[e]),i=await t.nextPage();r.commit("reset"),r.commit("pages",t),r.commit("data",i)}else{const s=await r.rootState.connection[t](r.state[e]);r.commit("reset"),r.commit("data",s)}}return r.state[e]},async nextPage(t){if(t.state.pages&&t.state.hasMore)return t.commit("data",await t.state.pages.nextPage()),t.state[e]}},mutations:{data(t,s){if(Array.isArray(s))for(let r of s)t[e].push(r);t.hasMore=!!t.pages&&t.pages.hasNextPage()},pages(e,t){e.pages=t},upsert(t,s){let i=s[u],a=t[e].findIndex((e=>e[u]===i)),o=r.Ay.observable(s);a>=0?r.Ay.set(t[e],a,o):t[e].push(o)},delete(t,s){let i=s[u],a=t[e].findIndex((e=>e[u]===i));a>=0&&r.Ay.delete(t[e],a)},reset(e){Object.assign(e,h())}}};for(let r in p)Object.assign(f[r],p[r]);return f},U=T({namespace:"files",listFn:"listFiles",paginateFn:"paginateFiles",createFn:"uploadFile",updateFn:"uploadFile",deleteFn:"deleteFile",readFn:"downloadFile",readFnById:"getFile",primaryKey:"path",customizations:{getters:{},actions:{},mutations:{}}}),j=T({namespace:"jobs",listFn:"listJobs",paginateFn:"paginateJobs",createFn:"createJob",updateFn:"updateJob",deleteFn:"deleteJob",readFn:"describeJob",readFnById:"getJob",customizations:{getters:{supportsQueue:(e,t,s,r)=>r.supports("startJob"),supportsCancel:(e,t,s,r)=>r.supports("stopJob")},actions:{async queue(e,{data:t}){if(e.getters.supportsQueue){let s=await t.startJob();return e.commit("upsert",s),s}throw new Error("Queueing a batch job is not supported by the server.")},async cancel(e,{data:t}){if(e.getters.supportsCancel){let s=await t.stopJob();return e.commit("upsert",s),s}throw new Error("Canceling a batch job is not supported by the server.")}},mutations:{}}}),D=T({namespace:"services",listFn:"listServices",paginateFn:"paginateServices",createFn:"createService",updateFn:"updateService",deleteFn:"deleteService",readFn:"describeService",readFnById:"getService",customizations:{getters:{},actions:{},mutations:{}}}),I=T({namespace:"userProcesses",listFn:"listUserProcesses",paginateFn:null,createFn:"setUserProcess",updateFn:"replaceUserProcess",deleteFn:"deleteUserProcess",readFn:"describeUserProcess",readFnById:"getUserProcess",customizations:{getters:{},actions:{},mutations:{data(e,t){e.userProcesses=t.map((e=>Object.assign(e,{namespace:"user"}))).filter((e=>"string"===typeof e.id)).sort(d.A.sortById)}}}});r.Ay.use(a.Ay),o.Formula.arrayOperatorMapping={product:"*",sum:"+"},o.Formula.reverseOperatorMapping=(()=>{const e={};for(const t in o.Formula.operatorMapping)e[o.Formula.operatorMapping[t]]=t;return Object.assign(e,o.Formula.arrayOperatorMapping)})();const L=()=>({connection:null,activeRequests:0,discoveryCompleted:!1,isAuthenticated:!1,userInfo:{},connectionError:null,beforeLogoutListener:{},authProviders:[],fileFormats:{},serviceTypes:{},udfRuntimes:{},processesUpdated:0,collections:[],processNamespaces:f.A.processNamespaces||[],pageLimit:f.A.pageLimit}),E=new a.Ay.Store({modules:{editor:F,files:U,jobs:j,services:D,userProcesses:I},state:L(),getters:{title:e=>{if(null!==e.connection&&null!==e.connection.capabilities()){const t=e.connection.capabilities().title();return t||e.connection.getUrl()}return null},capabilities:e=>null!==e.connection?e.connection.capabilities():null,supports:e=>t=>null!==e.connection&&null!==e.connection.capabilities()&&e.connection.capabilities().hasFeature(t),currency:e=>{let t="";return e.connection&&null!==e.connection.capabilities().currency()&&(t=e.connection.capabilities().currency()),t},isConnected:e=>null!==e.connection&&null!==e.connection.capabilities(),isDiscovered:e=>null!==e.connection&&e.discoveryCompleted,supportsBilling:e=>null!==e.connection&&null!==e.connection.capabilities().currency(),supportsBillingPlans:e=>null!==e.connection&&null!==e.connection.capabilities().currency()&&e.connection.capabilities().listPlans().length>0,apiVersion:e=>null!==e.connection?e.connection.capabilities().apiVersion():null,fileFormats:e=>e.fileFormats instanceof o.FileTypes?e.fileFormats.toJSON():{input:{},output:{}},collectionDefaults:e=>t=>{const s=e.collections.find((e=>e.id===t));if(!d.A.isObject(s))return{};let r=null;try{r=d.A.extentToBBox(s.extent.spatial.bbox[0])}catch(o){}let i=null;try{i=s.extent.temporal.interval[0],null===i[0]&&null===i[1]?i=null:i[0]==i[1]&&(i[1]=null)}catch(o){}let a=null;return{id:t,spatial_extent:r,temporal_extent:i,bands:a}},processes:e=>{let t;return t=e.processesUpdated&&null!==e.connection?e.connection.processes:new n.ProcessRegistry,Object.assign(t,h)},supportsMath:(e,t)=>{if(e.processesUpdated){for(let e in o.Formula.operatorMapping){let s=o.Formula.operatorMapping[e];if(!t.processes.has(s))return!1}return!0}}},actions:{async connect(e,t){await e.dispatch("logout");let s=null;try{s=await o.OpenEO.connect(t,{addNamespaceToProcess:!0})}catch(r){return"Network Error"!=r.message&&"NetworkError"!=r.name||(r=new Error("Server is not available.")),e.commit("setConnectionError",r),!1}try{const t=await s.listAuthProviders();e.commit("authProviders",t)}catch(r){return e.commit("setConnectionError",r),!1}return s.on("authProviderChanged",(async t=>{e.commit("authenticated",null!==t),e.state.discoveryCompleted&&await e.dispatch("discover",!0)})),s.on("processesChanged",(()=>e.commit("updateProcesses"))),e.commit("connection",s),!0},async discover(e,t=!1){let s=[],r=[],i=e.state.connection.capabilities();if(i.hasFeature("listCollections")?s.push(e.state.connection.listCollections().then((t=>e.commit("collections",t))).catch((e=>r.push(e)))):r.push(new Error("Collections not supported by the server.")),!t){if(i.hasFeature("listProcesses")?s.push(e.state.connection.listProcesses().catch((e=>r.push(e)))):r.push(new Error("Pre-defined processes not supported by the server.")),e.state.processNamespaces.length>0)for(let t of e.state.processNamespaces)s.push(e.state.connection.listProcesses(t).catch((e=>r.push(e))));i.hasFeature("listUserProcesses")&&e.state.connection.isAuthenticated()&&s.push(e.dispatch("userProcesses/list").catch((e=>r.push(e))))}i.hasFeature("listFileTypes")&&s.push(e.state.connection.listFileTypes().then((t=>e.commit("fileFormats",t))).catch((e=>r.push(e)))),i.hasFeature("listServiceTypes")&&s.push(e.state.connection.listServiceTypes().then((t=>e.commit("serviceTypes",t))).catch((e=>r.push(e)))),i.hasFeature("listUdfRuntimes")&&s.push(e.state.connection.listUdfRuntimes().then((t=>e.commit("udfRuntimes",t))).catch((e=>r.push(e))));const a=e.dispatch("describeAccount").catch((e=>r.push(e)));if(s.push(a),await Promise.all(s),!t)try{await e.dispatch("editor/loadInitialProcess")}catch(o){r.push(o)}if(!t)try{await e.dispatch("editor/loadForAppMode")}catch(o){r.push(o)}return e.commit("discoveryCompleted"),r},async describeAccount(e){if(e.getters.supports("describeAccount")&&e.state.isAuthenticated){const t=await e.state.connection.describeAccount();e.commit("userInfo",t)}else e.commit("userInfo")},async describeCollection(e,t){let s=e.state.collections.find((e=>e.id===t));return s&&s._loaded||(s=await e.state.connection.describeCollection(t),s=l().collection(s,!1),e.commit("fillCollection",s)),s},async loadProcess(e,{id:t,namespace:s}){const r=e.getters.processes.get(t,s);return d.A.isObject(r)?("backend"!==r.namespace&&("user"===r.namespace?await e.dispatch("userProcesses/read",{data:r}):r.namespace&&"backend"!==s&&await e.state.connection.describeProcess(t,r.namespace)),e.getters.processes.get(t,s)):null},async beforeLogout(e){await Promise.all(Object.values(e.state.beforeLogoutListener).map((e=>e())))},async logout(e,t=!1){if(await e.dispatch("beforeLogout"),t&&(e.state.connection.off("authProviderChanged"),e.state.connection.off("processesChanged")),e.state.isAuthenticated){const t=e.state.connection.getAuthProvider();null!==t&&await t.logout()}t?(e.commit("reset",this.isAuthenticated),e.commit("jobs/reset"),e.commit("files/reset"),e.commit("services/reset"),e.commit("userProcesses/reset")):e.commit("authenticated",!1)}},mutations:{discoveryCompleted(e,t=!0){e.discoveryCompleted=t},connection(e,t){e.connection=t},authProviders(e,t){e.authProviders=t},userInfo(e,t){e.userInfo=d.A.isObject(t)?t:{}},fileFormats(e,t){e.fileFormats=t},serviceTypes(e,t){if(d.A.isObject(t)){const s={};for(const e in t)s[e.toUpperCase()]=t[e];e.serviceTypes=s}else e.serviceTypes=t},udfRuntimes(e,t){e.udfRuntimes=t},updateProcesses(e){e.processesUpdated++},addProcessNamespacesToRequest(e,t){if("string"===typeof t&&(t=t.split(",")),Array.isArray(t))for(let s of t)s&&!e.processNamespaces.includes(s)&&e.processNamespaces.push(s)},fillCollection(e,t){let s=e.collections.findIndex((e=>e.id===t.id));-1!==s&&(t._loaded=!0,r.Ay.set(e.collections,s,t))},collections(e,t){e.collections=t.collections.map((e=>l().collection(e,!1))).filter((e=>"string"===typeof e.id)).sort(d.A.sortById)},setConnectionError(e,t){e.connectionError=t},authenticated(e,t){e.isAuthenticated=t,t||(e.userInfo={})},reset(e,t=!1){Object.assign(e,L(),{connection:t?e.connection:null})},startActiveRequest(e){e.activeRequests+=1},endActiveRequest(e){e.activeRequests-=1},beforeLogoutListener(e,{key:t,listener:s}){"function"===typeof s?e.beforeLogoutListener[t]=s:r.Ay.delete(e.beforeLogoutListener,t)}}});var k=function(){var e=this,t=e._self._c;return t("div",{staticClass:"container",class:{connecting:!e.isDiscovered}},[t("transition",{attrs:{name:"connect-fade",mode:"out-in"}},[e.isDiscovered?t("IDE",{key:"2"}):t("ConnectForm",{key:"1",attrs:{skipLogin:e.skipLogin}})],1),e._l(e.modals,(function(s){return[t(s.component,e._g(e._b({key:s.id,tag:"component",on:{closed:function(t){return e.hideModal(s)}}},"component",s.props,!1),s.events))]})),t("vue-snotify"),e.tourType?t("Tour",{model:{value:e.tourType,callback:function(t){e.tourType=t},expression:"tourType"}}):e._e(),t("span",{directives:[{name:"show",rawName:"v-show",value:e.activeRequests>0,expression:"activeRequests > 0"}],attrs:{id:"activeRequests"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-2x"})])],2)},$=[],N=s(61663),B=function(){var e=this,t=e._self._c;return t("div",{staticClass:"connectPage"},[t("Logo"),t("div",{staticClass:"connectContainer"},[t("div",{staticClass:"helpBtn",attrs:{title:"Show help"},on:{click:e.showHelp}},[t("i",{staticClass:"fas fa-question fa-fw"}),e._v(" Help")]),e.httpsUrl?t("div",{staticClass:"message error"},[t("i",{staticClass:"fas fa-shield-alt"}),t("span",[e._v("You are using an "),t("strong",[e._v("insecure")]),e._v(" HTTP connection, which is not encrypted. Please use HTTPS if possible."),t("br"),t("a",{attrs:{href:e.httpsUrl}},[e._v("Click here to switch to a secured HTTPS connection.")])])]):e._e(),e.message?t("div",{staticClass:"message warning"},[t("i",{staticClass:"fas fa-bullhorn"}),t("span",{domProps:{innerHTML:e._s(e.message)}})]):e._e(),t("transition",{attrs:{name:"connect-fade",mode:"out-in"},on:{"before-enter":e.initProviders}},[e.showConnectForm?t("form",{staticClass:"connect",on:{submit:function(t){return t.preventDefault(),e.submitForm.apply(null,arguments)}}},[t("h3",[e._v("Connect to server")]),t("div",{staticClass:"row"},[t("label",{attrs:{for:"serverUrl"}},[e._v("URL:")]),t("div",{staticClass:"input"},[t("input",{directives:[{name:"model",rawName:"v-model.lazy.trim",value:e.serverUrl,expression:"serverUrl",modifiers:{lazy:!0,trim:!0}}],staticClass:"tour-connect-url",attrs:{type:"text",id:"serverUrl",disabled:e.autoConnect},domProps:{value:e.serverUrl},on:{change:function(t){e.serverUrl=t.target.value.trim()},blur:function(t){return e.$forceUpdate()}}}),e.allowOtherServers?t("button",{staticClass:"tour-connect-history",attrs:{type:"button",title:"Select previously used server"},on:{click:e.showServerSelector}},[t("i",{staticClass:"fas fa-book"})]):e._e()])]),t("div",{staticClass:"row"},[t("button",{staticClass:"connectBtn tour-connect-retry",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),e._v(" Connect")])])]):e.showLoginForm?t("div",{staticClass:"login"},[t("h3",[e._v("Log in to "+e._s(e.title))]),t("Tabs",{ref:"providers",attrs:{id:"credentials",pills:!0,pillsMultiline:!0},on:{selected:e.providerSelected},scopedSlots:e._u([{key:"dynamic",fn:function({tab:s}){return[t("form",{on:{submit:function(t){return t.preventDefault(),e.initDiscovery(s.data)}}},[s.data.description?t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-info-circle"}),t("span",[e._v(e._s(s.data.description))])]):e._e(),e.hasPredefinedOidcClientId?e._e():[t("div",{staticClass:"row"},[t("label",{attrs:{for:"password"}},[e._v("Client ID:")]),t("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.userOidcClientId,expression:"userOidcClientId",modifiers:{trim:!0}}],staticClass:"input",attrs:{type:"text",required:"required"},domProps:{value:e.userOidcClientId},on:{input:function(t){t.target.composing||(e.userOidcClientId=t.target.value.trim())},blur:function(t){return e.$forceUpdate()}}})]),t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-exclamation-circle"}),t("span",[e._v("You need to specify the "),t("em",[e._v("Client ID")]),e._v(" provided to you by the provider. You need to allow the "),t("a",{attrs:{href:e.oidcRedirectUrl,target:"_blank",title:e.oidcRedirectUrl}},[e._v("URL of this service")]),e._v(" as redirect URL with the authentication service.")])])],t("div",{staticClass:"row bottom"},[t("TermsOfServiceConsent"),t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-window-restore"}),t("span",[e._v("Clicking the button below may open a new window for login.")])]),t("button",{staticClass:"connectBtn",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),t("i",{staticClass:"fab fa-openid"}),e._v(" Log in with "+e._s(s.name))])],1)],2)]}},e.basicProvider?{key:"basic",fn:function({tab:s}){return[t("form",{on:{submit:function(t){return t.preventDefault(),e.initDiscovery(s.data)}}},[t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-info-circle"}),t("span",[e._v("The "),t("tt",[e._v("HTTP Basic")]),e._v(" authentication method is mostly used for development and testing purposes.")],1)]),t("div",{staticClass:"row"},[t("label",{attrs:{for:"username"}},[e._v("Username:")]),t("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.username,expression:"username",modifiers:{trim:!0}}],staticClass:"input",attrs:{id:"username",type:"text",required:"required"},domProps:{value:e.username},on:{input:function(t){t.target.composing||(e.username=t.target.value.trim())},blur:function(t){return e.$forceUpdate()}}})]),t("div",{staticClass:"row"},[t("label",{attrs:{for:"password"}},[e._v("Password:")]),t("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.password,expression:"password",modifiers:{trim:!0}}],staticClass:"input",attrs:{id:"password",type:"password",required:"required"},domProps:{value:e.password},on:{input:function(t){t.target.composing||(e.password=t.target.value.trim())},blur:function(t){return e.$forceUpdate()}}})]),t("div",{staticClass:"row bottom"},[t("TermsOfServiceConsent"),t("button",{staticClass:"connectBtn",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),e._v(" Log in")])],1)])]}}:null,{key:"noauth",fn:function(){return[t("form",{on:{submit:function(t){return t.preventDefault(),e.initDiscovery()}}},[t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-info-circle"}),t("span",[e._v("Choose this if you don't have credentials for the service provider and just want to explore the service with its available data and processes. You may not be able to process any data.")])]),t("div",{staticClass:"row bottom"},[t("TermsOfServiceConsent"),t("button",{staticClass:"connectBtn",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),t("i",{staticClass:"fas fa-user-slash"}),e._v(" Proceed without logging in")])],1)])]},proxy:!0}],null,!0)}),e.allowOtherServers?t("div",{staticClass:"switch tour-login-switch"},[t("a",{on:{click:function(t){return e.switchServer()}}},[e._v("Switch server")])]):e._e()],1):e._e()])],1)],1)},R=[],q=s(66644),G=s(4615),J=s(58379),W=function(){var e=this,t=e._self._c;return e.show?t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-check-circle"}),e.terms&&e.privacy?t("span",[e._v("By clicking the button below, you agree to our "),t("a",{attrs:{href:e.terms.href,title:e.terms.title,target:"_blank"}},[e._v("Terms of Service")]),e._v(" and that you have read our "),t("a",{attrs:{href:e.privacy.href,title:e.privacy.title,target:"_blank"}},[e._v("Privacy Policy")]),e._v(".")]):e.terms?t("span",[e._v("By clicking the button below, you agree to our "),t("a",{attrs:{href:e.terms.href,title:e.terms.title,target:"_blank"}},[e._v("Terms of Service")]),e._v(".")]):e.privacy?t("span",[e._v("By clicking the button below, you agree that you have read our "),t("a",{attrs:{href:e.privacy.href,title:e.privacy.title,target:"_blank"}},[e._v("Privacy Policy")]),e._v(".")]):e._e()]):e._e()},z=[];const H={name:"TermsOfServiceConsent",computed:{...d.A.mapGetters(["capabilities"]),show(){return this.terms&&this.privacy},terms(){return this.getLinkForRel("terms-of-service")},privacy(){return this.getLinkForRel("privacy-policy")}},methods:{getLinkForRel(e){let t=this.capabilities.links().filter((t=>t.rel===e));return t.length>0?t[0]:null}}},V=H;var K=s(81656),Y=(0,K.A)(V,W,z,!1,null,null,null);const Z=Y.exports,Q={name:"ConnectForm",mixins:[N.A],components:{Logo:q.A,Tabs:G["default"],Tab:J["default"],TermsOfServiceConsent:Z},props:{skipLogin:{type:Boolean,default:!1}},computed:{...d.A.mapState(["connectionError","authProviders","isAuthenticated"]),...d.A.mapGetters(["isConnected","isDiscovered","title"]),...d.A.mapState("editor",["storedServers"]),httpsUrl(){return this.$config.showHttpWarning&&!this.isLocalUrl(window.location)&&"http:"===window.location.protocol?window.location.toString().replace(/^http:/i,"https:").replace(/([\?&]server=http)(:|%3A)/,"$1s$2"):null},hasPredefinedOidcClientId(){return!(!this.provider||"oidc"!==this.provider.getType())&&Boolean(this.provider.defaultClient||this.$config.oidcClientIds[this.provider.id])},oidcClientId(){return this.provider&&"oidc"===this.provider.getType()&&(this.userOidcClientId||this.$config.oidcClientIds[this.provider.id])||null},oidcProviders(){return this.authProviders.filter((e=>"oidc"===e.getType()))},basicProvider(){return this.authProviders.find((e=>"basic"===e.getType()))||null},showConnectForm(){return!this.isConnected||this.skipLogin},showLoginForm(){return!this.showConnectForm&&!this.isDiscovered&&!this.skipLogin}},watch:{showConnectForm(e){e&&this.broadcast("title","Connect to server"),this.broadcast("stopTour")},showLoginForm(e){e&&this.broadcast("title","Log in"),this.broadcast("stopTour")}},data(){var e=500,t=500,s=50,r=50;return window.screen&&window.screen.availWidth>0&&window.screen.availHeight>0&&(e=Math.max(.8*window.screen.availWidth,e),t=Math.max(.8*window.screen.availHeight,t),s=.1*window.screen.availWidth,r=.1*window.screen.availHeight),{serverUrl:this.$config.serverUrl,allowOtherServers:!this.$config.serverUrl,autoConnect:!1,username:"",password:"",provider:null,loading:!1,message:this.$config.loginMessage,userOidcClientId:"",oidcOptions:{automaticSilentRenew:!0,popupWindowFeatures:`location=no,toolbar=no,width=${e},height=${t},left=${s},top=${r}`},oidcRedirectUrl:o.OidcProvider.redirectUrl}},async created(){var e=d.A.param("server");!this.$config.serverUrl&&e&&(this.serverUrl=e),this.serverUrl&&(this.autoConnect=!0);let t=d.A.param("oidc~prompt");["none","login","consent","select_account"].includes(t)&&(this.oidcOptions.prompt=t),o.OidcProvider.uiMethod="popup";try{await o.OidcProvider.signinCallback()}catch(s){s instanceof Error&&"No state in response"!==s.message&&d.A.exception(this,s)}},mounted(){window.onpopstate=e=>this.historyNavigate(e),window.history.replaceState({reset:!0,serverUrl:this.serverUrl},""),this.initProviders(),this.autoConnect&&this.submitForm()},methods:{...d.A.mapActions(["connect","discover","logout"]),...d.A.mapMutations(["reset"]),...d.A.mapMutations("editor",["addServer","removeServer"]),isLocalUrl(e){return Boolean("localhost"===e.hostname||"[::1]"===e.hostname||e.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))},showHelp(){this.isConnected?this.broadcast("showTour","login"):this.broadcast("showTour","connect")},historyNavigate(e){d.A.isObject(e.state)&&!e.state.reset||(this.logout(!0),this.autoConnect=!1,this.loading=!1,this.password=""),d.A.isObject(e.state)&&(e.state.serverUrl&&(this.serverUrl=e.state.serverUrl),"undefined"!==typeof e.state.autoConnect&&(this.autoConnect=e.state.autoConnect)),this.autoConnect&&this.initConnection(!!e.state.skipLogin,!0)},switchServer(){window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0},"",this.makeUrl(!1)),this.serverUrl=null,this.autoConnect=!1,this.reset()},initProviders(){this.$refs.providers&&0===this.$refs.providers.tabs.length&&this.addProviders()},addProviders(){for(var e of this.oidcProviders)this.$refs.providers.addTab(e.getTitle(),null,e,e.getId(),!1,!1);this.basicProvider&&this.$refs.providers.addTab("Internal",null,this.basicProvider,"basic",!1,!1),this.$refs.providers.addTab("No credentials",null,null,"noauth",!1,!1),this.$nextTick((()=>this.$refs.providers.resetActiveTab(!0)))},providerSelected(e){this.provider=e.data},async submitForm(){this.isConnected||await this.initConnection(this.skipLogin,!1)},async initConnection(e=!1,t=!1){if("string"!==typeof this.serverUrl||!this.serverUrl)return void d.A.error(this,"Please specify a server.");let s=this.serverUrl;if(s.match(/^https?:\/\//i)||(s=`https://${s}`),!d.A.isUrl(s))return void d.A.error(this,"The server given is not a valid URL.");const r=new URL(s);if("https:"!==window.location.protocol||"https:"===r.protocol||this.isLocalUrl(r)){this.loading=!0;try{await this.connect(s)?(this.addServer(s),t||window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0,skipLogin:e},"",this.makeUrl()),e&&await this.initDiscovery()):d.A.exception(this,this.connectionError)}catch(i){d.A.exception(this,i)}this.loading=!1,!this.isConnected&&this.allowOtherServers&&(this.autoConnect=!1)}else d.A.error(this,"You are trying to connect to a server with HTTP instead of HTTPS, which is insecure and prohibited by web browsers. Please use HTTPS instead.")},async initDiscovery(e=null){this.loading=!0;let t=d.A.isObject(e)&&"string"===typeof e.getType()?e.getType():null;try{if("basic"===t)await e.login(this.username,this.password);else if("oidc"===t){let t=!0;if(this.oidcClientId)this.provider.setClientId(this.oidcClientId);else{const s=e.detectDefaultClient();t=s&&Array.isArray(s.grant_types)&&s.grant_types.includes("refresh_token")}await e.login(this.oidcOptions,t),e.addListener("AccessTokenExpired",(()=>d.A.warn(this,"User session has expired, please login again."))),e.addListener("SilentRenewError",(()=>d.A.error(this,"You'll be switching to Guest mode in less than a minute.","Session renewal failed")))}else window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0,skipLogin:!0},"",this.makeUrl(!0,!0))}catch(r){return"basic"===t?d.A.error(this,"Sorry, credentials are wrong."):"oidc"===t&&"ErrorResponse"===r.name&&"string"===typeof r.error_description?d.A.error(this,r.error_description.replace(/\+/g," ")):"oidc"!==t||"Network Error"!=r.message&&"NetworkError"!=r.name?d.A.exception(this,r):d.A.error(this,"Sorry, the authentication server is not available right now."),void(this.loading=!1)}let s=await this.discover();for(var r of s)d.A.exception(this,r);this.loading=!1,this.isAuthenticated&&window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0},"",this.makeUrl())},makeUrl(e=!0,t=!1){let s=new URLSearchParams(window.location.search);e&&!this.$config.serverUrl?s.set("server",this.serverUrl):s.delete("server"),t&&!this.$config.skipLogin?s.set("discover",1):!t&&this.$config.skipLogin?s.set("discover",0):s.delete("discover");let r=s.toString();return r?`.?${r}`:"."},showServerSelector(){this.broadcast("showListModal","Select previously used server",this.storedServers,[{callback:e=>(this.serverUrl=e,!0)},{callback:e=>this.removeServer(e),icon:"trash",title:"Delete"}])}}},X=Q;var ee=(0,K.A)(X,B,R,!1,null,"714226be",null);const te=ee.exports,se={name:"openeo-web-editor",mixins:[N.A],components:{ConnectForm:te,IDE:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(552)]).then(s.bind(s,92919)),AddMapDataModal:()=>s.e(3221).then(s.bind(s,63221)),CollectionModal:()=>Promise.all([s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(4389)]).then(s.bind(s,74389)),DataModal:()=>s.e(4375).then(s.bind(s,64375)),DownloadAssetsModal:()=>s.e(3383).then(s.bind(s,53383)),ErrorModal:()=>s.e(8370).then(s.bind(s,98370)),ExportCodeModal:()=>Promise.all([s.e(600),s.e(5237),s.e(6126)]).then(s.bind(s,98852)),ExpressionModal:()=>Promise.all([s.e(600),s.e(5237),s.e(2116)]).then(s.bind(s,53266)),FileFormatModal:()=>s.e(8324).then(s.bind(s,28324)),ImportProcessModal:()=>s.e(8580).then(s.bind(s,58580)),JobEstimateModal:()=>s.e(5981).then(s.bind(s,85981)),JobInfoModal:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(4111)]).then(s.bind(s,78064)),ListModal:()=>s.e(4818).then(s.bind(s,14818)),ParameterModal:()=>Promise.all([s.e(600),s.e(5237),s.e(1160),s.e(5983),s.e(1323),s.e(5624),s.e(1189),s.e(6617),s.e(5640),s.e(2559),s.e(2365),s.e(3800),s.e(3291),s.e(3876),s.e(9882),s.e(7261),s.e(1694),s.e(4394),s.e(4625),s.e(510),s.e(7745)]).then(s.bind(s,17745)),ProcessModal:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(2668)]).then(s.bind(s,12307)),ProcessParameterModal:()=>s.e(847).then(s.bind(s,90847)),ServerInfoModal:()=>s.e(5677).then(s.bind(s,65677)),ServiceInfoModal:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(4710)]).then(s.bind(s,1777)),ShareModal:()=>s.e(2053).then(s.bind(s,22053)),Tour:()=>s.e(9047).then(s.bind(s,29047)),UdfRuntimeModal:()=>s.e(3166).then(s.bind(s,43166)),WebEditorModal:()=>s.e(9238).then(s.bind(s,19238)),WizardModal:()=>s.e(1533).then(s.bind(s,31533))},data(){return{modals:[],skipLogin:this.$config.skipLogin,tourType:null,title:null}},created(){this.addProcessNamespacesToRequest(d.A.param("namespaces")),this.setInitialProcess(d.A.param("process")),this.setInitialNode(d.A.param("edit-node")),this.setOpenWizard({component:d.A.param("wizard"),options:d.A.paramsForPrefix("wizard")}),this.setCollectionPreview(d.A.param("preview-collection"));const e=d.A.param("result");let t="job";d.A.param("app~service")&&(t="service"),e&&this.setAppMode({resultUrl:e,resultType:t,...d.A.paramsForPrefix("app")});const s=d.A.param("discover");"1"===s||e?this.skipLogin=!0:"0"===s&&(this.skipLogin=!1);const r=d.A.axios();r.interceptors.request.use((e=>(this.startActiveRequest(),e))),r.interceptors.response.use((e=>(this.endActiveRequest(),e)),(e=>(this.endActiveRequest(),Promise.reject(e))))},mounted(){this.listen("showError",this.showError),this.listen("showDataModal",this.showData),this.listen("showModal",this.showModal),this.listen("showListModal",this.showListModal),this.listen("showCollection",this.showCollection),this.listen("showProcess",this.showProcess),this.listen("showProcessParameter",this.showProcessParameter),this.listen("showWebEditorInfo",this.showWebEditorInfo),this.listen("title",this.setTitle),this.listen("showTour",(e=>this.tourType=e)),this.listen("stopTour",this.stopTour)},watch:{isDiscovered(e){e&&(this.skipLogin=!1),this.stopTour()},title(e){document.title=e}},computed:{...d.A.mapState(["activeRequests"]),...d.A.mapGetters(["isDiscovered"]),...d.A.mapState("editor",["hightestModalZIndex"])},methods:{...d.A.mapActions(["describeAccount","describeCollection","loadProcess"]),...d.A.mapMutations(["startActiveRequest","endActiveRequest","addProcessNamespacesToRequest"]),...d.A.mapMutations("editor",["setInitialProcess","setInitialNode","setOpenWizard","setAppMode","setCollectionPreview"]),setTitle(e){var t=`${this.$config.serviceName} ${this.$config.appName}`;e&&(t+=": "+e),this.title=t},stopTour(){this.tourType=null},showModal(e,t={},s={},r=null){this.modals.push({component:e,props:t,events:s,id:r||"modal_"+Date.now()}),this.stopTour()},hideModal(e){let t=d.A.isObject(e)?e.id:e,s=this.modals.findIndex((e=>e.id===t));"undefined"!==typeof s&&(this.modals.splice(s,1),this.stopTour())},showListModal(e,t,s){this.showModal("ListModal",{title:e,list:t,listActions:s})},showWebEditorInfo(){this.showModal("WebEditorModal")},showError(e){this.showModal("ErrorModal",{error:e})},async showCollection(e){try{let t=await this.describeCollection(e);this.showModal("CollectionModal",{collection:t})}catch(t){console.log(t),d.A.error(this,"Sorry, can't load collection details for '"+e+"'.")}},async showProcess(e){try{this.showModal("ProcessModal",{process:await this.loadProcess(e)})}catch(t){console.log(t),d.A.error(this,"Sorry, can't load process details.")}},async showData(e,t){this.showModal("DataModal",{data:e,title:t})},showProcessParameter(e,t){this.showModal("ProcessParameterModal",{parameter:e,origin:t})}}},re=se;var ie=(0,K.A)(re,k,$,!1,null,null,null);const ae=ie.exports,oe={};var ne=s(68261),ce=s.n(ne);for(var le in r.Ay.use(i.Ay),r.Ay.use(ce()),r.Ay.prototype.$snotify.singleError=function(){let e=arguments[0];e!==this.lastMessage&&(this.lastMessage=e,this.error(...arguments),setTimeout((()=>this.lastMessage=null),1e3))},r.Ay.config.productionTip=!1,r.Ay.config.errorHandler=function(e,t,s){if(console.error(e,s),!t||!t.$snotify)return;let r;e instanceof Error?r=e.message:"string"===typeof e&&(r=e),r&&t.$snotify.singleError(r,"Error",f.A.snotifyDefaults)},r.Ay.prototype.$config=f.A,oe)r.Ay.filter(le,oe[le]);const de=new r.Ay({store:E,render:e=>e(ae)}).$mount("#app");window.addEventListener("unhandledrejection",(function(e){console.warn(e),("String"===typeof e.reason||e.reason instanceof Error)&&de.$snotify.singleError(e.reason,"Error",f.A.snotifyDefaults),e.preventDefault(),e.stopPropagation()}))},60478:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var r=s(2566),i=s(31572);class a{static isMathProcess(e,t={}){if(!r.A.isObject(e))return!1;let s=Object.values(t);if(s.includes(e.id))return!1;if(!r.A.isObject(e.returns)||!e.returns.schema)return!1;let a=["number","integer","any"],o=new i.ProcessSchema(e.returns.schema);if(!a.includes(o.nativeDataType()))return!1;if(Array.isArray(e.parameters))for(var n in e.parameters){let t=e.parameters[n];if(t.optional)continue;if(!t.schema)return!1;let s=new i.ProcessSchema(t.schema);if(!a.includes(s.nativeDataType()))return!1}return!0}static arrayOf(e){if(e instanceof i.ProcessDataType||(e=new i.ProcessDataType(e)),"array"===e.nativeDataType()&&r.A.isObject(e.schema.items)){let t=new i.ProcessDataType(e.schema.items);return t.dataType()}}}},2566:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});s(98992),s(72577),s(81454);var r=s(86975),i=s(73902),a=s(95353),o=s(58597),n=s(19306);class c extends r.A{static axios(){return i.OpenEO.Environment.axios}static saveToFile(e,t){return i.OpenEO.Environment.saveToFile(e,t)}static getPreviewLinkFromSTAC(e){if(c.isObject(e)&&Array.isArray(e.links)){let t=e.links.find((e=>c.isObject(e)&&"string"===typeof e.rel&&n.A.supportedMapServices.includes(e.rel.toLowerCase())));if(t)return t}return null}static isMapServiceSupported(e){return"string"===typeof e&&n.A.supportedMapServices.includes(e.toLowerCase())}static parseNodata(e){return Array.isArray(e)?e.map((e=>c.parseNodata(e))):"string"===typeof e&&"nan"===e.toLowerCase()?Number.NaN:e}static isActiveJobStatusCode(e){if("string"!==typeof e)return null;switch(e.toLowerCase()){case"running":case"queued":return!0;default:return!1}}static exception(e,t,s){console.error(t);var r=[],i=null,a=s;c.isObject(t)&&"string"===typeof t.message?(i=t.code>0?"Error #"+t.code:s,a=t.message,r.push({text:"Show Details",action:()=>e.$root.$emit("showError",t)})):"string"===typeof t&&(a=t,i=s),r.push({text:"Copy",action:t=>{let s=e.$clipboard(a),r=t.config.buttons.find((e=>"Copy"===e.text));r&&(r.text=s?"✔️ Copied":"❌ Failed")}});var o={buttons:r};e.$snotify.singleError(a,i,Object.assign({},e.$config.snotifyDefaults,o))}static error(e,t,s=null){e.$snotify.singleError(t,s,e.$config.snotifyDefaults)}static warn(e,t,s=null){e.$snotify.warning(t,s,e.$config.snotifyDefaults)}static info(e,t,s=null){e.$snotify.info(t,s,e.$config.snotifyDefaults)}static ok(e,t,s=null){e.$snotify.success(t,s,e.$config.snotifyDefaults)}static confirm(e,t,s=[]){var r={buttons:s};e.$snotify.confirm(t,null,Object.assign({},e.$config.snotifyDefaults,r))}static isChildOfModal(e){return e.$parent&&"Modal"==e.$parent.$options.name}static getFileNameFromURL(e){return e=e.substring(0,-1==e.indexOf("#")?e.length:e.indexOf("#")),e=e.substring(0,-1==e.indexOf("?")?e.length:e.indexOf("?")),e=e.substring(e.lastIndexOf("/")+1,e.length),e}static makeFileName(e,t){if(e.includes(".")||"string"!==typeof t)return e;if(!t.includes("/"))return e+"."+t;let s=null;try{let e=o.parse(t);switch(e.type.toLowerCase()){case"application/json":case"application/zip":case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/tiff":case"text/csv":case"text/html":s=t.split("/")[1];break;case"text/plain":s="txt";break;case"application/netcdf":case"application/x-netcdf":s="nc";break}}catch(r){}return null!==s?e+"."+s:e}static replaceParam(e,t,s){var r=new URL(e),i=new URLSearchParams(r.search);return i.set(t,s),r.search=i.toString(),r.toString()}static paramsForPrefix(e,t="~"){e+=t;const s=new URLSearchParams(window.location.search);let r={};for(let[i,a]of s)i.startsWith(e)&&(r[i.substring(e.length)]=a);return r}static param(e){const t=new URLSearchParams(window.location.search);if(t.has(e))return t.get(e)}static isBboxInWebMercator(e){if(!e)return null;Array.isArray(e)||(e=[e]);let t={south:-85.06,north:85.06};return!e.find((e=>e.southt.north))}static extentToBBox(e){if(!Array.isArray(e))return null;var t=e.length>=6;let s={west:e[0],east:e[t?3:2],south:e[1],north:e[t?4:3]};return t&&(s.base=e[2],s.height=e[5]),s}static sortById(e,t){return r.A.compareStringCaseInsensitive(e.id,t.id)}static range(e,t){return te+s))}static newArray(e,t=0){return e<1?[]:Array.from({length:e},(()=>t))}static fitArray(e,t,s=0){return t<1?[]:t>e.length?e.concat(c.newArray(t-e.length,s)):tt[r].toUpperCase())return 1;if(e[r].toUpperCase()t.length?1:0}static getUniqueId(){return Math.random().toString(36).substr(2,9)}static formatIdOrTitle(e){return"string"!==typeof e?e:e.startsWith("#")?`${e}`:"Unnamed"===e?`${e}`:e}static getResourceTitle(e,t=!1){let s,r=c.isObject(e);if("string"===typeof e)s=e;else if(e instanceof i.UserProcess)s=e.id;else if(e instanceof i.UserFile)s=e.path;else if(r&&"string"===typeof e.stac_version)s=e.id;else if(r&&e.title)s=e.title;else if(r&&e.id){let t=new String(e.id);s=t.length>10?e.id.substr(0,5)+"…"+e.id.substr(-5):e.id,s="#"+s}else s="Unnamed";if(t){let a;"string"===typeof t?a=t:e instanceof i.Job?a="Job":e instanceof i.Service?a="Service":e instanceof i.UserProcess?a="Process":e instanceof i.UserFile?a="File":r&&"string"===typeof e.stac_version&&"Collection"===e.type&&(a=e.type),a&&(s=`${s} (${a})`)}return s}static resolveJsonRefs(e){var t=s=>{if(!s||"object"!==typeof s)return s;for(var r in s){var i=s[r];if(c.isObject(i)&&"string"===typeof i.$ref&&i.$ref.match(/^#(\/[^\/]+)+$/i)){var a=i.$ref.split("/").slice(1),o=e;while(a.length){let e=a.shift();if(o=o[e],"undefined"===typeof o)break}s[r]=o}else s[r]=t(i)}return s};return t(e)}static extractUDPParams(e){const t=e.indexOf("@");if(t<0)return[e,void 0];{const s=e.substring(0,t),r=e.substring(t+1);return[s,r]}}static getProcessingExpression(e){let t="processing:expression";if(!c.isObject(e)||!e[t])return null;let s=e[t];if(Array.isArray(s)){if(!(s.length>0))return null;s=s[0]}return c.isObject(s)&&"openeo"===s.format&&c.isObject(s.expression)?s.expression:null}static confirmOpenAll(e){return confirm(`You are about to open ${e.length} individual files / tabs, which could slow down the web browser. Are you sure you want to open all of them?`)}}c.mapState=a.aH,c.mapGetters=a.L8,c.mapMutations=a.PY,c.mapActions=a.i0;const l=c},85525:e=>{"use strict";if("undefined"===typeof L){var t=new Error("Cannot find module 'L'");throw t.code="MODULE_NOT_FOUND",t}e.exports=L},65123:()=>{},28625:()=>{},56504:()=>{},6580:()=>{},42634:()=>{},15340:()=>{},79838:()=>{},8330:e=>{"use strict";e.exports=JSON.parse('{"name":"@openeo/web-editor","version":"0.14.0-rc.2","apiVersions":["1.0.0-rc.2","1.0.0","1.0.1","1.1.0","1.2.0"],"author":"openEO Consortium","contributors":[{"name":"Matthias Mohr"},{"name":"Gustav Jv Rensburg"},{"name":"Miha Kadunc"},{"name":"Christoph Friedrich"},{"name":"Sofian Slimani"}],"description":"An interactive and easy to use web-based editor for the OpenEO API.","license":"Apache-2.0","homepage":"http://openeo.org","bugs":{"url":"https://github.com/Open-EO/openeo-web-editor/issues"},"repository":{"type":"git","url":"https://github.com/Open-EO/openeo-web-editor.git"},"funding":{"type":"github","url":"https://github.com/sponsors/m-mohr"},"scripts":{"build:database":"node src/build-database.js","start":"npm run build:database && npx vue-cli-service serve","build":"npm run build:database && npx vue-cli-service build --report"},"dependencies":{"@kirtandesai/ol-geocoder":"^5.0.6","@musement/iso-duration":"^1.0.0","@openeo/js-client":"^2.7.0","@openeo/js-commons":"^1.5.0","@openeo/js-processgraphs":"^1.4.1","@openeo/vue-components":"^2.18.3","@radiantearth/stac-fields":"^1.5.0-beta.2","@radiantearth/stac-migrate":"^2.0.0-beta.1","@tmcw/togeojson":"^5.5.0","ajv":"^6.12.6","axios":"^1.0.0","chart.js":"^3.7.1","chartjs-adapter-luxon":"^1.1.0","codemirror":"^5.58.2","content-type":"^1.0.4","core-js":"^3.7.0","jsonlint-mod":"^1.7.6","luxon":"^2.4.0","node-polyfill-webpack-plugin":"^4.0.0","ol":"^9.2.0","ol-ext":"^4.0.21","proj4":"^2.7.5","splitpanes":"^2.3.6","v-clipboard":"^2.2.3","vue":"^2.7.0","vue-chartjs":"^4.0.5","vue-multiselect":"^2.1.6","vue-snotify":"^3.2.1","vue-tour":"^2.0.0","vue2-datepicker":"^3.9.0","vuedraggable":"^2.24.3","vuex":"^3.5.1"},"devDependencies":{"@vue/cli-plugin-babel":"~5.0.8","@vue/cli-service":"~5.0.8","epsg-index":"^1.0.0","sass":"^1.35.2","sass-loader":"^10.2.0"},"browserslist":["> 2%","not ie > 0"]}')}},t={};function s(r){var i=t[r];if(void 0!==i)return i.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(a.exports,a,a.exports,s),a.loaded=!0,a.exports}s.m=e,(()=>{var e=[];s.O=(t,r,i,a)=>{if(!r){var o=1/0;for(d=0;d=a)&&Object.keys(s.O).every((e=>s.O[e](r[c])))?r.splice(c--,1):(n=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,i,a]}})(),(()=>{s.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;return s.d(t,{a:t}),t}})(),(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;s.t=function(r,i){if(1&i&&(r=this(r)),8&i)return r;if("object"===typeof r&&r){if(4&i&&r.__esModule)return r;if(16&i&&"function"===typeof r.then)return r}var a=Object.create(null);s.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var n=2&i&&r;"object"==typeof n&&!~e.indexOf(n);n=t(n))Object.getOwnPropertyNames(n).forEach((e=>o[e]=()=>r[e]));return o["default"]=()=>r,s.d(a,o),a}})(),(()=>{s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce(((t,r)=>(s.f[r](e,t),t)),[]))})(),(()=>{s.u=e=>"js/"+e+"."+{424:"1e8cc4a5",434:"3db284dc",510:"9d459a06",552:"3b4e55e2",600:"03d27645",768:"8ff8aaf2",847:"e24b2127",887:"575d445d",897:"896d6d76",1026:"cb48ffc0",1030:"040e5eea",1160:"ae29cd40",1189:"a32f94fa",1203:"f48ebf4f",1237:"b0e48530",1279:"8878690a",1323:"c2b88a54",1358:"4dae7370",1485:"92fba867",1533:"2170945e",1694:"90f8f8e9",1765:"4f30e3e9",2053:"8f3b63df",2116:"d2482968",2195:"c25082b0",2263:"c2d4312b",2327:"6048d1aa",2365:"674df960",2388:"1f1f942e",2559:"06b84f86",2604:"9be79866",2668:"4da4ee01",2764:"34f8c39a",2810:"e968ed13",2855:"2da0a86a",2869:"122b65e1",2919:"5a7da297",3165:"76bb6a25",3166:"067ac4f1",3221:"a34a4762",3249:"8768e225",3271:"5a5d98ba",3291:"a294dd66",3298:"88b3bce8",3383:"d94b2f5f",3504:"22567424",3549:"212045fa",3592:"ef09860c",3800:"4319672c",3876:"50abede2",4011:"7c8bfd07",4016:"7fd9cf7f",4054:"e7b8b9c7",4066:"8cdb91a9",4111:"38310551",4120:"c763dc51",4152:"62572df3",4279:"b012468e",4285:"90f10343",4375:"13fc5959",4387:"6a9d95fe",4389:"a0cc26a8",4394:"f147b645",4432:"d3d8c74c",4475:"2d81f41f",4477:"accede65",4625:"fdcb0b05",4638:"086ea810",4710:"5c91b0d3",4818:"544d77b8",5121:"3d0716e1",5213:"f5f2cae9",5237:"8caff225",5262:"d2b1dab9",5601:"4ed36f04",5624:"56a54c83",5630:"6c8fe1c8",5640:"f63e0ac2",5677:"32e52a2e",5742:"6ee57240",5771:"e0cf67f9",5865:"ba589820",5981:"bde59e8d",5983:"b8efedd3",6036:"ac16f8d5",6126:"c5d874fe",6192:"a7d24100",6238:"6cb2e842",6457:"0b71882d",6568:"66ede871",6617:"548c5e31",6660:"5db6ed47",6689:"0404eca3",6709:"9bbce368",6846:"d8f3c03b",6885:"e5fa8c84",7123:"e7255bc1",7186:"f9d85ef1",7237:"c8c92bc7",7261:"cec7eb87",7336:"f9de7ab6",7349:"58ee9351",7745:"43fb5188",7759:"f248fb9a",8053:"d1bcf10d",8080:"2fc3db24",8141:"f85ed200",8152:"02c6d375",8324:"9f2b9735",8354:"9d3cdc3f",8363:"10f92a37",8370:"006d7cf8",8396:"80d94f20",8580:"f55cb38d",8645:"257fe523",9047:"9e2b4217",9066:"429507d1",9201:"16e2764c",9237:"b0457669",9238:"1ce8f980",9403:"36ca6740",9409:"9dc12ac6",9546:"03a9f682",9873:"0533e950",9882:"aa162fda",9989:"fe90c1ea"}[e]+".js"})(),(()=>{s.miniCssF=e=>"css/"+e+"."+{434:"48f88ab7",552:"b9ad6d11",768:"9a253916",847:"5e455ed7",887:"8c892279",897:"9a7c4e56",1026:"ee56a981",1194:"5e953040",1203:"1291b8f6",1279:"6559def7",1485:"09203724",1533:"ee70e6ee",1694:"948a160d",1765:"be9db0fd",2053:"591e8359",2116:"a263a3ee",2327:"43969cb2",2388:"b2b0c7da",2604:"68de8223",2668:"28ec2f2d",2722:"13fcb001",2810:"bb165d6b",2855:"9be81686",2869:"f3cd8e29",3165:"cedc5992",3166:"2f6e3d85",3221:"f6c5b858",3249:"b1500b27",3271:"6244371c",3298:"be08d5c1",3383:"70bcc47a",3504:"bb165d6b",3549:"a1ec7ab5",3592:"2a21fdfd",4016:"209ecd26",4066:"c792bb6a",4111:"8dfcdf6d",4120:"1490740e",4152:"6d1bdf91",4279:"a22f3053",4285:"b812a1c3",4375:"8cbfaf98",4387:"4f91105e",4389:"cd27822f",4475:"3532f099",4710:"db40c9d8",4741:"f6d430d3",4818:"a7c04fab",5213:"84e10245",5630:"b1500b27",5677:"35500620",5742:"d62d95a4",5771:"f5601ccf",5865:"951674bc",5981:"662a7223",6036:"84e10245",6126:"3a51c14b",6192:"5fb184c3",6238:"c4731012",6660:"a22f3053",6689:"b4a63b64",6709:"de23863b",6846:"4e980861",7123:"a8f318bf",7186:"1abe4ef8",7336:"788ebcdc",7745:"70bcc47a",7759:"052469b3",8053:"48f88ab7",8080:"f6d430d3",8141:"f3930676",8152:"281aa3b1",8324:"257d9fa6",8354:"8f8ad761",8370:"f0b49cc1",8396:"a5e993af",8580:"9e19226e",8645:"ee56a981",9047:"13422022",9066:"84e10245",9201:"19b52578",9238:"70bcc47a",9403:"3c3c478b",9409:"dd741b46",9873:"bb165d6b"}[e]+".css"})(),(()=>{s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()})(),(()=>{s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{var e={},t="@openeo/web-editor:";s.l=(r,i,a,o)=>{if(e[r])e[r].push(i);else{var n,c;if(void 0!==a)for(var l=document.getElementsByTagName("script"),d=0;d{n.onerror=n.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],n.parentNode&&n.parentNode.removeChild(n),i&&i.forEach((e=>e(s))),t)return t(s)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),c&&document.head.appendChild(n)}}})(),(()=>{s.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),(()=>{s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e)})(),(()=>{s.p="/"})(),(()=>{if("undefined"!==typeof document){var e=(e,t,r,i,a)=>{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",s.nc&&(o.nonce=s.nc);var n=s=>{if(o.onerror=o.onload=null,"load"===s.type)i();else{var r=s&&s.type,n=s&&s.target&&s.target.href||t,c=new Error("Loading CSS chunk "+e+" failed.\n("+r+": "+n+")");c.name="ChunkLoadError",c.code="CSS_CHUNK_LOAD_FAILED",c.type=r,c.request=n,o.parentNode&&o.parentNode.removeChild(o),a(c)}};return o.onerror=o.onload=n,o.href=t,r?r.parentNode.insertBefore(o,r.nextSibling):document.head.appendChild(o),o},t=(e,t)=>{for(var s=document.getElementsByTagName("link"),r=0;rnew Promise(((i,a)=>{var o=s.miniCssF(r),n=s.p+o;if(t(o,n))return i();e(r,n,null,i,a)})),i={3524:0};s.f.miniCss=(e,t)=>{var s={434:1,552:1,768:1,847:1,887:1,897:1,1026:1,1194:1,1203:1,1279:1,1485:1,1533:1,1694:1,1765:1,2053:1,2116:1,2327:1,2388:1,2604:1,2668:1,2722:1,2810:1,2855:1,2869:1,3165:1,3166:1,3221:1,3249:1,3271:1,3298:1,3383:1,3504:1,3549:1,3592:1,4016:1,4066:1,4111:1,4120:1,4152:1,4279:1,4285:1,4375:1,4387:1,4389:1,4475:1,4710:1,4741:1,4818:1,5213:1,5630:1,5677:1,5742:1,5771:1,5865:1,5981:1,6036:1,6126:1,6192:1,6238:1,6660:1,6689:1,6709:1,6846:1,7123:1,7186:1,7336:1,7745:1,7759:1,8053:1,8080:1,8141:1,8152:1,8324:1,8354:1,8370:1,8396:1,8580:1,8645:1,9047:1,9066:1,9201:1,9238:1,9403:1,9409:1,9873:1};i[e]?t.push(i[e]):0!==i[e]&&s[e]&&t.push(i[e]=r(e).then((()=>{i[e]=0}),(t=>{throw delete i[e],t})))}}})(),(()=>{var e={3524:0};s.f.j=(t,r)=>{var i=s.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else if(/^(1194|2722|4741)$/.test(t))e[t]=0;else{var a=new Promise(((s,r)=>i=e[t]=[s,r]));r.push(i[2]=a);var o=s.p+s.u(t),n=new Error,c=r=>{if(s.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;n.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",n.name="ChunkLoadError",n.type=a,n.request=o,i[1](n)}};s.l(o,c,"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,r)=>{var i,a,[o,n,c]=r,l=0;if(o.some((t=>0!==e[t]))){for(i in n)s.o(n,i)&&(s.m[i]=n[i]);if(c)var d=c(s)}for(t&&t(r);ls(15424)));r=s.O(r)})(); -//# sourceMappingURL=app.7eddb026.js.map \ No newline at end of file +(()=>{var e={66644:(e,t,s)=>{"use strict";s.d(t,{A:()=>p});var r=function(){var e=this,t=e._self._c;return t("div",{staticClass:"logo"},[e.$config.logo?t("img",{attrs:{src:e.$config.logo,alt:e.$config.serviceName}}):e._e(),t("h2",[e._v(e._s(e.$config.appName)+" "),t("span",{staticClass:"version",on:{click:e.showWebEditorInfo}},[e._v(e._s(e.version))])])])},i=[],a=s(61663),o=s(8330);const n={name:"Logo",mixins:[a.A],data(){return{version:o.version}},methods:{showWebEditorInfo(){this.broadcast("showWebEditorInfo")}}},c=n;var l=s(81656),d=(0,l.A)(c,r,i,!1,null,"af3cbbb2",null);const p=d.exports},19306:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r={serverUrl:"",serviceName:"openEO",appName:"Web Editor",skipLogin:!1,mapLocation:[49.8,9.9],mapZoom:4,geocoder:"https://nominatim.openstreetmap.org/search",loginMessage:"",logo:"./logo.png",snotifyDefaults:{timeout:1e4,titleMaxLength:30,bodyMaxLength:120,showProgressBar:!0,closeOnClick:!0,pauseOnHover:!0},supportedMapServices:["xyz","wmts"],supportedBatchJobSharingServices:["ShareEditor","CopyUrl","BlueskyShare","MastodonSocialShare","XShare"],supportedWebServiceSharingServices:["ShareEditor","CopyUrl","BlueskyShare","MastodonSocialShare","XShare"],supportedWizards:[{component:"SpectralIndices",title:"Compute Spectral Indices",description:"A spectral index is a mathematical equation that is applied on the various spectral bands of an image per pixel. It is often used to highlight vegetation, urban areas, snow, burn, soil, or water/drought/moisture stress. Provided by Awesome Spectral Indices (https://github.com/awesome-spectral-indices/awesome-spectral-indices).",requiredProcesses:["reduce_dimension"]}],basemaps:[{title:"OpenStreetMap",url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",attributions:'© OpenStreetMap contributors.',maxZoom:19}],importCommunityExamples:!0,processNamespaces:[],oidcClientIds:{},showHttpWarning:!0,dataRefreshInterval:2,showExperimentalByDefault:!1,showDeprecatedByDefault:!1,pageLimit:50}},61663:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r={data(){return{eventBusListeners:{}}},beforeDestroy(){for(var e in this.eventBusListeners)this.$root.$off(e,this.eventBusListeners[e])},methods:{hasListener(e){return!!this.eventBusListeners[e]},listen(e,t){this.unlisten(e),this.$root.$on(e,t),this.eventBusListeners[e]=t},unlisten(e){this.hasListener(e)&&(this.$root.$off(e,this.eventBusListeners[e]),delete this.eventBusListeners[e])},broadcast(){this.$root.$emit(...arguments)}}}},51176:(e,t,s)=>{"use strict";s.d(t,{A:()=>c});var r=s(96737),i=s(89718),a=s(95286),o=s(84078),n=s(2566);class c{static async get(e){return e instanceof a.A?e:await c._load(e)}static add(e,t,s){try{r.A.defs(e,t),(0,o.kz)(r.A);let a=(0,i.get)(e);return Array.isArray(s)&&(s=(0,i.transformExtent)(s,"EPSG:4326",a),a.setExtent(s)),t.includes("+datum=WGS84")&&(a.basemap=!0),a}catch(a){return console.error(a),null}}static async addFromStac(e){if(n.A.isObject(e)&&n.A.isObject(e.properties)){if(e.properties["proj:code"])return await c.get(e.properties["proj:code"]);if(e.properties["proj:wkt2"])return c.add(e.id,e.properties["proj:wkt2"])}return null}static async _load(e){let t,r;if("string"===typeof e&&e.match(/^EPSG:\d+$/i))t=e.toUpperCase(),r=e.substr(5);else{if(!Number.isInteger(e))return null;t=`EPSG:${e}`,r=String(e)}let a=(0,i.get)(t);if(a)return a;let o=await s.e(4054).then(s.t.bind(s,14054,19));return r in o?c.add(t,o[r][0],o[r][1]):null}}},40772:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});s(81454);var r=s(6765);class i extends r.wI{constructor(e,t=[",",";"]){super(e,"TableViewer","fa-table"),this.delim=t}async parseData(e){if("string"===typeof e){let t=this.parseCSV(e.trim());return t.map((e=>e.map((e=>(e=e.trim(),0===e.length?NaN:isNaN(e)?e:parseFloat(e))))))}return e}parseCSV(e){for(var t=[],s=!1,r=0,i=0,a=0;a{"use strict";s.d(t,{rS:()=>o,wI:()=>a,yL:()=>i});var r=s(2566);class i{constructor(e){Object.assign(this,e),this.context=null}setContext(e){this.context=e}getContext(){return this.context}getUrl(){return this.href}canGroup(){return!1}isBinary(){return!0}download(e=null){let t=document.createElement("a");t.style.display="none",t.href=this.getUrl(),t.setAttribute("download",e||r.A.makeFileName("result",this.type)),t.setAttribute("target","_blank"),document.body.appendChild(t),t.click(),document.body.removeChild(t)}async loadData(e){this.loaded||(this.data=await this.fetchData(e),this.loaded=!0)}getData(){if(!this.loaded)throw new Error("Data must be loaded before");return this.data}async fetchData(e){let t,s=this.getUrl();if(s.startsWith("blob:")){let e=await fetch(s);t=await e.blob()}else{let r=!1;try{let t=new URL(e.getUrl()),i=new URL(s);r=t.origin===i.origin}catch(a){}t=await e.download(s,r)}let r=new Promise(((e,s)=>{let r=new FileReader;r.onload=t=>e(t.target.result),r.onerror=s,this.isBinary()?r.readAsBinaryString(t):r.readAsText(t)})),i=await r;return await this.parseData(i)}async parseData(e){return e}}class a extends i{constructor(e,t=null,s="fa-database",r={},i={}){super(e),this.loaded=!1,this.component=t,this.props=r,this.props.data||(this.props.data=this),this.icon=s,this.events=i}isBinary(){return!1}}class o extends i{constructor(e){super(e)}}},76130:(e,t,s)=>{"use strict";s.d(t,{A:()=>m});s(98992),s(3949);var r=s(6765),i=s(2566),a=s(51176),o=s(34099),n=s(98622),c=s(89718),l=s(95286),d=s(8100);const p="STATISTICS_MINIMUM",u="STATISTICS_MAXIMUM",h="DESCRIPTION";class f extends r.wI{constructor(e,t){super(e,"MapViewer","fa-map",{removableLayers:!0}),this._bands=[],this._nodata=[],this.img=null,this.projection=null,this.extent=null,this.convertToRGB=!1,this.stac=t}isBinary(){return!0}canGroup(){return!0}async loadData(e){return this.loaded||(await this.parseMetadata(),this.loaded=!0),this}getData(){return this}async parseMetadata(){let e,t,s=this.stac&&(this.stac.geometry||this.stac.extent);this.projection=await a.A.addFromStac(this.stac),Array.isArray(this["file:nodata"])&&this["file:nodata"].length>0&&(this._nodata=i.A.parseNodata(this["file:nodata"])),Array.isArray(this.bands)&&this.bands.length>0&&this.bands.forEach(((e,t)=>{e.name&&this.setBandInfo(t,{name:e.name}),i.A.isObject(e.statistics)&&this.setBandInfo(t,{min:e.statistics.minimum,max:e.statistics.maximum}),0===this._nodata.length&&"undefined"!==typeof e.nodata&&this._nodata.push(i.A.parseNodata(e.nodata))})),e=this.getBlob()?await(0,o._F)(this.getBlob()):await(0,o.uz)(this.getUrl()),this.img=await e.getImage();for(let a=0;a{"use strict";s.d(t,{A:()=>o});s(98992),s(37550);var r=s(2566),i=s(6765);class a extends i.wI{constructor(e,t="DataViewer"){super(e,t),this.isGeoJson=!1}async parseData(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(t){console.log(t)}return r.A.detectGeoJson(e)?(this.isGeoJson=!0,this.component="MapViewer",this.icon="fa-map"):this.isTable(e)&&(this.component="TableViewer",this.icon="fa-table"),e}isTable(e){if(!e||"object"!==typeof e||0===r.A.size(e))return!1;let t=Object.values(e),s=Object.keys(t[0]);return!t.some((e=>!e||"object"!==typeof e||!r.A.equals(Object.keys(e),s)))}}const o=a},15424:(e,t,s)=>{"use strict";s(98992),s(54520);var r=s(85471),i=s(96346),a=(s(72577),s(81454),s(95353)),o=s(73902),n=s(31572),c=s(71321),l=s.n(c),d=s(2566),p=s(60478),u=s(14894);const h={mathProcesses:null,getMathProcesses(){return this.mathProcesses||(this.mathProcesses=this.all().filter(p.A.isMathProcess)),this.mathProcesses},isMath(e){if(e instanceof u.ProcessGraph&&(e=e.process),!d.A.isObject(e)||0===d.A.size(e.process_graph))return null;let t=this.getMathProcesses().map((e=>e.id)).concat(Object.values(o.Formula.operatorMapping)).concat(Object.keys(o.Formula.arrayOperatorMapping)).concat(["array_element"]),s=Object.values(e.process_graph).find((e=>!t.includes(e.process_id)));return"undefined"===typeof s}};var f=s(19306),m=(s(3949),s(58597)),g=s(6765);class v extends g.wI{constructor(e){super(e,"ImageViewer","fa-image")}isBinary(){return!0}async fetchData(){return new Promise(((e,t)=>{let s=new Image;s.crossOrigin="anonymous",s.onerror=()=>t(new Error("Failed to load the image")),s.onload=()=>e(s),s.fetchPriotity="high",s.decoding="sync",s.src=this.getUrl()}))}}const b=v;var y=s(40772),w=s(76130),A=s(75024);class C extends g.wI{constructor(e){super(e,"DataViewer")}}const P=C;class S extends y.A{constructor(e){super(e,["\t"])}}const x=S;class M{constructor(){}createFilesFromSTAC(e,t=null){let s=Object.values(e.assets).filter((e=>!Array.isArray(e.roles)||!e.roles.includes("metadata"))).map((t=>this.createFileFromAsset(t,e)));return t&&s.forEach((e=>e.setContext(t))),s}createFilesFromBlob(e){if(!(e instanceof Blob))throw new Error("Given data is not a valid Blob");return this.createFilesFromSTAC({stac_version:"1.0.0",type:"Feature",geometry:null,properties:{},links:[],assets:{result:{href:URL.createObjectURL(e),blob:e,type:e.type}}})}createFileFromAsset(e,t){try{if("string"===typeof e.type){let s=m.parse(e.type.toLowerCase());switch(s.type){case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/webp":return new b(e);case"application/json":case"text/json":case"application/geo+json":return new A.A(e);case"text/plain":return new P(e);case"text/csv":return new y.A(e);case"text/tab-separated-values":return new x(e);case"image/tiff":return new w.A(e,t)}}if("string"===typeof e.href){let s=e.href.split(/[#?]/)[0].split(".").pop().trim().toLowerCase();switch(s){case"png":case"jpg":case"jpeg":case"gif":case"webp":return new b(e);case"json":case"geojson":return new A.A(e);case"txt":return new P(e);case"csv":return new y.A(e);case"tsv":return new x(e);case"tif":case"tiff":return new w.A(e,t)}}}catch(s){console.log(s)}return new g.rS(e)}}const O="serverUrls",_=()=>({appMode:null,storedServers:JSON.parse(localStorage.getItem(O)||"[]"),context:null,process:null,discoverySearchTerm:"",hightestModalZIndex:1e3,epsgCodes:[],initialProcess:null,initialNode:null,openWizard:null,openWizardProps:{},collectionPreview:null,viewerOptions:{},modelDnD:null,formatRegistry:new M}),F={namespaced:!0,state:_(),getters:{hasProcess:e=>d.A.isObject(e.process)&&d.A.size(e.process)>0&&d.A.size(e.process.process_graph),getModelNodeFromDnD:(e,t,s,r)=>()=>new Promise(((t,s)=>{if(!e.modelDnD)return void t(null);const i=()=>{switch(e.modelDnD.type){case"collection":return{process_id:"load_collection",arguments:r.collectionDefaults(e.modelDnD.data.id)};case"process":return{process_id:e.modelDnD.data.id,namespace:e.modelDnD.data.namespace,arguments:{}};case"udf":return{process_id:"run_udf",arguments:e.modelDnD.data};case"fileformat":return{process_id:"save_result",arguments:{format:e.modelDnD.data.name,options:{}}};default:return null}};if(e.modelDnD.loading){let s=setInterval((()=>{e.modelDnD&&!e.modelDnD.loading&&(clearInterval(s),t(i()))}),50)}else t(i())}))},actions:{async loadEpsgCodes(e){if(0===e.state.epsgCodes.length){let t=await s.e(4011).then(s.t.bind(s,64011,19));e.commit("epsgCodes",t.default)}},async loadInitialProcess(e){if(!e.state.process)if(d.A.isUrl(e.state.initialProcess)){let s=await d.A.axios().get(e.state.initialProcess);if(d.A.isObject(s.data)){var t=new u.ProcessGraph(s.data);t.parse(),e.commit("setProcess",s.data)}}else if("string"===typeof e.state.initialProcess&&e.state.initialProcess.length>0){let[t,r]=d.A.extractUDPParams(e.state.initialProcess);try{await e.dispatch("loadProcess",{id:t,namespace:r},{root:!0})}catch(s){console.warn(s)}e.commit("setProcess",{process_graph:{[t]:{process_id:t,namespace:r,arguments:{},result:!0}}})}},async loadForAppMode(e){if(e.state.appMode&&"service"!==e.state.appMode.resultType)try{let t=await d.A.axios().get(e.state.appMode.resultUrl);d.A.isObject(t.data)&&e.commit("setAppModeData",t.data)}catch(t){throw console.error(t),new Error("Sorry, the shared data is not available anymore!")}}},mutations:{setModelDnD(e,t=null){e.modelDnD=t},setDiscoverySearchTerm(e,t){e.discoverySearchTerm="string"===typeof t?t:""},setInitialProcess(e,t){e.initialProcess=t},setInitialNode(e,t){e.initialNode=t},setAppMode(e,t){e.appMode={...t,title:"Results",data:null,expires:null}},setAppModeData(e,t){let s,i,a;t.type&&(t=l().stac(t,!1)),r.Ay.set(e.appMode,"data",t),"Collection"===t.type?(s=d.A.getProcessingExpression(t)||d.A.getProcessingExpression(t.summaries),i=t.title,a=t.expires):"Feature"===t.type&&(s=d.A.getProcessingExpression(t.properties),i=t.properties?.title,a=t.properties?.expires),s&&(e.process=s),i&&(r.Ay.set(e.appMode,"title",i),r.Ay.set(e.appMode,"expires",a),e.context=i)},setViewerOptions(e,t){e.viewerOptions=t||{}},setOpenWizard(e,{component:t,options:s}){e.openWizard=t,t&&(e.openWizardProps=s)},setCollectionPreview(e,t){e.collectionPreview=t,e.discoverySearchTerm||(e.discoverySearchTerm="string"===typeof t?t:"")},openModal(e){e.hightestModalZIndex=e.hightestModalZIndex+1},closeModal(e){e.hightestModalZIndex=e.hightestModalZIndex-1},addServer(e,t){-1===e.storedServers.indexOf(t)&&e.storedServers.push(t),localStorage.setItem(O,JSON.stringify(e.storedServers))},removeServer(e,t){e.storedServers.splice(e.storedServers.indexOf(t),1),localStorage.setItem(O,JSON.stringify(e.storedServers))},setContext(e,t){e.context=t,t instanceof o.Job||t instanceof o.Service?e.process=t.process:t instanceof o.UserProcess?e.process=t.toJSON():d.A.isObject(t)&&t.process?e.process=t.process:e.process=t},setProcess(e,t){e.process=t},epsgCodes(e,t){e.epsgCodes=t},reset(e){Object.assign(e,_())}}},T=({namespace:e,listFn:t,paginateFn:s,createFn:i,updateFn:a,deleteFn:c,readFn:l,readFnById:d,customizations:p,primaryKey:u})=>{u||(u="id");const h=()=>({pages:null,hasMore:!1,[e]:[]});let f={namespaced:!0,state:h(),getters:{supportsList:(e,s,r,i)=>i.supports(t),supportsCreate:(e,t,s,r)=>r.supports(i),supportsUpdate:(e,t,s,r)=>r.supports(a),supportsDelete:(e,t,s,r)=>r.supports(c),supportsRead:(e,t,s,r)=>r.supports(l),getById:t=>s=>{let r=t[e].find((e=>e[u]===s));return"undefined"!==typeof r?r:null}},actions:{async create(e,t){if(e.getters.supportsCreate){let s=e.rootState.connection,r=await s[i].apply(s,t);return e.commit("upsert",r),r}throw new Error("Adding is not supported by the server.")},async delete(e,{data:t}){if(!e.getters.supportsDelete)throw new Error("Deleting is not supported by the server.");await t[c](),e.commit("delete",t)},async update(e,{data:t,parameters:s}){if(e.getters.supportsUpdate){let r=await t[a](s);return e.commit("upsert",r),r}throw new Error("Updating is not supported by the server.")},async read(e,{data:t}){let s=null;if(!(t instanceof o.UserProcess)){let r=n.Utils.isObject(t)?t[u]:t;t=e.getters.getById(r),t||(s=await e.rootState.connection[d](t))}return s||(s=await t[l]()),e.commit("upsert",s),s},async list(r){const i=r.state[e].length;if(r.getters.supportsList){let a=Math.max(r.rootState.pageLimit,i);if(s){const t=r.rootState.connection[s](a,r.state[e]),i=await t.nextPage();r.commit("reset"),r.commit("pages",t),r.commit("data",i)}else{const s=await r.rootState.connection[t](r.state[e]);r.commit("reset"),r.commit("data",s)}}return r.state[e]},async nextPage(t){if(t.state.pages&&t.state.hasMore)return t.commit("data",await t.state.pages.nextPage()),t.state[e]}},mutations:{data(t,s){if(Array.isArray(s))for(let r of s)t[e].push(r);t.hasMore=!!t.pages&&t.pages.hasNextPage()},pages(e,t){e.pages=t},upsert(t,s){let i=s[u],a=t[e].findIndex((e=>e[u]===i)),o=r.Ay.observable(s);a>=0?r.Ay.set(t[e],a,o):t[e].push(o)},delete(t,s){let i=s[u],a=t[e].findIndex((e=>e[u]===i));a>=0&&r.Ay.delete(t[e],a)},reset(e){Object.assign(e,h())}}};for(let r in p)Object.assign(f[r],p[r]);return f},U=T({namespace:"files",listFn:"listFiles",paginateFn:"paginateFiles",createFn:"uploadFile",updateFn:"uploadFile",deleteFn:"deleteFile",readFn:"downloadFile",readFnById:"getFile",primaryKey:"path",customizations:{getters:{},actions:{},mutations:{}}}),j=T({namespace:"jobs",listFn:"listJobs",paginateFn:"paginateJobs",createFn:"createJob",updateFn:"updateJob",deleteFn:"deleteJob",readFn:"describeJob",readFnById:"getJob",customizations:{getters:{supportsQueue:(e,t,s,r)=>r.supports("startJob"),supportsCancel:(e,t,s,r)=>r.supports("stopJob")},actions:{async queue(e,{data:t}){if(e.getters.supportsQueue){let s=await t.startJob();return e.commit("upsert",s),s}throw new Error("Queueing a batch job is not supported by the server.")},async cancel(e,{data:t}){if(e.getters.supportsCancel){let s=await t.stopJob();return e.commit("upsert",s),s}throw new Error("Canceling a batch job is not supported by the server.")}},mutations:{}}}),D=T({namespace:"services",listFn:"listServices",paginateFn:"paginateServices",createFn:"createService",updateFn:"updateService",deleteFn:"deleteService",readFn:"describeService",readFnById:"getService",customizations:{getters:{},actions:{},mutations:{}}}),I=T({namespace:"userProcesses",listFn:"listUserProcesses",paginateFn:null,createFn:"setUserProcess",updateFn:"replaceUserProcess",deleteFn:"deleteUserProcess",readFn:"describeUserProcess",readFnById:"getUserProcess",customizations:{getters:{},actions:{},mutations:{data(e,t){e.userProcesses=t.map((e=>Object.assign(e,{namespace:"user"}))).filter((e=>"string"===typeof e.id)).sort(d.A.sortById)}}}});r.Ay.use(a.Ay),o.Formula.arrayOperatorMapping={product:"*",sum:"+"},o.Formula.reverseOperatorMapping=(()=>{const e={};for(const t in o.Formula.operatorMapping)e[o.Formula.operatorMapping[t]]=t;return Object.assign(e,o.Formula.arrayOperatorMapping)})();const L=()=>({connection:null,activeRequests:0,discoveryCompleted:!1,isAuthenticated:!1,userInfo:{},connectionError:null,beforeLogoutListener:{},authProviders:[],fileFormats:{},serviceTypes:{},udfRuntimes:{},processesUpdated:0,collections:[],processNamespaces:f.A.processNamespaces||[],pageLimit:f.A.pageLimit}),E=new a.Ay.Store({modules:{editor:F,files:U,jobs:j,services:D,userProcesses:I},state:L(),getters:{title:e=>{if(null!==e.connection&&null!==e.connection.capabilities()){const t=e.connection.capabilities().title();return t||e.connection.getUrl()}return null},capabilities:e=>null!==e.connection?e.connection.capabilities():null,supports:e=>t=>null!==e.connection&&null!==e.connection.capabilities()&&e.connection.capabilities().hasFeature(t),currency:e=>{let t="";return e.connection&&null!==e.connection.capabilities().currency()&&(t=e.connection.capabilities().currency()),t},isConnected:e=>null!==e.connection&&null!==e.connection.capabilities(),isDiscovered:e=>null!==e.connection&&e.discoveryCompleted,supportsBilling:e=>null!==e.connection&&null!==e.connection.capabilities().currency(),supportsBillingPlans:e=>null!==e.connection&&null!==e.connection.capabilities().currency()&&e.connection.capabilities().listPlans().length>0,apiVersion:e=>null!==e.connection?e.connection.capabilities().apiVersion():null,fileFormats:e=>e.fileFormats instanceof o.FileTypes?e.fileFormats.toJSON():{input:{},output:{}},collectionDefaults:e=>t=>{const s=e.collections.find((e=>e.id===t));if(!d.A.isObject(s))return{};let r=null;try{r=d.A.extentToBBox(s.extent.spatial.bbox[0])}catch(o){}let i=null;try{i=s.extent.temporal.interval[0],null===i[0]&&null===i[1]?i=null:i[0]==i[1]&&(i[1]=null)}catch(o){}let a=null;return{id:t,spatial_extent:r,temporal_extent:i,bands:a}},processes:e=>{let t;return t=e.processesUpdated&&null!==e.connection?e.connection.processes:new n.ProcessRegistry,Object.assign(t,h)},supportsMath:(e,t)=>{if(e.processesUpdated){for(let e in o.Formula.operatorMapping){let s=o.Formula.operatorMapping[e];if(!t.processes.has(s))return!1}return!0}}},actions:{async connect(e,t){await e.dispatch("logout");let s=null;try{s=await o.OpenEO.connect(t,{addNamespaceToProcess:!0})}catch(r){return"Network Error"!=r.message&&"NetworkError"!=r.name||(r=new Error("Server is not available.")),e.commit("setConnectionError",r),!1}try{const t=await s.listAuthProviders();e.commit("authProviders",t)}catch(r){return e.commit("setConnectionError",r),!1}return s.on("authProviderChanged",(async t=>{e.commit("authenticated",null!==t),e.state.discoveryCompleted&&await e.dispatch("discover",!0)})),s.on("processesChanged",(()=>e.commit("updateProcesses"))),e.commit("connection",s),!0},async discover(e,t=!1){let s=[],r=[],i=e.state.connection.capabilities();if(i.hasFeature("listCollections")?s.push(e.state.connection.listCollections().then((t=>e.commit("collections",t))).catch((e=>r.push(e)))):r.push(new Error("Collections not supported by the server.")),!t){if(i.hasFeature("listProcesses")?s.push(e.state.connection.listProcesses().catch((e=>r.push(e)))):r.push(new Error("Pre-defined processes not supported by the server.")),e.state.processNamespaces.length>0)for(let t of e.state.processNamespaces)s.push(e.state.connection.listProcesses(t).catch((e=>r.push(e))));i.hasFeature("listUserProcesses")&&e.state.connection.isAuthenticated()&&s.push(e.dispatch("userProcesses/list").catch((e=>r.push(e))))}i.hasFeature("listFileTypes")&&s.push(e.state.connection.listFileTypes().then((t=>e.commit("fileFormats",t))).catch((e=>r.push(e)))),i.hasFeature("listServiceTypes")&&s.push(e.state.connection.listServiceTypes().then((t=>e.commit("serviceTypes",t))).catch((e=>r.push(e)))),i.hasFeature("listUdfRuntimes")&&s.push(e.state.connection.listUdfRuntimes().then((t=>e.commit("udfRuntimes",t))).catch((e=>r.push(e))));const a=e.dispatch("describeAccount").catch((e=>r.push(e)));if(s.push(a),await Promise.all(s),!t)try{await e.dispatch("editor/loadInitialProcess")}catch(o){r.push(o)}if(!t)try{await e.dispatch("editor/loadForAppMode")}catch(o){r.push(o)}return e.commit("discoveryCompleted"),r},async describeAccount(e){if(e.getters.supports("describeAccount")&&e.state.isAuthenticated){const t=await e.state.connection.describeAccount();e.commit("userInfo",t)}else e.commit("userInfo")},async describeCollection(e,t){let s=e.state.collections.find((e=>e.id===t));return s&&s._loaded||(s=await e.state.connection.describeCollection(t),s=l().collection(s,!1),e.commit("fillCollection",s)),s},async loadProcess(e,{id:t,namespace:s}){const r=e.getters.processes.get(t,s);return d.A.isObject(r)?("backend"!==r.namespace&&("user"===r.namespace?await e.dispatch("userProcesses/read",{data:r}):r.namespace&&"backend"!==s&&await e.state.connection.describeProcess(t,r.namespace)),e.getters.processes.get(t,s)):null},async beforeLogout(e){await Promise.all(Object.values(e.state.beforeLogoutListener).map((e=>e())))},async logout(e,t=!1){if(await e.dispatch("beforeLogout"),t&&(e.state.connection.off("authProviderChanged"),e.state.connection.off("processesChanged")),e.state.isAuthenticated){const t=e.state.connection.getAuthProvider();null!==t&&await t.logout()}t?(e.commit("reset",this.isAuthenticated),e.commit("jobs/reset"),e.commit("files/reset"),e.commit("services/reset"),e.commit("userProcesses/reset")):e.commit("authenticated",!1)}},mutations:{discoveryCompleted(e,t=!0){e.discoveryCompleted=t},connection(e,t){e.connection=t},authProviders(e,t){e.authProviders=t},userInfo(e,t){e.userInfo=d.A.isObject(t)?t:{}},fileFormats(e,t){e.fileFormats=t},serviceTypes(e,t){if(d.A.isObject(t)){const s={};for(const e in t)s[e.toUpperCase()]=t[e];e.serviceTypes=s}else e.serviceTypes=t},udfRuntimes(e,t){e.udfRuntimes=t},updateProcesses(e){e.processesUpdated++},addProcessNamespacesToRequest(e,t){if("string"===typeof t&&(t=t.split(",")),Array.isArray(t))for(let s of t)s&&!e.processNamespaces.includes(s)&&e.processNamespaces.push(s)},fillCollection(e,t){let s=e.collections.findIndex((e=>e.id===t.id));-1!==s&&(t._loaded=!0,r.Ay.set(e.collections,s,t))},collections(e,t){e.collections=t.collections.map((e=>l().collection(e,!1))).filter((e=>"string"===typeof e.id)).sort(d.A.sortById)},setConnectionError(e,t){e.connectionError=t},authenticated(e,t){e.isAuthenticated=t,t||(e.userInfo={})},reset(e,t=!1){Object.assign(e,L(),{connection:t?e.connection:null})},startActiveRequest(e){e.activeRequests+=1},endActiveRequest(e){e.activeRequests-=1},beforeLogoutListener(e,{key:t,listener:s}){"function"===typeof s?e.beforeLogoutListener[t]=s:r.Ay.delete(e.beforeLogoutListener,t)}}});var k=function(){var e=this,t=e._self._c;return t("div",{staticClass:"container",class:{connecting:!e.isDiscovered}},[t("transition",{attrs:{name:"connect-fade",mode:"out-in"}},[e.isDiscovered?t("IDE",{key:"2"}):t("ConnectForm",{key:"1",attrs:{skipLogin:e.skipLogin}})],1),e._l(e.modals,(function(s){return[t(s.component,e._g(e._b({key:s.id,tag:"component",on:{closed:function(t){return e.hideModal(s)}}},"component",s.props,!1),s.events))]})),t("vue-snotify"),e.tourType?t("Tour",{model:{value:e.tourType,callback:function(t){e.tourType=t},expression:"tourType"}}):e._e(),t("span",{directives:[{name:"show",rawName:"v-show",value:e.activeRequests>0,expression:"activeRequests > 0"}],attrs:{id:"activeRequests"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-2x"})])],2)},$=[],N=s(61663),B=function(){var e=this,t=e._self._c;return t("div",{staticClass:"connectPage"},[t("Logo"),t("div",{staticClass:"connectContainer"},[t("div",{staticClass:"helpBtn",attrs:{title:"Show help"},on:{click:e.showHelp}},[t("i",{staticClass:"fas fa-question fa-fw"}),e._v(" Help")]),e.httpsUrl?t("div",{staticClass:"message error"},[t("i",{staticClass:"fas fa-shield-alt"}),t("span",[e._v("You are using an "),t("strong",[e._v("insecure")]),e._v(" HTTP connection, which is not encrypted. Please use HTTPS if possible."),t("br"),t("a",{attrs:{href:e.httpsUrl}},[e._v("Click here to switch to a secured HTTPS connection.")])])]):e._e(),e.message?t("div",{staticClass:"message warning"},[t("i",{staticClass:"fas fa-bullhorn"}),t("span",{domProps:{innerHTML:e._s(e.message)}})]):e._e(),t("transition",{attrs:{name:"connect-fade",mode:"out-in"},on:{"before-enter":e.initProviders}},[e.showConnectForm?t("form",{staticClass:"connect",on:{submit:function(t){return t.preventDefault(),e.submitForm.apply(null,arguments)}}},[t("h3",[e._v("Connect to server")]),t("div",{staticClass:"row"},[t("label",{attrs:{for:"serverUrl"}},[e._v("URL:")]),t("div",{staticClass:"input"},[t("input",{directives:[{name:"model",rawName:"v-model.lazy.trim",value:e.serverUrl,expression:"serverUrl",modifiers:{lazy:!0,trim:!0}}],staticClass:"tour-connect-url",attrs:{type:"text",id:"serverUrl",disabled:e.autoConnect},domProps:{value:e.serverUrl},on:{change:function(t){e.serverUrl=t.target.value.trim()},blur:function(t){return e.$forceUpdate()}}}),e.allowOtherServers?t("button",{staticClass:"tour-connect-history",attrs:{type:"button",title:"Select previously used server"},on:{click:e.showServerSelector}},[t("i",{staticClass:"fas fa-book"})]):e._e()])]),t("div",{staticClass:"row"},[t("button",{staticClass:"connectBtn tour-connect-retry",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),e._v(" Connect")])])]):e.showLoginForm?t("div",{staticClass:"login"},[t("h3",[e._v("Log in to "+e._s(e.title))]),t("Tabs",{ref:"providers",attrs:{id:"credentials",pills:!0,pillsMultiline:!0},on:{selected:e.providerSelected},scopedSlots:e._u([{key:"dynamic",fn:function({tab:s}){return[t("form",{on:{submit:function(t){return t.preventDefault(),e.initDiscovery(s.data)}}},[s.data.description?t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-info-circle"}),t("span",[e._v(e._s(s.data.description))])]):e._e(),e.hasPredefinedOidcClientId?e._e():[t("div",{staticClass:"row"},[t("label",{attrs:{for:"password"}},[e._v("Client ID:")]),t("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.userOidcClientId,expression:"userOidcClientId",modifiers:{trim:!0}}],staticClass:"input",attrs:{type:"text",required:"required"},domProps:{value:e.userOidcClientId},on:{input:function(t){t.target.composing||(e.userOidcClientId=t.target.value.trim())},blur:function(t){return e.$forceUpdate()}}})]),t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-exclamation-circle"}),t("span",[e._v("You need to specify the "),t("em",[e._v("Client ID")]),e._v(" provided to you by the provider. You need to allow the "),t("a",{attrs:{href:e.oidcRedirectUrl,target:"_blank",title:e.oidcRedirectUrl}},[e._v("URL of this service")]),e._v(" as redirect URL with the authentication service.")])])],t("div",{staticClass:"row bottom"},[t("TermsOfServiceConsent"),t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-window-restore"}),t("span",[e._v("Clicking the button below may open a new window for login.")])]),t("button",{staticClass:"connectBtn",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),t("i",{staticClass:"fab fa-openid"}),e._v(" Log in with "+e._s(s.name))])],1)],2)]}},e.basicProvider?{key:"basic",fn:function({tab:s}){return[t("form",{on:{submit:function(t){return t.preventDefault(),e.initDiscovery(s.data)}}},[t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-info-circle"}),t("span",[e._v("The "),t("tt",[e._v("HTTP Basic")]),e._v(" authentication method is mostly used for development and testing purposes.")],1)]),t("div",{staticClass:"row"},[t("label",{attrs:{for:"username"}},[e._v("Username:")]),t("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.username,expression:"username",modifiers:{trim:!0}}],staticClass:"input",attrs:{id:"username",type:"text",required:"required"},domProps:{value:e.username},on:{input:function(t){t.target.composing||(e.username=t.target.value.trim())},blur:function(t){return e.$forceUpdate()}}})]),t("div",{staticClass:"row"},[t("label",{attrs:{for:"password"}},[e._v("Password:")]),t("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.password,expression:"password",modifiers:{trim:!0}}],staticClass:"input",attrs:{id:"password",type:"password",required:"required"},domProps:{value:e.password},on:{input:function(t){t.target.composing||(e.password=t.target.value.trim())},blur:function(t){return e.$forceUpdate()}}})]),t("div",{staticClass:"row bottom"},[t("TermsOfServiceConsent"),t("button",{staticClass:"connectBtn",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),e._v(" Log in")])],1)])]}}:null,{key:"noauth",fn:function(){return[t("form",{on:{submit:function(t){return t.preventDefault(),e.initDiscovery()}}},[t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-info-circle"}),t("span",[e._v("Choose this if you don't have credentials for the service provider and just want to explore the service with its available data and processes. You may not be able to process any data.")])]),t("div",{staticClass:"row bottom"},[t("TermsOfServiceConsent"),t("button",{staticClass:"connectBtn",class:{loading:e.loading},attrs:{type:"submit"}},[t("i",{staticClass:"fas fa-spinner fa-spin fa-lg"}),t("i",{staticClass:"fas fa-user-slash"}),e._v(" Proceed without logging in")])],1)])]},proxy:!0}],null,!0)}),e.allowOtherServers?t("div",{staticClass:"switch tour-login-switch"},[t("a",{on:{click:function(t){return e.switchServer()}}},[e._v("Switch server")])]):e._e()],1):e._e()])],1)],1)},R=[],q=s(66644),G=s(4615),J=s(58379),W=function(){var e=this,t=e._self._c;return e.show?t("div",{staticClass:"row help"},[t("i",{staticClass:"fas fa-check-circle"}),e.terms&&e.privacy?t("span",[e._v("By clicking the button below, you agree to our "),t("a",{attrs:{href:e.terms.href,title:e.terms.title,target:"_blank"}},[e._v("Terms of Service")]),e._v(" and that you have read our "),t("a",{attrs:{href:e.privacy.href,title:e.privacy.title,target:"_blank"}},[e._v("Privacy Policy")]),e._v(".")]):e.terms?t("span",[e._v("By clicking the button below, you agree to our "),t("a",{attrs:{href:e.terms.href,title:e.terms.title,target:"_blank"}},[e._v("Terms of Service")]),e._v(".")]):e.privacy?t("span",[e._v("By clicking the button below, you agree that you have read our "),t("a",{attrs:{href:e.privacy.href,title:e.privacy.title,target:"_blank"}},[e._v("Privacy Policy")]),e._v(".")]):e._e()]):e._e()},z=[];const H={name:"TermsOfServiceConsent",computed:{...d.A.mapGetters(["capabilities"]),show(){return this.terms&&this.privacy},terms(){return this.getLinkForRel("terms-of-service")},privacy(){return this.getLinkForRel("privacy-policy")}},methods:{getLinkForRel(e){let t=this.capabilities.links().filter((t=>t.rel===e));return t.length>0?t[0]:null}}},V=H;var K=s(81656),Y=(0,K.A)(V,W,z,!1,null,null,null);const Z=Y.exports,Q={name:"ConnectForm",mixins:[N.A],components:{Logo:q.A,Tabs:G["default"],Tab:J["default"],TermsOfServiceConsent:Z},props:{skipLogin:{type:Boolean,default:!1}},computed:{...d.A.mapState(["connectionError","authProviders","isAuthenticated"]),...d.A.mapGetters(["isConnected","isDiscovered","title"]),...d.A.mapState("editor",["storedServers"]),httpsUrl(){return this.$config.showHttpWarning&&!this.isLocalUrl(window.location)&&"http:"===window.location.protocol?window.location.toString().replace(/^http:/i,"https:").replace(/([\?&]server=http)(:|%3A)/,"$1s$2"):null},hasPredefinedOidcClientId(){return!(!this.provider||"oidc"!==this.provider.getType())&&Boolean(this.provider.defaultClient||this.$config.oidcClientIds[this.provider.id])},oidcClientId(){return this.provider&&"oidc"===this.provider.getType()&&(this.userOidcClientId||this.$config.oidcClientIds[this.provider.id])||null},oidcProviders(){return this.authProviders.filter((e=>"oidc"===e.getType()))},basicProvider(){return this.authProviders.find((e=>"basic"===e.getType()))||null},showConnectForm(){return!this.isConnected||this.skipLogin},showLoginForm(){return!this.showConnectForm&&!this.isDiscovered&&!this.skipLogin}},watch:{showConnectForm(e){e&&this.broadcast("title","Connect to server"),this.broadcast("stopTour")},showLoginForm(e){e&&this.broadcast("title","Log in"),this.broadcast("stopTour")}},data(){var e=500,t=500,s=50,r=50;return window.screen&&window.screen.availWidth>0&&window.screen.availHeight>0&&(e=Math.max(.8*window.screen.availWidth,e),t=Math.max(.8*window.screen.availHeight,t),s=.1*window.screen.availWidth,r=.1*window.screen.availHeight),{serverUrl:this.$config.serverUrl,allowOtherServers:!this.$config.serverUrl,autoConnect:!1,username:"",password:"",provider:null,loading:!1,message:this.$config.loginMessage,userOidcClientId:"",oidcOptions:{automaticSilentRenew:!0,popupWindowFeatures:`location=no,toolbar=no,width=${e},height=${t},left=${s},top=${r}`},oidcRedirectUrl:o.OidcProvider.redirectUrl}},async created(){var e=d.A.param("server");!this.$config.serverUrl&&e&&(this.serverUrl=e),this.serverUrl&&(this.autoConnect=!0);let t=d.A.param("oidc~prompt");["none","login","consent","select_account"].includes(t)&&(this.oidcOptions.prompt=t),o.OidcProvider.uiMethod="popup";try{await o.OidcProvider.signinCallback()}catch(s){s instanceof Error&&"No state in response"!==s.message&&d.A.exception(this,s)}},mounted(){window.onpopstate=e=>this.historyNavigate(e),window.history.replaceState({reset:!0,serverUrl:this.serverUrl},""),this.initProviders(),this.autoConnect&&this.submitForm()},methods:{...d.A.mapActions(["connect","discover","logout"]),...d.A.mapMutations(["reset"]),...d.A.mapMutations("editor",["addServer","removeServer"]),isLocalUrl(e){return Boolean("localhost"===e.hostname||"[::1]"===e.hostname||e.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))},showHelp(){this.isConnected?this.broadcast("showTour","login"):this.broadcast("showTour","connect")},historyNavigate(e){d.A.isObject(e.state)&&!e.state.reset||(this.logout(!0),this.autoConnect=!1,this.loading=!1,this.password=""),d.A.isObject(e.state)&&(e.state.serverUrl&&(this.serverUrl=e.state.serverUrl),"undefined"!==typeof e.state.autoConnect&&(this.autoConnect=e.state.autoConnect)),this.autoConnect&&this.initConnection(!!e.state.skipLogin,!0)},switchServer(){window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0},"",this.makeUrl(!1)),this.serverUrl=null,this.autoConnect=!1,this.reset()},initProviders(){this.$refs.providers&&0===this.$refs.providers.tabs.length&&this.addProviders()},addProviders(){for(var e of this.oidcProviders)this.$refs.providers.addTab(e.getTitle(),null,e,e.getId(),!1,!1);this.basicProvider&&this.$refs.providers.addTab("Internal",null,this.basicProvider,"basic",!1,!1),this.$refs.providers.addTab("No credentials",null,null,"noauth",!1,!1),this.$nextTick((()=>this.$refs.providers.resetActiveTab(!0)))},providerSelected(e){this.provider=e.data},async submitForm(){this.isConnected||await this.initConnection(this.skipLogin,!1)},async initConnection(e=!1,t=!1){if("string"!==typeof this.serverUrl||!this.serverUrl)return void d.A.error(this,"Please specify a server.");let s=this.serverUrl;if(s.match(/^https?:\/\//i)||(s=`https://${s}`),!d.A.isUrl(s))return void d.A.error(this,"The server given is not a valid URL.");const r=new URL(s);if("https:"!==window.location.protocol||"https:"===r.protocol||this.isLocalUrl(r)){this.loading=!0;try{await this.connect(s)?(this.addServer(s),t||window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0,skipLogin:e},"",this.makeUrl()),e&&await this.initDiscovery()):d.A.exception(this,this.connectionError)}catch(i){d.A.exception(this,i)}this.loading=!1,!this.isConnected&&this.allowOtherServers&&(this.autoConnect=!1)}else d.A.error(this,"You are trying to connect to a server with HTTP instead of HTTPS, which is insecure and prohibited by web browsers. Please use HTTPS instead.")},async initDiscovery(e=null){this.loading=!0;let t=d.A.isObject(e)&&"string"===typeof e.getType()?e.getType():null;try{if("basic"===t)await e.login(this.username,this.password);else if("oidc"===t){let t=!0;if(this.oidcClientId)this.provider.setClientId(this.oidcClientId);else{const s=e.detectDefaultClient();t=s&&Array.isArray(s.grant_types)&&s.grant_types.includes("refresh_token")}await e.login(this.oidcOptions,t),e.addListener("AccessTokenExpired",(()=>d.A.warn(this,"User session has expired, please login again."))),e.addListener("SilentRenewError",(()=>d.A.error(this,"You'll be switching to Guest mode in less than a minute.","Session renewal failed")))}else window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0,skipLogin:!0},"",this.makeUrl(!0,!0))}catch(r){return"basic"===t?d.A.error(this,"Sorry, credentials are wrong."):"oidc"===t&&"ErrorResponse"===r.name&&"string"===typeof r.error_description?d.A.error(this,r.error_description.replace(/\+/g," ")):"oidc"!==t||"Network Error"!=r.message&&"NetworkError"!=r.name?d.A.exception(this,r):d.A.error(this,"Sorry, the authentication server is not available right now."),void(this.loading=!1)}let s=await this.discover();for(var r of s)d.A.exception(this,r);this.loading=!1,this.isAuthenticated&&window.history.pushState({reset:!0,serverUrl:this.serverUrl,autoConnect:!0},"",this.makeUrl())},makeUrl(e=!0,t=!1){let s=new URLSearchParams(window.location.search);e&&!this.$config.serverUrl?s.set("server",this.serverUrl):s.delete("server"),t&&!this.$config.skipLogin?s.set("discover",1):!t&&this.$config.skipLogin?s.set("discover",0):s.delete("discover");let r=s.toString();return r?`.?${r}`:"."},showServerSelector(){this.broadcast("showListModal","Select previously used server",this.storedServers,[{callback:e=>(this.serverUrl=e,!0)},{callback:e=>this.removeServer(e),icon:"trash",title:"Delete"}])}}},X=Q;var ee=(0,K.A)(X,B,R,!1,null,"714226be",null);const te=ee.exports,se={name:"openeo-web-editor",mixins:[N.A],components:{ConnectForm:te,IDE:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(552)]).then(s.bind(s,92919)),AddMapDataModal:()=>s.e(3221).then(s.bind(s,63221)),CollectionModal:()=>Promise.all([s.e(2195),s.e(2919),s.e(4432),s.e(2263),s.e(1358),s.e(4389)]).then(s.bind(s,74389)),DataModal:()=>s.e(4375).then(s.bind(s,64375)),DownloadAssetsModal:()=>s.e(3383).then(s.bind(s,53383)),ErrorModal:()=>s.e(8370).then(s.bind(s,98370)),ExportCodeModal:()=>Promise.all([s.e(600),s.e(5237),s.e(6126)]).then(s.bind(s,98852)),ExpressionModal:()=>Promise.all([s.e(600),s.e(5237),s.e(2116)]).then(s.bind(s,53266)),FileFormatModal:()=>s.e(8324).then(s.bind(s,28324)),ImportProcessModal:()=>s.e(8580).then(s.bind(s,58580)),JobEstimateModal:()=>s.e(5981).then(s.bind(s,85981)),JobInfoModal:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(4111)]).then(s.bind(s,78064)),ListModal:()=>s.e(4818).then(s.bind(s,14818)),ParameterModal:()=>Promise.all([s.e(600),s.e(5237),s.e(1160),s.e(5983),s.e(1323),s.e(5624),s.e(1189),s.e(6617),s.e(5640),s.e(2559),s.e(2365),s.e(3800),s.e(3291),s.e(3876),s.e(9882),s.e(7261),s.e(1694),s.e(4394),s.e(4625),s.e(510),s.e(7745)]).then(s.bind(s,17745)),ProcessModal:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(2668)]).then(s.bind(s,12307)),ProcessParameterModal:()=>s.e(847).then(s.bind(s,90847)),ServerInfoModal:()=>s.e(5677).then(s.bind(s,65677)),ServiceInfoModal:()=>Promise.all([s.e(600),s.e(5237),s.e(4638),s.e(4710)]).then(s.bind(s,1777)),ShareModal:()=>s.e(2053).then(s.bind(s,22053)),Tour:()=>s.e(9047).then(s.bind(s,29047)),UdfRuntimeModal:()=>s.e(3166).then(s.bind(s,43166)),WebEditorModal:()=>s.e(9238).then(s.bind(s,19238)),WizardModal:()=>s.e(1533).then(s.bind(s,31533))},data(){return{modals:[],skipLogin:this.$config.skipLogin,tourType:null,title:null}},created(){this.addProcessNamespacesToRequest(d.A.param("namespaces")),this.setInitialProcess(d.A.param("process")),this.setInitialNode(d.A.param("edit-node")),this.setOpenWizard({component:d.A.param("wizard"),options:d.A.paramsForPrefix("wizard")}),this.setCollectionPreview(d.A.param("preview-collection"));const e=d.A.param("result");let t="job";d.A.param("app~service")&&(t="service"),e&&this.setAppMode({resultUrl:e,resultType:t,...d.A.paramsForPrefix("app")});const s=d.A.param("discover");"1"===s||e?this.skipLogin=!0:"0"===s&&(this.skipLogin=!1);const r=d.A.axios();r.interceptors.request.use((e=>(this.startActiveRequest(),e))),r.interceptors.response.use((e=>(this.endActiveRequest(),e)),(e=>(this.endActiveRequest(),Promise.reject(e))))},mounted(){this.listen("showError",this.showError),this.listen("showDataModal",this.showData),this.listen("showModal",this.showModal),this.listen("showListModal",this.showListModal),this.listen("showCollection",this.showCollection),this.listen("showProcess",this.showProcess),this.listen("showProcessParameter",this.showProcessParameter),this.listen("showWebEditorInfo",this.showWebEditorInfo),this.listen("title",this.setTitle),this.listen("showTour",(e=>this.tourType=e)),this.listen("stopTour",this.stopTour)},watch:{isDiscovered(e){e&&(this.skipLogin=!1),this.stopTour()},title(e){document.title=e}},computed:{...d.A.mapState(["activeRequests"]),...d.A.mapGetters(["isDiscovered"]),...d.A.mapState("editor",["hightestModalZIndex"])},methods:{...d.A.mapActions(["describeAccount","describeCollection","loadProcess"]),...d.A.mapMutations(["startActiveRequest","endActiveRequest","addProcessNamespacesToRequest"]),...d.A.mapMutations("editor",["setInitialProcess","setInitialNode","setOpenWizard","setAppMode","setCollectionPreview"]),setTitle(e){var t=`${this.$config.serviceName} ${this.$config.appName}`;e&&(t+=": "+e),this.title=t},stopTour(){this.tourType=null},showModal(e,t={},s={},r=null){this.modals.push({component:e,props:t,events:s,id:r||"modal_"+Date.now()}),this.stopTour()},hideModal(e){let t=d.A.isObject(e)?e.id:e,s=this.modals.findIndex((e=>e.id===t));"undefined"!==typeof s&&(this.modals.splice(s,1),this.stopTour())},showListModal(e,t,s){this.showModal("ListModal",{title:e,list:t,listActions:s})},showWebEditorInfo(){this.showModal("WebEditorModal")},showError(e){this.showModal("ErrorModal",{error:e})},async showCollection(e){try{let t=await this.describeCollection(e);this.showModal("CollectionModal",{collection:t})}catch(t){console.log(t),d.A.error(this,"Sorry, can't load collection details for '"+e+"'.")}},async showProcess(e){try{this.showModal("ProcessModal",{process:await this.loadProcess(e)})}catch(t){console.log(t),d.A.error(this,"Sorry, can't load process details.")}},async showData(e,t){this.showModal("DataModal",{data:e,title:t})},showProcessParameter(e,t){this.showModal("ProcessParameterModal",{parameter:e,origin:t})}}},re=se;var ie=(0,K.A)(re,k,$,!1,null,null,null);const ae=ie.exports,oe={};var ne=s(68261),ce=s.n(ne);for(var le in r.Ay.use(i.Ay),r.Ay.use(ce()),r.Ay.prototype.$snotify.singleError=function(){let e=arguments[0];e!==this.lastMessage&&(this.lastMessage=e,this.error(...arguments),setTimeout((()=>this.lastMessage=null),1e3))},r.Ay.config.productionTip=!1,r.Ay.config.errorHandler=function(e,t,s){if(console.error(e,s),!t||!t.$snotify)return;let r;e instanceof Error?r=e.message:"string"===typeof e&&(r=e),r&&t.$snotify.singleError(r,"Error",f.A.snotifyDefaults)},r.Ay.prototype.$config=f.A,oe)r.Ay.filter(le,oe[le]);const de=new r.Ay({store:E,render:e=>e(ae)}).$mount("#app");window.addEventListener("unhandledrejection",(function(e){console.warn(e),("String"===typeof e.reason||e.reason instanceof Error)&&de.$snotify.singleError(e.reason,"Error",f.A.snotifyDefaults),e.preventDefault(),e.stopPropagation()}))},60478:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var r=s(2566),i=s(31572);class a{static isMathProcess(e,t={}){if(!r.A.isObject(e))return!1;let s=Object.values(t);if(s.includes(e.id))return!1;if(!r.A.isObject(e.returns)||!e.returns.schema)return!1;let a=["number","integer","any"],o=new i.ProcessSchema(e.returns.schema);if(!a.includes(o.nativeDataType()))return!1;if(Array.isArray(e.parameters))for(var n in e.parameters){let t=e.parameters[n];if(t.optional)continue;if(!t.schema)return!1;let s=new i.ProcessSchema(t.schema);if(!a.includes(s.nativeDataType()))return!1}return!0}static arrayOf(e){if(e instanceof i.ProcessDataType||(e=new i.ProcessDataType(e)),"array"===e.nativeDataType()&&r.A.isObject(e.schema.items)){let t=new i.ProcessDataType(e.schema.items);return t.dataType()}}}},2566:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});s(98992),s(72577),s(81454);var r=s(86975),i=s(73902),a=s(95353),o=s(58597),n=s(19306);class c extends r.A{static axios(){return i.OpenEO.Environment.axios}static saveToFile(e,t){return i.OpenEO.Environment.saveToFile(e,t)}static getPreviewLinkFromSTAC(e){if(c.isObject(e)&&Array.isArray(e.links)){let t=e.links.find((e=>c.isObject(e)&&"string"===typeof e.rel&&n.A.supportedMapServices.includes(e.rel.toLowerCase())));if(t)return t}return null}static isMapServiceSupported(e){return"string"===typeof e&&n.A.supportedMapServices.includes(e.toLowerCase())}static parseNodata(e){return Array.isArray(e)?e.map((e=>c.parseNodata(e))):"string"===typeof e&&"nan"===e.toLowerCase()?Number.NaN:e}static isActiveJobStatusCode(e){if("string"!==typeof e)return null;switch(e.toLowerCase()){case"running":case"queued":return!0;default:return!1}}static exception(e,t,s){console.error(t);var r=[],i=null,a=s;c.isObject(t)&&"string"===typeof t.message?(i=t.code>0?"Error #"+t.code:s,a=t.message,r.push({text:"Show Details",action:()=>e.$root.$emit("showError",t)})):"string"===typeof t&&(a=t,i=s),r.push({text:"Copy",action:t=>{let s=e.$clipboard(a),r=t.config.buttons.find((e=>"Copy"===e.text));r&&(r.text=s?"✔️ Copied":"❌ Failed")}});var o={buttons:r};e.$snotify.singleError(a,i,Object.assign({},e.$config.snotifyDefaults,o))}static error(e,t,s=null){e.$snotify.singleError(t,s,e.$config.snotifyDefaults)}static warn(e,t,s=null){e.$snotify.warning(t,s,e.$config.snotifyDefaults)}static info(e,t,s=null){e.$snotify.info(t,s,e.$config.snotifyDefaults)}static ok(e,t,s=null){e.$snotify.success(t,s,e.$config.snotifyDefaults)}static confirm(e,t,s=[]){var r={buttons:s};e.$snotify.confirm(t,null,Object.assign({},e.$config.snotifyDefaults,r))}static isChildOfModal(e){return e.$parent&&"Modal"==e.$parent.$options.name}static getFileNameFromURL(e){return e=e.substring(0,-1==e.indexOf("#")?e.length:e.indexOf("#")),e=e.substring(0,-1==e.indexOf("?")?e.length:e.indexOf("?")),e=e.substring(e.lastIndexOf("/")+1,e.length),e}static makeFileName(e,t){if(e.includes(".")||"string"!==typeof t)return e;if(!t.includes("/"))return e+"."+t;let s=null;try{let e=o.parse(t);switch(e.type.toLowerCase()){case"application/json":case"application/zip":case"image/png":case"image/jpg":case"image/jpeg":case"image/gif":case"image/tiff":case"text/csv":case"text/html":s=t.split("/")[1];break;case"text/plain":s="txt";break;case"application/netcdf":case"application/x-netcdf":s="nc";break}}catch(r){}return null!==s?e+"."+s:e}static replaceParam(e,t,s){var r=new URL(e),i=new URLSearchParams(r.search);return i.set(t,s),r.search=i.toString(),r.toString()}static paramsForPrefix(e,t="~"){e+=t;const s=new URLSearchParams(window.location.search);let r={};for(let[i,a]of s)i.startsWith(e)&&(r[i.substring(e.length)]=a);return r}static param(e){const t=new URLSearchParams(window.location.search);if(t.has(e))return t.get(e)}static isBboxInWebMercator(e){if(!e)return null;Array.isArray(e)||(e=[e]);let t={south:-85.06,north:85.06};return!e.find((e=>e.southt.north))}static extentToBBox(e){if(!Array.isArray(e))return null;var t=e.length>=6;let s={west:e[0],east:e[t?3:2],south:e[1],north:e[t?4:3]};return t&&(s.base=e[2],s.height=e[5]),s}static sortById(e,t){return r.A.compareStringCaseInsensitive(e.id,t.id)}static range(e,t){return te+s))}static newArray(e,t=0){return e<1?[]:Array.from({length:e},(()=>t))}static fitArray(e,t,s=0){return t<1?[]:t>e.length?e.concat(c.newArray(t-e.length,s)):tt[r].toUpperCase())return 1;if(e[r].toUpperCase()t.length?1:0}static getUniqueId(){return Math.random().toString(36).substr(2,9)}static formatIdOrTitle(e){return"string"!==typeof e?e:e.startsWith("#")?`${e}`:"Unnamed"===e?`${e}`:e}static getResourceTitle(e,t=!1){let s,r=c.isObject(e);if("string"===typeof e)s=e;else if(e instanceof i.UserProcess)s=e.id;else if(e instanceof i.UserFile)s=e.path;else if(r&&"string"===typeof e.stac_version)s=e.id;else if(r&&e.title)s=e.title;else if(r&&e.id){let t=new String(e.id);s=t.length>10?e.id.substr(0,5)+"…"+e.id.substr(-5):e.id,s="#"+s}else s="Unnamed";if(t){let a;"string"===typeof t?a=t:e instanceof i.Job?a="Job":e instanceof i.Service?a="Service":e instanceof i.UserProcess?a="Process":e instanceof i.UserFile?a="File":r&&"string"===typeof e.stac_version&&"Collection"===e.type&&(a=e.type),a&&(s=`${s} (${a})`)}return s}static resolveJsonRefs(e){var t=s=>{if(!s||"object"!==typeof s)return s;for(var r in s){var i=s[r];if(c.isObject(i)&&"string"===typeof i.$ref&&i.$ref.match(/^#(\/[^\/]+)+$/i)){var a=i.$ref.split("/").slice(1),o=e;while(a.length){let e=a.shift();if(o=o[e],"undefined"===typeof o)break}s[r]=o}else s[r]=t(i)}return s};return t(e)}static extractUDPParams(e){const t=e.indexOf("@");if(t<0)return[e,void 0];{const s=e.substring(0,t),r=e.substring(t+1);return[s,r]}}static getProcessingExpression(e){let t="processing:expression";if(!c.isObject(e)||!e[t])return null;let s=e[t];if(Array.isArray(s)){if(!(s.length>0))return null;s=s[0]}return c.isObject(s)&&"openeo"===s.format&&c.isObject(s.expression)?s.expression:null}static confirmOpenAll(e){return confirm(`You are about to open ${e.length} individual files / tabs, which could slow down the web browser. Are you sure you want to open all of them?`)}}c.mapState=a.aH,c.mapGetters=a.L8,c.mapMutations=a.PY,c.mapActions=a.i0;const l=c},85525:e=>{"use strict";if("undefined"===typeof L){var t=new Error("Cannot find module 'L'");throw t.code="MODULE_NOT_FOUND",t}e.exports=L},65123:()=>{},28625:()=>{},56504:()=>{},6580:()=>{},42634:()=>{},15340:()=>{},79838:()=>{},8330:e=>{"use strict";e.exports=JSON.parse('{"name":"@openeo/web-editor","version":"0.14.0-rc.2","apiVersions":["1.0.0-rc.2","1.0.0","1.0.1","1.1.0","1.2.0"],"author":"openEO Consortium","contributors":[{"name":"Matthias Mohr"},{"name":"Gustav Jv Rensburg"},{"name":"Miha Kadunc"},{"name":"Christoph Friedrich"},{"name":"Sofian Slimani"}],"description":"An interactive and easy to use web-based editor for the OpenEO API.","license":"Apache-2.0","homepage":"http://openeo.org","bugs":{"url":"https://github.com/Open-EO/openeo-web-editor/issues"},"repository":{"type":"git","url":"https://github.com/Open-EO/openeo-web-editor.git"},"funding":{"type":"github","url":"https://github.com/sponsors/m-mohr"},"scripts":{"build:database":"node src/build-database.js","start":"npm run build:database && npx vue-cli-service serve","build":"npm run build:database && npx vue-cli-service build --report"},"dependencies":{"@kirtandesai/ol-geocoder":"^5.0.6","@musement/iso-duration":"^1.0.0","@openeo/js-client":"^2.7.0","@openeo/js-commons":"^1.5.0","@openeo/js-processgraphs":"^1.4.1","@openeo/vue-components":"^2.18.3","@radiantearth/stac-fields":"^1.5.0-beta.2","@radiantearth/stac-migrate":"^2.0.0-beta.1","@tmcw/togeojson":"^5.5.0","ajv":"^6.12.6","axios":"^1.0.0","chart.js":"^3.7.1","chartjs-adapter-luxon":"^1.1.0","codemirror":"^5.58.2","content-type":"^1.0.4","core-js":"^3.7.0","jsonlint-mod":"^1.7.6","luxon":"^2.4.0","node-polyfill-webpack-plugin":"^4.0.0","ol":"^9.2.0","ol-ext":"^4.0.21","proj4":"^2.7.5","splitpanes":"^2.3.6","v-clipboard":"^2.2.3","vue":"^2.7.0","vue-chartjs":"^4.0.5","vue-multiselect":"^2.1.6","vue-snotify":"^3.2.1","vue-tour":"^2.0.0","vue2-datepicker":"^3.9.0","vuedraggable":"^2.24.3","vuex":"^3.5.1"},"devDependencies":{"@vue/cli-plugin-babel":"~5.0.8","@vue/cli-service":"~5.0.8","epsg-index":"^1.0.0","sass":"^1.35.2","sass-loader":"^10.2.0"},"browserslist":["> 2%","not ie > 0"]}')}},t={};function s(r){var i=t[r];if(void 0!==i)return i.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(a.exports,a,a.exports,s),a.loaded=!0,a.exports}s.m=e,(()=>{var e=[];s.O=(t,r,i,a)=>{if(!r){var o=1/0;for(d=0;d=a)&&Object.keys(s.O).every((e=>s.O[e](r[c])))?r.splice(c--,1):(n=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,i,a]}})(),(()=>{s.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;return s.d(t,{a:t}),t}})(),(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;s.t=function(r,i){if(1&i&&(r=this(r)),8&i)return r;if("object"===typeof r&&r){if(4&i&&r.__esModule)return r;if(16&i&&"function"===typeof r.then)return r}var a=Object.create(null);s.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var n=2&i&&r;"object"==typeof n&&!~e.indexOf(n);n=t(n))Object.getOwnPropertyNames(n).forEach((e=>o[e]=()=>r[e]));return o["default"]=()=>r,s.d(a,o),a}})(),(()=>{s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce(((t,r)=>(s.f[r](e,t),t)),[]))})(),(()=>{s.u=e=>"js/"+e+"."+{424:"1e8cc4a5",434:"3db284dc",510:"5a6e3195",552:"03d86df0",600:"03d27645",768:"e71c0931",847:"e24b2127",887:"10ec50ff",897:"896d6d76",1026:"cb48ffc0",1030:"040e5eea",1160:"f8da4afe",1189:"a32f94fa",1203:"f48ebf4f",1237:"b0e48530",1279:"8878690a",1323:"c2b88a54",1358:"4dae7370",1485:"fbaeda97",1533:"2170945e",1694:"90f8f8e9",1765:"4f30e3e9",2053:"8f3b63df",2116:"d2482968",2195:"c25082b0",2263:"c2d4312b",2327:"6048d1aa",2365:"674df960",2388:"1f1f942e",2559:"06b84f86",2604:"9be79866",2668:"5aac89cc",2764:"34f8c39a",2810:"e968ed13",2855:"2da0a86a",2869:"122b65e1",2919:"5a7da297",3165:"76bb6a25",3166:"067ac4f1",3221:"a34a4762",3249:"8768e225",3271:"5a5d98ba",3291:"a294dd66",3298:"57f5c4ef",3383:"d94b2f5f",3504:"22567424",3549:"212045fa",3592:"6df6431f",3800:"4319672c",3876:"50abede2",4011:"7c8bfd07",4016:"7fd9cf7f",4054:"e7b8b9c7",4066:"8cdb91a9",4111:"ce83ebbc",4120:"c763dc51",4152:"62572df3",4279:"b012468e",4285:"dac135b5",4375:"13fc5959",4387:"6a9d95fe",4389:"a0cc26a8",4394:"d94fc855",4432:"d3d8c74c",4475:"2d81f41f",4477:"accede65",4625:"fdcb0b05",4638:"086ea810",4710:"b471ae93",4818:"544d77b8",5121:"3d0716e1",5213:"f5f2cae9",5237:"8caff225",5262:"d2b1dab9",5601:"4ed36f04",5624:"56a54c83",5630:"6c8fe1c8",5640:"f63e0ac2",5677:"32e52a2e",5742:"6ee57240",5771:"e0cf67f9",5865:"ba589820",5981:"bde59e8d",5983:"b8efedd3",6036:"ac16f8d5",6126:"c5d874fe",6192:"a7d24100",6238:"6cb2e842",6457:"0b71882d",6568:"66ede871",6617:"548c5e31",6660:"5db6ed47",6689:"0404eca3",6709:"9bbce368",6846:"d8f3c03b",6885:"e5fa8c84",7123:"e7255bc1",7186:"f9d85ef1",7237:"c8c92bc7",7261:"cec7eb87",7336:"f9de7ab6",7349:"58ee9351",7745:"43fb5188",7759:"f248fb9a",8053:"d1bcf10d",8080:"2fc3db24",8141:"f85ed200",8152:"02c6d375",8324:"9f2b9735",8354:"9d3cdc3f",8363:"10f92a37",8370:"006d7cf8",8396:"6387c5ef",8580:"f55cb38d",8645:"257fe523",9047:"9e2b4217",9066:"429507d1",9201:"16e2764c",9237:"b0457669",9238:"1ce8f980",9403:"36ca6740",9409:"9dc12ac6",9546:"03a9f682",9873:"0533e950",9882:"0cfed7b6",9989:"fe90c1ea"}[e]+".js"})(),(()=>{s.miniCssF=e=>"css/"+e+"."+{434:"48f88ab7",552:"b9ad6d11",768:"9a253916",847:"5e455ed7",887:"8c892279",897:"9a7c4e56",1026:"ee56a981",1194:"5e953040",1203:"1291b8f6",1279:"6559def7",1485:"e0b5a390",1533:"ee70e6ee",1694:"cb3d0aea",1765:"df87f4cd",2053:"591e8359",2116:"a263a3ee",2327:"43969cb2",2388:"16242cfc",2604:"68de8223",2668:"28ec2f2d",2722:"13fcb001",2810:"bb165d6b",2855:"9be81686",2869:"f3cd8e29",3165:"cedc5992",3166:"2f6e3d85",3221:"f6c5b858",3249:"b1500b27",3271:"6244371c",3298:"be08d5c1",3383:"70bcc47a",3504:"bb165d6b",3549:"a1ec7ab5",3592:"2a21fdfd",4016:"209ecd26",4066:"c792bb6a",4111:"8dfcdf6d",4120:"1490740e",4152:"6d1bdf91",4279:"a22f3053",4285:"b812a1c3",4375:"8cbfaf98",4387:"4f91105e",4389:"cd27822f",4475:"3532f099",4710:"db40c9d8",4741:"f6d430d3",4818:"a7c04fab",5213:"84e10245",5630:"b1500b27",5677:"35500620",5742:"d62d95a4",5771:"f5601ccf",5865:"951674bc",5981:"662a7223",6036:"84e10245",6126:"3a51c14b",6192:"5fb184c3",6238:"c4731012",6660:"a22f3053",6689:"b4a63b64",6709:"def3a5a5",6846:"4e980861",7123:"a8f318bf",7186:"1abe4ef8",7336:"788ebcdc",7745:"70bcc47a",7759:"052469b3",8053:"48f88ab7",8080:"f6d430d3",8141:"f3930676",8152:"281aa3b1",8324:"257d9fa6",8354:"8f8ad761",8370:"f0b49cc1",8396:"a5e993af",8580:"9e19226e",8645:"ee56a981",9047:"13422022",9066:"84e10245",9201:"19b52578",9238:"70bcc47a",9403:"10c1c477",9409:"dd741b46",9873:"bb165d6b"}[e]+".css"})(),(()=>{s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()})(),(()=>{s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{var e={},t="@openeo/web-editor:";s.l=(r,i,a,o)=>{if(e[r])e[r].push(i);else{var n,c;if(void 0!==a)for(var l=document.getElementsByTagName("script"),d=0;d{n.onerror=n.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],n.parentNode&&n.parentNode.removeChild(n),i&&i.forEach((e=>e(s))),t)return t(s)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),c&&document.head.appendChild(n)}}})(),(()=>{s.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),(()=>{s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e)})(),(()=>{s.p="/"})(),(()=>{if("undefined"!==typeof document){var e=(e,t,r,i,a)=>{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",s.nc&&(o.nonce=s.nc);var n=s=>{if(o.onerror=o.onload=null,"load"===s.type)i();else{var r=s&&s.type,n=s&&s.target&&s.target.href||t,c=new Error("Loading CSS chunk "+e+" failed.\n("+r+": "+n+")");c.name="ChunkLoadError",c.code="CSS_CHUNK_LOAD_FAILED",c.type=r,c.request=n,o.parentNode&&o.parentNode.removeChild(o),a(c)}};return o.onerror=o.onload=n,o.href=t,r?r.parentNode.insertBefore(o,r.nextSibling):document.head.appendChild(o),o},t=(e,t)=>{for(var s=document.getElementsByTagName("link"),r=0;rnew Promise(((i,a)=>{var o=s.miniCssF(r),n=s.p+o;if(t(o,n))return i();e(r,n,null,i,a)})),i={3524:0};s.f.miniCss=(e,t)=>{var s={434:1,552:1,768:1,847:1,887:1,897:1,1026:1,1194:1,1203:1,1279:1,1485:1,1533:1,1694:1,1765:1,2053:1,2116:1,2327:1,2388:1,2604:1,2668:1,2722:1,2810:1,2855:1,2869:1,3165:1,3166:1,3221:1,3249:1,3271:1,3298:1,3383:1,3504:1,3549:1,3592:1,4016:1,4066:1,4111:1,4120:1,4152:1,4279:1,4285:1,4375:1,4387:1,4389:1,4475:1,4710:1,4741:1,4818:1,5213:1,5630:1,5677:1,5742:1,5771:1,5865:1,5981:1,6036:1,6126:1,6192:1,6238:1,6660:1,6689:1,6709:1,6846:1,7123:1,7186:1,7336:1,7745:1,7759:1,8053:1,8080:1,8141:1,8152:1,8324:1,8354:1,8370:1,8396:1,8580:1,8645:1,9047:1,9066:1,9201:1,9238:1,9403:1,9409:1,9873:1};i[e]?t.push(i[e]):0!==i[e]&&s[e]&&t.push(i[e]=r(e).then((()=>{i[e]=0}),(t=>{throw delete i[e],t})))}}})(),(()=>{var e={3524:0};s.f.j=(t,r)=>{var i=s.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else if(/^(1194|2722|4741)$/.test(t))e[t]=0;else{var a=new Promise(((s,r)=>i=e[t]=[s,r]));r.push(i[2]=a);var o=s.p+s.u(t),n=new Error,c=r=>{if(s.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;n.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",n.name="ChunkLoadError",n.type=a,n.request=o,i[1](n)}};s.l(o,c,"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,r)=>{var i,a,[o,n,c]=r,l=0;if(o.some((t=>0!==e[t]))){for(i in n)s.o(n,i)&&(s.m[i]=n[i]);if(c)var d=c(s)}for(t&&t(r);ls(15424)));r=s.O(r)})(); +//# sourceMappingURL=app.c3a32488.js.map \ No newline at end of file diff --git a/js/app.7eddb026.js.map b/js/app.c3a32488.js.map similarity index 99% rename from js/app.7eddb026.js.map rename to js/app.c3a32488.js.map index a28587d2..c72a97d8 100644 --- a/js/app.7eddb026.js.map +++ b/js/app.c3a32488.js.map @@ -1 +1 @@ -{"version":3,"file":"js/app.7eddb026.js","mappings":"2DAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,QAAQ,CAAEJ,EAAIK,QAAQC,KAAMJ,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMP,EAAIK,QAAQC,KAAK,IAAMN,EAAIK,QAAQG,eAAeR,EAAIS,KAAKP,EAAG,KAAK,CAACF,EAAIU,GAAGV,EAAIW,GAAGX,EAAIK,QAAQO,SAAS,KAAKV,EAAG,OAAO,CAACE,YAAY,UAAUS,GAAG,CAAC,MAAQb,EAAIc,oBAAoB,CAACd,EAAIU,GAAGV,EAAIW,GAAGX,EAAIe,eAChV,EACIC,EAAkB,G,qBCStB,SACAC,KAAA,OACAC,OAAA,CAAAC,EAAAA,GACAC,IAAAA,GACA,OACAL,QAAAM,EAAAA,QAEA,EACAC,QAAA,CACAR,iBAAAA,GACA,KAAAS,UAAA,oBACA,ICtBmP,I,eCQ/OC,GAAY,OACd,EACAzB,EACAiB,GACA,EACA,KACA,WACA,MAIF,QAAeQ,EAAiB,O,gDCnBhC,SAICC,UAAW,GAGXjB,YAAa,SAEbI,QAAS,aAGTc,WAAW,EAMXC,YAAa,CAAC,KAAM,KACpBC,QAAS,EAGTC,SAAU,6CAGVC,aAAc,GAGdxB,KAAM,aAGNyB,gBAAiB,CAChBC,QAAS,IACTC,eAAgB,GAChBC,cAAe,IACfC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,GAIfC,qBAAsB,CACrB,MACA,QAIDC,iCAAkC,CACjC,cACA,UACA,eACA,sBACA,UAIDC,mCAAoC,CACnC,cACA,UACA,eACA,sBACA,UAIDC,iBAAkB,CACjB,CACCjB,UAAW,kBACXkB,MAAO,2BACPC,YAAa,2UACbC,kBAAmB,CAAC,sBAKtBC,SAAU,CACT,CAECH,MAAO,gBAEPI,IAAK,uDAELC,aAAc,2GAEdC,QAAS,KAKXC,yBAAyB,EAGzBC,kBAAmB,GAGnBC,cAAe,CAAC,EAGhBC,iBAAiB,EAIjBC,oBAAqB,EAGrBC,2BAA2B,EAC3BC,yBAAyB,EAGzBC,UAAW,G,gDC7GZ,SACCpC,IAAAA,GACC,MAAO,CACNqC,kBAAmB,CAAC,EAEtB,EACAC,aAAAA,GACC,IAAK,IAAIC,KAAa1D,KAAKwD,kBAC1BxD,KAAK2D,MAAMC,KAAKF,EAAW1D,KAAKwD,kBAAkBE,GAEpD,EACArC,QAAS,CACRwC,WAAAA,CAAYH,GACX,QAAS1D,KAAKwD,kBAAkBE,EACjC,EACAI,MAAAA,CAAOJ,EAAWK,GACjB/D,KAAKgE,SAASN,GACd1D,KAAK2D,MAAMM,IAAIP,EAAWK,GAC1B/D,KAAKwD,kBAAkBE,GAAaK,CACrC,EACAC,QAAAA,CAASN,GACJ1D,KAAK6D,YAAYH,KACpB1D,KAAK2D,MAAMC,KAAKF,EAAW1D,KAAKwD,kBAAkBE,WAC3C1D,KAAKwD,kBAAkBE,GAEhC,EACApC,SAAAA,GACCtB,KAAK2D,MAAMO,SAASC,UACrB,G,0GCrBa,MAAMC,EAEpB,gBAAaC,CAAIlD,GAChB,OAAIA,aAAgBmD,EAAAA,EACZnD,QAGKiD,EAAYG,MAAMpD,EAChC,CAEA,UAAOqD,CAAIC,EAAMC,EAAMC,GACtB,IACCC,EAAAA,EAAMC,KAAKJ,EAAMC,IACjBI,EAAAA,EAAAA,IAASF,EAAAA,GACT,IAAIG,GAAaC,EAAAA,EAAAA,KAAcP,GAQ/B,OAPIQ,MAAMC,QAAQP,KACjBA,GAASQ,EAAAA,EAAAA,iBAAgBR,EAAQ,YAAaI,GAC9CA,EAAWK,UAAUT,IAElBD,EAAKW,SAAS,kBACjBN,EAAWO,SAAU,GAEfP,CACR,CAAE,MAAOQ,GAER,OADAC,QAAQD,MAAMA,GACP,IACR,CACD,CAGA,wBAAaE,CAAYC,GACxB,GAAIC,EAAAA,EAAMC,SAASF,IAASC,EAAAA,EAAMC,SAASF,EAAKG,YAAa,CAC5D,GAAIH,EAAKG,WAAW,aACnB,aAAazB,EAAYC,IAAIqB,EAAKG,WAAW,cAEzC,GAAIH,EAAKG,WAAW,aACxB,OAAOzB,EAAYI,IAAIkB,EAAKI,GAAIJ,EAAKG,WAAW,aAElD,CACA,OAAO,IACR,CAEA,kBAAatB,CAAMwB,GAClB,IAAItB,EAAMqB,EACV,GAAmB,kBAARC,GAAoBA,EAAIC,MAAM,eACxCvB,EAAOsB,EAAIE,cACXH,EAAKC,EAAIG,OAAO,OAEZ,KAAIC,OAAOC,UAAUL,GAKzB,OAAO,KAJPtB,EAAO,QAAQsB,IACfD,EAAKO,OAAON,EAIb,CAGA,IAAIhB,GAAaC,EAAAA,EAAAA,KAAcP,GAC/B,GAAIM,EACH,OAAOA,EAIR,IAAIuB,QAAa,qCACjB,OAAIR,KAAMQ,EACFlC,EAAYI,IAAIC,EAAM6B,EAAKR,GAAI,GAAIQ,EAAKR,GAAI,IAI7C,IACR,E,uEC3ED,MAAMS,UAAYC,EAAAA,GAEjBC,WAAAA,CAAYC,EAAOC,EAAQ,CAAC,IAAK,MAChCC,MAAMF,EAAO,cAAe,YAC5B1G,KAAK2G,MAAQA,CACd,CAEA,eAAME,CAAU1F,GACf,GAAoB,kBAATA,EAAmB,CAE7B,IAAI2F,EAAQ9G,KAAK+G,SAAS5F,EAAK6F,QAE/B,OAAOF,EAAMG,KAAIC,GAAOA,EAAID,KAAIE,IAC/BA,EAAMA,EAAIH,OACS,IAAfG,EAAIC,OACAC,IAEEC,MAAMH,GAIRA,EAHAI,WAAWJ,OAMrB,CACA,OAAOhG,CACR,CAGA4F,QAAAA,CAASS,GAKR,IAJA,IAAIC,EAAM,GACNC,GAAQ,EAGHR,EAAM,EAAGC,EAAM,EAAGQ,EAAI,EAAGA,EAAIH,EAAIJ,OAAQO,IAAK,CACtD,IAAIC,EAAKJ,EAAIG,GAAIE,EAAKL,EAAIG,EAAE,GAC5BF,EAAIP,GAAOO,EAAIP,IAAQ,GACvBO,EAAIP,GAAKC,GAAOM,EAAIP,GAAKC,IAAQ,GAKvB,KAANS,GAAaF,GAAe,KAANG,GACzBJ,EAAIP,GAAKC,IAAQS,IAAMD,GAKd,KAANC,GAMA5H,KAAK2G,MAAMtB,SAASuC,IAAQF,EAOtB,MAANE,GAAoB,MAANC,GAAeH,GAOvB,MAANE,GAAeF,KAIT,MAANE,GAAeF,GAMnBD,EAAIP,GAAKC,IAAQS,KATdV,EAAKC,EAAM,MAPXD,EAAKC,EAAM,IAAKQ,KAPhBR,EANFO,GAASA,CA8BX,CACA,OAAOD,CACR,EAID,S,gFCrFO,MAAMK,EAEZrB,WAAAA,CAAYC,GACXqB,OAAOC,OAAOhI,KAAM0G,GACpB1G,KAAKiI,QAAU,IAChB,CAEAC,UAAAA,CAAWD,GACVjI,KAAKiI,QAAUA,CAChB,CAEAE,UAAAA,GACC,OAAOnI,KAAKiI,OACb,CAEAG,MAAAA,GACC,OAAOpI,KAAKqI,IACb,CAEAC,QAAAA,GACC,OAAO,CACR,CAEAC,QAAAA,GACC,OAAO,CACR,CAEAC,QAAAA,CAASC,EAAW,MACnB,IAAIC,EAAWC,SAASC,cAAc,KACtCF,EAASG,MAAMC,QAAU,OACzBJ,EAASL,KAAOrI,KAAKoI,SACrBM,EAASK,aAAa,WAAYN,GAAuB9C,EAAAA,EAAMqD,aAAa,SAAUhJ,KAAKiJ,OAC3FP,EAASK,aAAa,SAAU,UAChCJ,SAASO,KAAKC,YAAYT,GAC1BA,EAASU,QACTT,SAASO,KAAKG,YAAYX,EAC3B,CAEA,cAAMY,CAASC,GACTvJ,KAAKwJ,SACTxJ,KAAKmB,WAAanB,KAAKyJ,UAAUF,GACjCvJ,KAAKwJ,QAAS,EAEhB,CAEAE,OAAAA,GACC,IAAK1J,KAAKwJ,OACT,MAAM,IAAIG,MAAM,8BAEjB,OAAO3J,KAAKmB,IACb,CAEA,eAAMsI,CAAUF,GACf,IAAIK,EACA/G,EAAM7C,KAAKoI,SACf,GAAIvF,EAAIgH,WAAW,SAAU,CAC5B,IAAIC,QAAiBC,MAAMlH,GAC3B+G,QAAaE,EAASF,MACvB,KACK,CACJ,IAAII,GAAO,EACX,IACC,IAAIC,EAAS,IAAIC,IAAIX,EAAWnB,UAC5B+B,EAAa,IAAID,IAAIrH,GACzBmH,EAAOC,EAAOG,SAAWD,EAAWC,MACrC,CAAE,MAAO7E,GAAQ,CAEjBqE,QAAaL,EAAWf,SAAS3F,EAAKmH,EACvC,CACA,IAAIK,EAAU,IAAIC,SAAQ,CAACC,EAASC,KACnC,IAAIC,EAAS,IAAIC,WACjBD,EAAOE,OAASC,GAASL,EAAQK,EAAMC,OAAOC,QAC9CL,EAAOM,QAAUP,EACbxK,KAAKuI,WACRkC,EAAOO,mBAAmBpB,GAG1Ba,EAAOQ,WAAWrB,EACnB,IAEGzI,QAAakJ,EACjB,aAAarK,KAAK6G,UAAU1F,EAC7B,CAEA,eAAM0F,CAAU1F,GACf,OAAOA,CACR,EAIM,MAAMqF,UAAwBsB,EAEpCrB,WAAAA,CAAYC,EAAOnF,EAAY,KAAM2J,EAAO,cAAeC,EAAQ,CAAC,EAAGC,EAAS,CAAC,GAChFxE,MAAMF,GACN1G,KAAKwJ,QAAS,EACdxJ,KAAKuB,UAAYA,EACjBvB,KAAKmL,MAAQA,EACRnL,KAAKmL,MAAMhK,OACfnB,KAAKmL,MAAMhK,KAAOnB,MAEnBA,KAAKkL,KAAOA,EACZlL,KAAKoL,OAASA,CACf,CAEA7C,QAAAA,GACC,OAAO,CACR,EAIM,MAAM8C,UAA0BvD,EAEtCrB,WAAAA,CAAYC,GACXE,MAAMF,EACP,E,0JC1GD,MAAM4E,EAAW,qBACXC,EAAW,qBACXC,EAAY,cAElB,MAAMC,UAAgBjF,EAAAA,GAErBC,WAAAA,CAAYC,EAAOhB,GAClBkB,MAAMF,EAAO,YAAa,SAAU,CAAEgF,iBAAiB,IACvD1L,KAAK2L,OAAS,GACd3L,KAAK4L,QAAU,GACf5L,KAAK6L,IAAM,KACX7L,KAAK+E,WAAa,KAClB/E,KAAK2E,OAAS,KACd3E,KAAK8L,cAAe,EACpB9L,KAAK0F,KAAOA,CACb,CAEA6C,QAAAA,GACC,OAAO,CACR,CAEAD,QAAAA,GACC,OAAO,CACR,CAEA,cAAMgB,CAASC,GAKd,OAJKvJ,KAAKwJ,eACHxJ,KAAK+L,gBACX/L,KAAKwJ,QAAS,GAERxJ,IACR,CAEA0J,OAAAA,GACC,OAAO1J,IACR,CAEA,mBAAM+L,GACL,IAoCIC,EAgDAvH,EApFAwH,EAAgBjM,KAAK0F,OAAS1F,KAAK0F,KAAKwG,UAAYlM,KAAK0F,KAAKf,QAGlE3E,KAAK+E,iBAAmBX,EAAAA,EAAYqB,YAAYzF,KAAK0F,MAGjDT,MAAMC,QAAQlF,KAAK,iBAAmBA,KAAK,eAAeoH,OAAS,IACtEpH,KAAK4L,QAAUjG,EAAAA,EAAMwG,YAAYnM,KAAK,iBAInCiF,MAAMC,QAAQlF,KAAKoM,QAAUpM,KAAKoM,MAAMhF,OAAS,GACpDpH,KAAKoM,MAAMC,SAAQ,CAACC,EAAMC,KAErBD,EAAKtL,MACRhB,KAAKwM,YAAYD,EAAG,CACnBvL,KAAMsL,EAAKtL,OAKT2E,EAAAA,EAAMC,SAAS0G,EAAKG,aACvBzM,KAAKwM,YAAYD,EAAG,CACnBG,IAAKJ,EAAKG,WAAWE,QACrBC,IAAKN,EAAKG,WAAWI,UAKK,IAAxB7M,KAAK4L,QAAQxE,QAAuC,qBAAhBkF,EAAKQ,QAC5C9M,KAAK4L,QAAQmB,KAAKpH,EAAAA,EAAMwG,YAAYG,EAAKQ,QAC1C,IAODd,EADGhM,KAAKgN,gBACKC,EAAAA,EAAAA,IAAajN,KAAKgN,iBAGlBE,EAAAA,EAAAA,IAAYlN,KAAKoI,UAE/BpI,KAAK6L,UAAYG,EAAKmB,WAGtB,IAAK,IAAIZ,EAAI,EAAGA,EAAIvM,KAAK6L,IAAIuB,qBAAsBb,IAAK,CACvD,IAAIpL,EAAO,CAAC,EAGZ,IACC,IAAIkM,EAAQrN,KAAK6L,IAAIyB,kBAAkBf,GAClCpG,OAAOoH,SAASvN,KAAK2L,OAAOY,GAAGG,OACnCvL,EAAKuL,IAAM1M,KAAKwN,kBAAkBH,IAE9BlH,OAAOoH,SAASvN,KAAK2L,OAAOY,GAAGK,OACnCzL,EAAKyL,IAAM5M,KAAKyN,kBAAkBJ,GAEpC,CAAE,MAAO9H,GAAQ,CAGjB,IAAI+G,EAAOtM,KAAK6L,IAAI6B,gBAAgBnB,GAChC5G,EAAAA,EAAMC,SAAS0G,KACdhB,KAAYgB,IACfnL,EAAKuL,IAAMnF,WAAW+E,EAAKhB,KAExBC,KAAYe,IACfnL,EAAKyL,IAAMrF,WAAW+E,EAAKf,KAExBC,KAAac,IAChBnL,EAAKH,KAAOsL,EAAKd,KAInBxL,KAAKwM,YAAYD,EAAGpL,GAGpB,IAAI2L,EAAS9M,KAAK6L,IAAI8B,gBACM,IAAxB3N,KAAK4L,QAAQxE,QAA2B,OAAX0F,GAChC9M,KAAK4L,QAAQmB,KAAKD,EAEpB,CAIA,IAAK9M,KAAK+E,YAAc/E,KAAK6L,IAAI+B,QAAS,CACzC,IAAI,sBAAEC,EAAqB,qBAAEC,EAAoB,sBAAEC,EAAqB,uBAAEC,GAA2BhO,KAAK6L,IAAI+B,QAU9G,GATIC,IACHpJ,EAAO,QAAUoJ,EACjB7N,KAAK+E,iBAAmBX,EAAAA,EAAYC,IAAII,KAEpCzE,KAAK+E,YAAc+I,IACvBrJ,EAAO,QAAUqJ,EACjB9N,KAAK+E,iBAAmBX,EAAAA,EAAYC,IAAII,KAGpCzE,KAAK+E,YAAcN,EAAM,CAC7B,MAAMwJ,EAASF,IAAyBG,EAAAA,EAAAA,GAAcH,IAA4BC,IAA0BE,EAAAA,EAAAA,GAAcF,GACtHC,IACHjO,KAAK+E,WAAa,IAAIT,EAAAA,EAAW,CAAEG,OAAMwJ,UAE3C,CACD,CAGA,IAAKhC,EACJ,IACC,IAAIkC,EAAOnO,KAAK6L,IAAIuC,iBACpBpO,KAAK2E,QAAS0J,EAAAA,EAAAA,cAAaF,EAAMnO,KAAK+E,WACvC,CAAE,MAAOQ,GACRC,QAAQ8I,KAAK/I,EACd,CAID,GAAIvF,KAAK6L,IAAI0C,cAAcC,SAAU,CACpC,MAAMvH,EAAMhC,MAAMwJ,KAAKzO,KAAK6L,IAAI0C,cAAcC,UACxCE,EAAczH,EAAIG,OAAS,EAC3BuH,EAAa1H,EAAIG,OAAS,EAAI,EACpCpH,KAAK4O,SAAW,GAChB,IAAK,IAAIrC,EAAI,EAAGA,EAAImC,EAAanC,IAChCvM,KAAK4O,SAAS7B,KAAK,CAClB8B,KAAKC,MAAM7H,EAAIsF,GAAK,MAAQ,KAC5BsC,KAAKC,MAAM7H,EAAIsF,EAAImC,GAAe,MAAQ,KAC1CG,KAAKC,MAAM7H,EAAIsF,EAAIoC,GAAc,MAAQ,KACzC3O,KAAK4L,QAAQvG,SAASkH,GAAK,EAAI,GAGlC,CAGA,OAAQvM,KAAK6L,IAAI0C,cAAcQ,2BAC9B,KAAKC,EAAAA,GAA6BC,KAClC,KAAKD,EAAAA,GAA6BE,MAClC,KAAKF,EAAAA,GAA6BG,OACjCnP,KAAK8L,cAAe,EACpB,MACD,QAGC9L,KAAK8L,cAAe,EAEvB,CAEAU,WAAAA,CAAYD,EAAGpL,GACVnB,KAAK2L,OAAOY,GACfxE,OAAOC,OAAOhI,KAAK2L,OAAOY,GAAIpL,GAG9BnB,KAAK2L,OAAOoB,KAAKhF,OAAOC,OAAO,CAAElC,GAAIyG,EAAI,GAAKpL,GAEhD,CAEA6L,OAAAA,GACC,OAAOhN,KAAK4J,IACb,CAEAwF,SAAAA,GACC,OAAOpP,KAAK4L,OACb,CAEAzD,UAAAA,GACC,OAAOnI,KAAK0F,IACb,CAEA2J,QAAAA,GACC,OAAOrP,KAAK2L,MACb,CAEA3G,aAAAA,GACC,OAAOhF,KAAK+E,UACb,CAEAuK,SAAAA,GACC,OAAOtP,KAAK2E,MACb,CAEA4K,WAAAA,GACC,OAAOvP,KAAK4O,QACb,CAEApB,iBAAAA,CAAkB1G,GACjB,OAAIA,aAAiB0I,WACZ,IAEL1I,aAAiB2I,YACZ,MAEL3I,aAAiB4I,YACZ,WAEL5I,aAAiB6I,aACb,OAED,CACR,CAEAlC,iBAAAA,CAAkB3G,GACjB,OAAIA,aAAiB0I,UACb,IAEJ1I,aAAiB8I,YAGjB9I,aAAiB+I,kBAFb,IAKJ/I,aAAiB2I,WACb,MAEJ3I,aAAiBgJ,YACb,MAEJhJ,aAAiB4I,WACb,WAEJ5I,aAAiBiJ,YACb,WAEJjJ,aAAiB6I,aACb,MAED,GACR,EAID,S,0FChRA,MAAMK,UAAcxJ,EAAAA,GAEnBC,WAAAA,CAAYC,EAAOnF,EAAY,cAC9BqF,MAAMF,EAAOnF,GAEbvB,KAAKiQ,WAAY,CAElB,CAEA,eAAMpJ,CAAU1F,GACf,GAAoB,kBAATA,EACV,IACCA,EAAO+O,KAAKC,MAAMhP,EACnB,CACA,MAAOoE,GACNC,QAAQ4K,IAAI7K,EACb,CAWD,OATII,EAAAA,EAAM0K,cAAclP,IACvBnB,KAAKiQ,WAAY,EACjBjQ,KAAKuB,UAAY,YACjBvB,KAAKkL,KAAO,UAEJlL,KAAKsQ,QAAQnP,KACrBnB,KAAKuB,UAAY,cACjBvB,KAAKkL,KAAO,YAEN/J,CACR,CAEAmP,OAAAA,CAAQnP,GACP,IAAKA,GAAwB,kBAATA,GAA0C,IAArBwE,EAAAA,EAAM4K,KAAKpP,GACnD,OAAO,EAER,IAAIqP,EAASzI,OAAOyI,OAAOrP,GACvBsP,EAAO1I,OAAO0I,KAAKD,EAAO,IAC9B,OAAQA,EAAOE,MAAKxJ,IAAQA,GAAsB,kBAARA,IAAqBvB,EAAAA,EAAMgL,OAAO5I,OAAO0I,KAAKvJ,GAAMuJ,IAC/F,EAGD,S,oLCtCA,SACCG,cAAe,KACfC,gBAAAA,GAIC,OAHK7Q,KAAK4Q,gBACT5Q,KAAK4Q,cAAgB5Q,KAAK8Q,MAAMC,OAAOC,EAAAA,EAAQC,gBAEzCjR,KAAK4Q,aACb,EACAM,MAAAA,CAAOC,GAIN,GAHIA,aAAmBC,EAAAA,eACtBD,EAAUA,EAAQA,UAEdxL,EAAAA,EAAMC,SAASuL,IAAkD,IAAtCxL,EAAAA,EAAM4K,KAAKY,EAAQE,eAClD,OAAO,KAGR,IAAIC,EAAiBtR,KAAK6Q,mBAAmB5J,KAAIsK,GAAKA,EAAEzL,KACtD0L,OAAOzJ,OAAOyI,OAAOiB,EAAAA,QAAQC,kBAC7BF,OAAOzJ,OAAO0I,KAAKgB,EAAAA,QAAQE,uBAC3BH,OAAO,CAAC,kBACNI,EAAmB7J,OAAOyI,OAAOW,EAAQE,eAAeQ,MAAKC,IAASR,EAAejM,SAASyM,EAAKC,cACvG,MAAoC,qBAArBH,CAChB,G,8CCzBD,MAAMI,UAAqBxL,EAAAA,GAE1BC,WAAAA,CAAYC,GACXE,MAAMF,EAAO,cAAe,WAC7B,CAEA6B,QAAAA,GACC,OAAO,CACR,CAEA,eAAMkB,GACL,OAAO,IAAIa,SAAQ,CAACC,EAASC,KAC5B,IAAIqB,EAAM,IAAIoG,MACdpG,EAAIqG,YAAc,YAClBrG,EAAId,QAAU,IAAMP,EAAO,IAAIb,MAAM,6BACrCkC,EAAIlB,OAAS,IAAMJ,EAAQsB,GAC3BA,EAAIsG,cAAgB,OACpBtG,EAAIuG,SAAW,OACfvG,EAAIwG,IAAMrS,KAAKoI,QAAQ,GAEzB,EAID,U,qCCxBA,MAAMkK,UAAmB9L,EAAAA,GAExBC,WAAAA,CAAYC,GACXE,MAAMF,EAAO,aACd,EAID,UCRA,MAAM6L,UAAYhM,EAAAA,EAEjBE,WAAAA,CAAYC,GACXE,MAAMF,EAAO,CAAC,MACf,EAID,UCAe,MAAM8L,EAEpB/L,WAAAA,GACA,CAEAgM,mBAAAA,CAAoB/M,EAAMgN,EAAW,MACpC,IAAIC,EAAQ5K,OAAOyI,OAAO9K,EAAKkN,QAC7B7B,QAAOrK,IAAUzB,MAAMC,QAAQwB,EAAMmM,SAAWnM,EAAMmM,MAAMxN,SAAS,cACrE4B,KAAIP,GAAS1G,KAAK8S,oBAAoBpM,EAAOhB,KAI/C,OAHIgN,GACHC,EAAMtG,SAAQ0G,GAAQA,EAAK7K,WAAWwK,KAEhCC,CACR,CAEAK,mBAAAA,CAAoB7R,GACnB,KAAMA,aAAgB8R,MACrB,MAAM,IAAItJ,MAAM,kCAEjB,OAAO3J,KAAKyS,oBAAoB,CAC/BS,aAAc,QACdjK,KAAM,UACNiD,SAAU,KACVrG,WAAY,CAAC,EACbsN,MAAO,GACPP,OAAQ,CACP9H,OAAQ,CACPzC,KAAM6B,IAAIkJ,gBAAgBjS,GAC1ByI,KAAMzI,EACN8H,KAAM9H,EAAK8H,QAIf,CAEA6J,mBAAAA,CAAoBpM,EAAOhB,GAC1B,IAEC,GAA0B,kBAAfgB,EAAMuC,KAAmB,CACnC,IAAIoK,EAAOC,EAAAA,MAAkB5M,EAAMuC,KAAKsK,eACxC,OAAOF,EAAKpK,MACX,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,YACL,IAAK,aACJ,OAAO,IAAI+I,EAAatL,GACzB,IAAK,mBACL,IAAK,YACL,IAAK,uBACJ,OAAO,IAAIsJ,EAAAA,EAAMtJ,GAClB,IAAK,aACJ,OAAO,IAAI4L,EAAW5L,GACvB,IAAK,WACJ,OAAO,IAAIH,EAAAA,EAAIG,GAChB,IAAK,4BACJ,OAAO,IAAI6L,EAAI7L,GAChB,IAAK,aACJ,OAAO,IAAI+E,EAAAA,EAAQ/E,EAAOhB,GAE7B,CAGA,GAA0B,kBAAfgB,EAAM2B,KAAmB,CACnC,IAAImL,EAAY9M,EAAM2B,KAAKoL,MAAM,QAAQ,GAAGA,MAAM,KAAKC,MAAM1M,OAAOuM,cACpE,OAAOC,GACN,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,OACJ,OAAO,IAAIxB,EAAatL,GACzB,IAAK,OACL,IAAK,UACJ,OAAO,IAAIsJ,EAAAA,EAAMtJ,GAClB,IAAK,MACJ,OAAO,IAAI4L,EAAW5L,GACvB,IAAK,MACJ,OAAO,IAAIH,EAAAA,EAAIG,GAChB,IAAK,MACJ,OAAO,IAAI6L,EAAI7L,GAChB,IAAK,MACL,IAAK,OACJ,OAAO,IAAI+E,EAAAA,EAAQ/E,EAAOhB,GAE7B,CAED,CAAE,MAAOH,GACRC,QAAQ4K,IAAI7K,EACb,CAEA,OAAO,IAAI8F,EAAAA,GAAkB3E,EAC9B,EC/FD,MAAMiN,EAAgB,aAEhBC,EAAkBA,KAChB,CACNC,QAAS,KACTC,cAAe5D,KAAKC,MAAM4D,aAAaC,QAAQL,IAAkB,MACjE1L,QAAS,KACTkJ,QAAS,KACT8C,oBAAqB,GACrBC,oBAAqB,IACrBC,UAAW,GACXC,eAAgB,KAChBC,YAAa,KACbC,WAAY,KACZC,gBAAiB,CAAC,EAClBC,kBAAmB,KACnBC,cAAe,CAAC,EAChBC,SAAU,KACVC,eAAgB,IAAInC,IAItB,GACCoC,YAAY,EACZC,MAAOjB,IACPkB,QAAS,CACRC,WAAYF,GAASlP,EAAAA,EAAMC,SAASiP,EAAM1D,UAAYxL,EAAAA,EAAM4K,KAAKsE,EAAM1D,SAAW,GAAKxL,EAAAA,EAAM4K,KAAKsE,EAAM1D,QAAQE,eAChH2D,oBAAqBA,CAACH,EAAOC,EAASG,EAAWC,IAAgB,IACzD,IAAI5K,SAAQ,CAACC,EAASC,KAC5B,IAAKqK,EAAMH,SAEV,YADAnK,EAAQ,MAGT,MAAM4K,EAAWA,KAChB,OAAON,EAAMH,SAASzL,MACrB,IAAK,aACJ,MAAO,CACN8I,WAAY,kBACZ5N,UAAW+Q,EAAYE,mBAAmBP,EAAMH,SAASvT,KAAK2E,KAEhE,IAAK,UACJ,MAAO,CACNiM,WAAY8C,EAAMH,SAASvT,KAAK2E,GAChCuP,UAAWR,EAAMH,SAASvT,KAAKkU,UAC/BlR,UAAW,CAAC,GAEd,IAAK,MACJ,MAAO,CACN4N,WAAY,UACZ5N,UAAW0Q,EAAMH,SAASvT,MAE5B,IAAK,aACJ,MAAO,CACN4Q,WAAY,cACZ5N,UAAW,CAACmR,OAAQT,EAAMH,SAASvT,KAAKH,KAAMuU,QAAS,CAAC,IAE1D,QACC,OAAO,KACT,EAED,GAAIV,EAAMH,SAASc,QAAS,CAC3B,IAAI1P,EAAK2P,aAAY,KACfZ,EAAMH,WAAYG,EAAMH,SAASc,UAGtCE,cAAc5P,GACdyE,EAAQ4K,KAAW,GACjB,GACJ,MAEC5K,EAAQ4K,IACT,KAIHQ,QAAS,CACR,mBAAMC,CAAcC,GACnB,GAAkC,IAA9BA,EAAGhB,MAAMV,UAAU/M,OAAc,CACpC,IAAI0O,QAAY,qCAChBD,EAAGE,OAAO,YAAaD,EAAIE,QAC5B,CACD,EACA,wBAAMC,CAAmBJ,GACxB,IAAIA,EAAGhB,MAAM1D,QAGb,GAAIxL,EAAAA,EAAMuQ,MAAML,EAAGhB,MAAMT,gBAAiB,CACzC,IAAItK,QAAiBnE,EAAAA,EAAMwQ,QAAQ9R,IAAIwR,EAAGhB,MAAMT,gBAChD,GAAIzO,EAAAA,EAAMC,SAASkE,EAAS3I,MAAO,CAClC,IAAIiV,EAAK,IAAIhF,EAAAA,aAAatH,EAAS3I,MACnCiV,EAAGjG,QACH0F,EAAGE,OAAO,aAAcjM,EAAS3I,KAClC,CACD,MACK,GAAuC,kBAA5B0U,EAAGhB,MAAMT,gBAA+ByB,EAAGhB,MAAMT,eAAehN,OAAS,EAAG,CAC3F,IAAKtB,EAAIuP,GAAa1P,EAAAA,EAAM0Q,iBAAiBR,EAAGhB,MAAMT,gBACtD,UACOyB,EAAGS,SAAS,cAAe,CAACxQ,KAAIuP,aAAY,CAACkB,MAAM,GAC1D,CAAE,MAAOhR,GACRC,QAAQ8I,KAAK/I,EACd,CACAsQ,EAAGE,OAAO,aAAc,CACvB1E,cAAe,CACd,CAACvL,GAAK,CACLiM,WAAYjM,EACZuP,YACAlR,UAAW,CAAC,EACZ2G,QAAQ,KAIZ,CACD,EACA,oBAAM0L,CAAeX,GACpB,GAAKA,EAAGhB,MAAMhB,SAIsB,YAAhCgC,EAAGhB,MAAMhB,QAAQ4C,WACpB,IACC,IAAI3M,QAAiBnE,EAAAA,EAAMwQ,QAAQ9R,IAAIwR,EAAGhB,MAAMhB,QAAQ6C,WACpD/Q,EAAAA,EAAMC,SAASkE,EAAS3I,OAC3B0U,EAAGE,OAAO,iBAAkBjM,EAAS3I,KAEvC,CAAE,MAAOoE,GAER,MADAC,QAAQD,MAAMA,GACR,IAAIoE,MAAM,mDACjB,CAEF,GAEDgN,UAAW,CACVC,WAAAA,CAAY/B,EAAOgC,EAAM,MACxBhC,EAAMH,SAAWmC,CAClB,EACAC,sBAAAA,CAAuBjC,EAAOkC,GAC7BlC,EAAMZ,oBAA4C,kBAAf8C,EAA0BA,EAAa,EAC3E,EACAC,iBAAAA,CAAkBnC,EAAO1D,GACxB0D,EAAMT,eAAiBjD,CACxB,EACA8F,cAAAA,CAAepC,EAAO/C,GACrB+C,EAAMR,YAAcvC,CACrB,EACAoF,UAAAA,CAAWrC,EAAOhB,GACjBgB,EAAMhB,QAAU,IACZA,EACHpR,MAAO,UACPtB,KAAM,KACNgW,QAAS,KAEX,EACAC,cAAAA,CAAevC,EAAO1T,GAOrB,IAAIgQ,EAAS1O,EAAO0U,EANhBhW,EAAK8H,OACR9H,EAAOkW,IAAAA,KAAiBlW,GAAM,IAG/BmW,EAAAA,GAAAA,IAAQzC,EAAMhB,QAAS,OAAQ1S,GAGb,eAAdA,EAAK8H,MACRkI,EAAUxL,EAAAA,EAAM4R,wBAAwBpW,IAASwE,EAAAA,EAAM4R,wBAAwBpW,EAAKqW,WACpF/U,EAAQtB,EAAKsB,MACb0U,EAAUhW,EAAKgW,SAEO,YAAdhW,EAAK8H,OACbkI,EAAUxL,EAAAA,EAAM4R,wBAAwBpW,EAAK0E,YAC7CpD,EAAQtB,EAAK0E,YAAYpD,MACzB0U,EAAUhW,EAAK0E,YAAYsR,SAExBhG,IACH0D,EAAM1D,QAAUA,GAEb1O,IACH6U,EAAAA,GAAAA,IAAQzC,EAAMhB,QAAS,QAASpR,GAChC6U,EAAAA,GAAAA,IAAQzC,EAAMhB,QAAS,UAAWsD,GAClCtC,EAAM5M,QAAUxF,EAElB,EACAgV,gBAAAA,CAAiB5C,EAAOU,GACvBV,EAAMJ,cAAgBc,GAAW,CAAC,CACnC,EACAmC,aAAAA,CAAc7C,GAAO,UAACtT,EAAS,QAAEgU,IAChCV,EAAMP,WAAa/S,EACfA,IACHsT,EAAMN,gBAAkBgB,EAE1B,EACAoC,oBAAAA,CAAqB9C,EAAO+C,GAC3B/C,EAAML,kBAAoBoD,EACrB/C,EAAMZ,sBACVY,EAAMZ,oBAA8C,kBAAjB2D,EAA4BA,EAAe,GAEhF,EACAC,SAAAA,CAAUhD,GACTA,EAAMX,oBAAsBW,EAAMX,oBAAsB,CACzD,EACA4D,UAAAA,CAAWjD,GACVA,EAAMX,oBAAsBW,EAAMX,oBAAsB,CACzD,EACA6D,SAAAA,CAAUlD,EAAOhS,IAC0B,IAAtCgS,EAAMf,cAAckE,QAAQnV,IAC/BgS,EAAMf,cAAc/G,KAAKlK,GAE1BkR,aAAakE,QAAQtE,EAAezD,KAAKgI,UAAUrD,EAAMf,eAC1D,EACAqE,YAAAA,CAAatD,EAAOhS,GACnBgS,EAAMf,cAAcsE,OAAOvD,EAAMf,cAAckE,QAAQnV,GAAM,GAC7DkR,aAAakE,QAAQtE,EAAezD,KAAKgI,UAAUrD,EAAMf,eAC1D,EACA5L,UAAAA,CAAW2M,EAAOgC,GACjBhC,EAAM5M,QAAU4O,EACZA,aAAewB,EAAAA,KAAOxB,aAAeyB,EAAAA,QACxCzD,EAAM1D,QAAU0F,EAAI1F,QAEZ0F,aAAe0B,EAAAA,YACvB1D,EAAM1D,QAAU0F,EAAI2B,SAEZ7S,EAAAA,EAAMC,SAASiR,IAAQA,EAAI1F,QACnC0D,EAAM1D,QAAU0F,EAAI1F,QAGpB0D,EAAM1D,QAAU0F,CAElB,EACA4B,UAAAA,CAAW5D,EAAO1D,GACjB0D,EAAM1D,QAAUA,CACjB,EACAgD,SAAAA,CAAUU,EAAOV,GAChBU,EAAMV,UAAYA,CACnB,EACAuE,KAAAA,CAAM7D,GACL9M,OAAOC,OAAO6M,EAAOjB,IACtB,IC5OF,IAAiByB,YAAWsD,SAAQC,aAAYC,WAAUC,WAAUC,WAAUC,SAAQC,aAAYC,iBAAgBC,iBAC5GA,IACJA,EAAa,MAEd,MAAMvF,EAAkBA,KAChB,CACNwF,MAAO,KACPC,SAAS,EACT,CAAChE,GAAY,KAGf,IAAIiE,EAAa,CAChB1E,YAAY,EACZC,MAAOjB,IACPkB,QAAS,CACRyE,aAAcA,CAAC1E,EAAOC,EAASG,EAAWC,IAAgBA,EAAYsE,SAASb,GAC/Ec,eAAgBA,CAAC5E,EAAOC,EAASG,EAAWC,IAAgBA,EAAYsE,SAASX,GACjFa,eAAgBA,CAAC7E,EAAOC,EAASG,EAAWC,IAAgBA,EAAYsE,SAASV,GACjFa,eAAgBA,CAAC9E,EAAOC,EAASG,EAAWC,IAAgBA,EAAYsE,SAAST,GACjFa,aAAcA,CAAC/E,EAAOC,EAASG,EAAWC,IAAgBA,EAAYsE,SAASR,GAC/Ea,QAAUhF,GAAW/O,IACpB,IAAI3E,EAAO0T,EAAMQ,GAAWxD,MAAKiI,GAAKA,EAAEX,KAAgBrT,IACxD,MAAuB,qBAAT3E,EAAuBA,EAAO,IAAI,GAGlDwU,QAAS,CACR,YAAMoE,CAAOlE,EAAImE,GAChB,GAAInE,EAAGf,QAAQ2E,eAAgB,CAC9B,IAAIlQ,EAAasM,EAAGZ,UAAU1L,WAC1BpI,QAAaoI,EAAWsP,GAAUoB,MAAM1Q,EAAYyQ,GAExD,OADAnE,EAAGE,OAAO,SAAU5U,GACbA,CACR,CAEC,MAAM,IAAIwI,MAAM,yCAElB,EACA,YAAMuQ,CAAOrE,GAAI,KAAC1U,IACjB,IAAI0U,EAAGf,QAAQ6E,eAKd,MAAM,IAAIhQ,MAAM,kDAJVxI,EAAK4X,KACXlD,EAAGE,OAAO,SAAU5U,EAKtB,EACA,YAAMgZ,CAAOtE,GAAI,KAAC1U,EAAI,WAAE6Y,IACvB,GAAInE,EAAGf,QAAQ4E,eAAgB,CAC9B,IAAIU,QAAgBjZ,EAAK2X,GAAUkB,GAEnC,OADAnE,EAAGE,OAAO,SAAUqE,GACbA,CACR,CAEC,MAAM,IAAIzQ,MAAM,2CAElB,EACA,UAAM0Q,CAAKxE,GAAI,KAAC1U,IACf,IAAIiZ,EAAU,KACd,KAAMjZ,aAAgBoX,EAAAA,aAAc,CACnC,IAAIzS,EAAKH,EAAAA,MAAMC,SAASzE,GAAQA,EAAKgY,GAAchY,EAEnDA,EAAO0U,EAAGf,QAAQ+E,QAAQ/T,GACrB3E,IAEJiZ,QAAgBvE,EAAGZ,UAAU1L,WAAW0P,GAAY9X,GAEtD,CAOA,OANKiZ,IAEJA,QAAgBjZ,EAAK6X,MAGtBnD,EAAGE,OAAO,SAAUqE,GACbA,CACR,EACA,UAAME,CAAKzE,GACV,MAAM0E,EAAQ1E,EAAGhB,MAAMQ,GAAWjO,OAClC,GAAIyO,EAAGf,QAAQyE,aAAc,CAG5B,IAAIhW,EAAYsL,KAAKjC,IAAIiJ,EAAGZ,UAAU1R,UAAWgX,GACjD,GAAI3B,EAAY,CACf,MAAMQ,EAAQvD,EAAGZ,UAAU1L,WAAWqP,GAAYrV,EAAWsS,EAAGhB,MAAMQ,IAChElU,QAAaiY,EAAMoB,WACzB3E,EAAGE,OAAO,SACVF,EAAGE,OAAO,QAASqD,GACnBvD,EAAGE,OAAO,OAAQ5U,EACnB,KACK,CACJ,MAAMA,QAAa0U,EAAGZ,UAAU1L,WAAWoP,GAAQ9C,EAAGhB,MAAMQ,IAC5DQ,EAAGE,OAAO,SACVF,EAAGE,OAAO,OAAQ5U,EACnB,CACD,CACA,OAAO0U,EAAGhB,MAAMQ,EACjB,EACA,cAAMmF,CAAS3E,GACd,GAAKA,EAAGhB,MAAMuE,OAAUvD,EAAGhB,MAAMwE,QAIjC,OADAxD,EAAGE,OAAO,aAAcF,EAAGhB,MAAMuE,MAAMoB,YAChC3E,EAAGhB,MAAMQ,EACjB,GAEDsB,UAAW,CACVxV,IAAAA,CAAK0T,EAAO1T,GACX,GAAI8D,MAAMC,QAAQ/D,GACjB,IAAK,IAAIsZ,KAAKtZ,EACb0T,EAAMQ,GAAWtI,KAAK0N,GAGxB5F,EAAMwE,UAAUxE,EAAMuE,OAAQvE,EAAMuE,MAAMsB,aAC3C,EACAtB,KAAAA,CAAMvE,EAAOuE,GACZvE,EAAMuE,MAAQA,CACf,EACAuB,MAAAA,CAAO9F,EAAO1T,GACb,IAAI2E,EAAK3E,EAAKgY,GACVyB,EAAQ/F,EAAMQ,GAAWwF,WAAUf,GAAKA,EAAEX,KAAgBrT,IAC1DgV,EAAiBxD,EAAAA,GAAIyD,WAAW5Z,GAChCyZ,GAAS,EACZtD,EAAAA,GAAAA,IAAQzC,EAAMQ,GAAYuF,EAAOE,GAGjCjG,EAAMQ,GAAWtI,KAAK+N,EAExB,EACAZ,OAAOrF,EAAO1T,GACb,IAAI2E,EAAK3E,EAAKgY,GACVyB,EAAQ/F,EAAMQ,GAAWwF,WAAUf,GAAKA,EAAEX,KAAgBrT,IAC1D8U,GAAS,GACZtD,EAAAA,GAAI4C,OAAOrF,EAAMQ,GAAYuF,EAE/B,EACAlC,KAAAA,CAAM7D,GACL9M,OAAOC,OAAO6M,EAAOjB,IACtB,IAIF,IAAI,IAAIoH,KAAO9B,EACdnR,OAAOC,OAAOsR,EAAW0B,GAAM9B,EAAe8B,IAE/C,OAAO1B,CACP,EClJD,EAAe2B,EAAa,CAC3B5F,UAAW,QACXsD,OAAQ,YACRC,WAAY,gBACZC,SAAU,aACVC,SAAU,aACVC,SAAU,aACVC,OAAQ,eACRC,WAAY,UACZE,WAAY,OACZD,eAAgB,CACfpE,QAAS,CACT,EACAa,QAAS,CACT,EACAgB,UAAW,CACX,KChBF,EAAesE,EAAa,CAC3B5F,UAAW,OACXsD,OAAQ,WACRC,WAAY,eACZC,SAAU,YACVC,SAAU,YACVC,SAAU,YACVC,OAAQ,cACRC,WAAY,SACZC,eAAgB,CACfpE,QAAS,CACRoG,cAAeA,CAACrG,EAAOC,EAASG,EAAWC,IAAgBA,EAAYsE,SAAS,YAChF2B,eAAgBA,CAACtG,EAAOC,EAASG,EAAWC,IAAgBA,EAAYsE,SAAS,YAElF7D,QAAS,CACR,WAAMyF,CAAMvF,GAAI,KAAC1U,IAChB,GAAI0U,EAAGf,QAAQoG,cAAe,CAC7B,IAAId,QAAgBjZ,EAAKka,WAEzB,OADAxF,EAAGE,OAAO,SAAUqE,GACbA,CACR,CAEC,MAAM,IAAIzQ,MAAM,uDAElB,EACA,YAAM2R,CAAOzF,GAAI,KAAC1U,IACjB,GAAI0U,EAAGf,QAAQqG,eAAgB,CAC9B,IAAIf,QAAgBjZ,EAAKoa,UAEzB,OADA1F,EAAGE,OAAO,SAAUqE,GACbA,CACR,CAEC,MAAM,IAAIzQ,MAAM,wDAElB,GAEDgN,UAAW,CACX,KCrCF,EAAesE,EAAa,CAC3B5F,UAAW,WACXsD,OAAQ,eACRC,WAAY,mBACZC,SAAU,gBACVC,SAAU,gBACVC,SAAU,gBACVC,OAAQ,kBACRC,WAAY,aACZC,eAAgB,CACfpE,QAAS,CACT,EACAa,QAAS,CACT,EACAgB,UAAW,CACX,KCdF,EAAesE,EAAa,CAC3B5F,UAAW,gBACXsD,OAAQ,oBACRC,WAAY,KACZC,SAAU,iBACVC,SAAU,qBACVC,SAAU,oBACVC,OAAQ,sBACRC,WAAY,iBACZC,eAAgB,CACfpE,QAAS,CACT,EACAa,QAAS,CACT,EACAgB,UAAW,CACVxV,IAAAA,CAAK0T,EAAO1T,GACX0T,EAAM2G,cAAgBra,EACpB8F,KAAIsK,GAAKxJ,OAAOC,OAAOuJ,EAAG,CAAC8D,UAAW,WACtCtE,QAAOQ,GAAsB,kBAATA,EAAEzL,KACtB2V,KAAK9V,EAAAA,EAAM+V,SACd,MCPHpE,EAAAA,GAAIqE,IAAIC,EAAAA,IAERnK,EAAAA,QAAQE,qBAAuB,CAC9B,QAAW,IACX,IAAO,KAERF,EAAAA,QAAQoK,uBAAyB,MAChC,MAAMC,EAAU,CAAC,EACjB,IAAI,MAAMC,KAAMtK,EAAAA,QAAQC,gBACvBoK,EAAQrK,EAAAA,QAAQC,gBAAgBqK,IAAOA,EAExC,OAAOhU,OAAOC,OAAO8T,EAASrK,EAAAA,QAAQE,qBACtC,EANgC,GAQjC,MAAMiC,EAAkBA,KAChB,CACNrK,WAAY,KACZyS,eAAgB,EAChBC,oBAAoB,EACpBC,iBAAiB,EACjBC,SAAU,CAAC,EACXC,gBAAiB,KACjBC,qBAAsB,CAAC,EACvBC,cAAe,GACfC,YAAa,CAAC,EACdC,aAAc,CAAC,EACfC,YAAa,CAAC,EACdC,iBAAkB,EAClBC,YAAa,GACb1Z,kBAAmB2Z,EAAAA,EAAO3Z,mBAAqB,GAC/CM,UAAWqZ,EAAAA,EAAOrZ,YAIpB,MAAmBqY,EAAAA,GAAAA,MAAW,CAE7BiB,QAAS,CACRC,OAAM,EACNnK,MAAK,EACLoK,KAAI,EACJC,SAAQ,EACRxB,cAAaA,GAEd3G,MAAOjB,IACPkB,QAAS,CACRrS,MAAQoS,IACP,GAAyB,OAArBA,EAAMtL,YAA2D,OAApCsL,EAAMtL,WAAW0T,eAAyB,CAC1E,MAAMxa,EAAQoS,EAAMtL,WAAW0T,eAAexa,QAC9C,OAAOA,GAAgBoS,EAAMtL,WAAWnB,QACzC,CACA,OAAO,IAAI,EAEZ6U,aAAepI,GAA+B,OAArBA,EAAMtL,WAAsBsL,EAAMtL,WAAW0T,eAAiB,KACvFzD,SAAW3E,GAAWqI,GAAiC,OAArBrI,EAAMtL,YAA2D,OAApCsL,EAAMtL,WAAW0T,gBAA2BpI,EAAMtL,WAAW0T,eAAeE,WAAWD,GACtJE,SAAWvI,IACV,IAAIuI,EAAW,GAIf,OAHIvI,EAAMtL,YAA6D,OAA/CsL,EAAMtL,WAAW0T,eAAeG,aACvDA,EAAWvI,EAAMtL,WAAW0T,eAAeG,YAErCA,CAAQ,EAEhBC,YAAcxI,GAA+B,OAArBA,EAAMtL,YAA2D,OAApCsL,EAAMtL,WAAW0T,eACtEK,aAAezI,GAA+B,OAArBA,EAAMtL,YAAuBsL,EAAMoH,mBAC5DsB,gBAAkB1I,GAA+B,OAArBA,EAAMtL,YAAsE,OAA/CsL,EAAMtL,WAAW0T,eAAeG,WACzFI,qBAAuB3I,GAA+B,OAArBA,EAAMtL,YAAsE,OAA/CsL,EAAMtL,WAAW0T,eAAeG,YAAuBvI,EAAMtL,WAAW0T,eAAeQ,YAAYrW,OAAS,EAC1KsW,WAAa7I,GAA+B,OAArBA,EAAMtL,WAAsBsL,EAAMtL,WAAW0T,eAAeS,aAAe,KAClGnB,YAAc1H,GAAUA,EAAM0H,uBAAuBoB,EAAAA,UAAY9I,EAAM0H,YAAY/D,SAAW,CAACoF,MAAO,CAAC,EAAGC,OAAQ,CAAC,GACnHzI,mBAAqBP,GAAW/O,IAC/B,MAAMgY,EAAajJ,EAAM8H,YAAY9K,MAAKlK,GAAKA,EAAE7B,KAAOA,IACxD,IAAKH,EAAAA,EAAMC,SAASkY,GACnB,MAAO,CAAC,EAGT,IAAIC,EAAiB,KACrB,IACCA,EAAiBpY,EAAAA,EAAMqY,aAAaF,EAAWnZ,OAAOsZ,QAAQ9P,KAAK,GACpE,CAAE,MAAO5I,GAAQ,CAEjB,IAAI2Y,EAAkB,KACtB,IACCA,EAAkBJ,EAAWnZ,OAAOwZ,SAASC,SAAS,GAC3B,OAAvBF,EAAgB,IAAsC,OAAvBA,EAAgB,GAClDA,EAAkB,KAEVA,EAAgB,IAAMA,EAAgB,KAC9CA,EAAgB,GAAK,KAEvB,CAAE,MAAO3Y,GAAQ,CAEjB,IAAI6G,EAAQ,KACZ,MAAO,CAACtG,KAAIiY,iBAAgBG,kBAAiB9R,QAAM,EAEpDiS,UAAYxJ,IACX,IAAIyJ,EAOJ,OALCA,EADGzJ,EAAM6H,kBAAyC,OAArB7H,EAAMtL,WACxBsL,EAAMtL,WAAW8U,UAGjB,IAAIE,EAAAA,gBAETxW,OAAOC,OAAOsW,EAAUE,EAAyB,EAEzDC,aAAcA,CAAC5J,EAAOC,KACrB,GAAKD,EAAM6H,iBAAX,CAGA,IAAI,IAAInQ,KAAKkF,EAAAA,QAAQC,gBAAiB,CACrC,IAAIgN,EAAYjN,EAAAA,QAAQC,gBAAgBnF,GACxC,IAAKuI,EAAQuJ,UAAUM,IAAID,GAC1B,OAAO,CAET,CACA,OAAO,CAPP,CAOW,GAGb/I,QAAS,CACR,aAAMiJ,CAAQ/I,EAAIhT,SACXgT,EAAGS,SAAS,UAGlB,IAAI/M,EAAa,KACjB,IACCA,QAAmBsV,EAAAA,OAAOD,QAAQ/b,EAAK,CAACic,uBAAuB,GAChE,CAAE,MAAOvZ,GAKR,MAJoB,iBAAjBA,EAAMwZ,SAA4C,gBAAdxZ,EAAMvE,OAC5CuE,EAAQ,IAAIoE,MAAM,6BAEnBkM,EAAGE,OAAO,qBAAsBxQ,IACzB,CACR,CAGA,IACC,MAAMyZ,QAAkBzV,EAAW0V,oBACnCpJ,EAAGE,OAAO,gBAAiBiJ,EAC5B,CAAE,MAAOzZ,GAER,OADAsQ,EAAGE,OAAO,qBAAsBxQ,IACzB,CACR,CAcA,OAZAgE,EAAW3I,GAAG,uBAAuBse,UACpCrJ,EAAGE,OAAO,gBAA8B,OAAboJ,GACvBtJ,EAAGhB,MAAMoH,0BACNpG,EAAGS,SAAS,YAAY,EAC/B,IAED/M,EAAW3I,GAAG,oBAAoB,IAAMiV,EAAGE,OAAO,qBAIlDF,EAAGE,OAAO,aAAcxM,IAEjB,CACR,EAEA,cAAM6V,CAASvJ,EAAIwJ,GAAU,GAC5B,IAAIC,EAAW,GACXC,EAAS,GACTtC,EAAepH,EAAGhB,MAAMtL,WAAW0T,eAYvC,GATIA,EAAaE,WAAW,mBAC3BmC,EAASvS,KAAK8I,EAAGhB,MAAMtL,WAAWiW,kBAChCC,MAAK3V,GAAY+L,EAAGE,OAAO,cAAejM,KAC1C4V,OAAMna,GAASga,EAAOxS,KAAKxH,MAG7Bga,EAAOxS,KAAK,IAAIpD,MAAM,8CAGlB0V,EAAS,CAWb,GATIpC,EAAaE,WAAW,iBAC3BmC,EAASvS,KAAK8I,EAAGhB,MAAMtL,WAAWoW,gBAChCD,OAAMna,GAASga,EAAOxS,KAAKxH,MAG7Bga,EAAOxS,KAAK,IAAIpD,MAAM,uDAInBkM,EAAGhB,MAAM5R,kBAAkBmE,OAAS,EACvC,IAAI,IAAIiO,KAAaQ,EAAGhB,MAAM5R,kBAC7Bqc,EAASvS,KAAK8I,EAAGhB,MAAMtL,WAAWoW,cAActK,GAC9CqK,OAAMna,GAASga,EAAOxS,KAAKxH,MAK3B0X,EAAaE,WAAW,sBAAwBtH,EAAGhB,MAAMtL,WAAW2S,mBACvEoD,EAASvS,KAAK8I,EAAGS,SAAS,sBACxBoJ,OAAMna,GAASga,EAAOxS,KAAKxH,KAE/B,CAGI0X,EAAaE,WAAW,kBAC3BmC,EAASvS,KAAK8I,EAAGhB,MAAMtL,WAAWqW,gBAChCH,MAAK3V,GAAY+L,EAAGE,OAAO,cAAejM,KAC1C4V,OAAMna,GAASga,EAAOxS,KAAKxH,MAI1B0X,EAAaE,WAAW,qBAC3BmC,EAASvS,KAAK8I,EAAGhB,MAAMtL,WAAWsW,mBAChCJ,MAAK3V,GAAY+L,EAAGE,OAAO,eAAgBjM,KAC3C4V,OAAMna,GAASga,EAAOxS,KAAKxH,MAI1B0X,EAAaE,WAAW,oBAC3BmC,EAASvS,KAAK8I,EAAGhB,MAAMtL,WAAWuW,kBAChCL,MAAK3V,GAAY+L,EAAGE,OAAO,cAAejM,KAC1C4V,OAAMna,GAASga,EAAOxS,KAAKxH,MAI9B,MAAM8E,EAAUwL,EAAGS,SAAS,mBAC1BoJ,OAAMna,GAASga,EAAOxS,KAAKxH,KAM7B,GALA+Z,EAASvS,KAAK1C,SAERC,QAAQwG,IAAIwO,IAGbD,EACJ,UACOxJ,EAAGS,SAAS,4BACnB,CAAE,MAAO/Q,GACRga,EAAOxS,KAAKxH,EACb,CAID,IAAK8Z,EACJ,UACOxJ,EAAGS,SAAS,wBACnB,CAAE,MAAO/Q,GACRga,EAAOxS,KAAKxH,EACb,CAID,OADAsQ,EAAGE,OAAO,sBACHwJ,CACR,EAGA,qBAAMQ,CAAgBlK,GACrB,GAAIA,EAAGf,QAAQ0E,SAAS,oBAAsB3D,EAAGhB,MAAMqH,gBAAiB,CACvE,MAAMpS,QAAiB+L,EAAGhB,MAAMtL,WAAWwW,kBAC3ClK,EAAGE,OAAO,WAAYjM,EACvB,MAEC+L,EAAGE,OAAO,WAEZ,EAEA,wBAAMiK,CAAmBnK,EAAI/P,GAC5B,IAAIgY,EAAajI,EAAGhB,MAAM8H,YAAY9K,MAAKlK,GAAKA,EAAE7B,KAAOA,IAMzD,OALKgY,GAAeA,EAAWmC,UAC9BnC,QAAmBjI,EAAGhB,MAAMtL,WAAWyW,mBAAmBla,GAC1DgY,EAAazG,IAAAA,WAAuByG,GAAY,GAChDjI,EAAGE,OAAO,iBAAkB+H,IAEtBA,CACR,EAEA,iBAAMoC,CAAYrK,GAAI,GAAC/P,EAAE,UAAEuP,IAC1B,MAAMlE,EAAU0E,EAAGf,QAAQuJ,UAAUha,IAAIyB,EAAIuP,GAC7C,OAAK1P,EAAAA,EAAMC,SAASuL,IAGM,YAAtBA,EAAQkE,YACe,SAAtBlE,EAAQkE,gBACLQ,EAAGS,SAAS,qBAAsB,CAACnV,KAAMgQ,IAEvCA,EAAQkE,WAA2B,YAAdA,SACvBQ,EAAGhB,MAAMtL,WAAW4W,gBAAgBra,EAAIqL,EAAQkE,YAGjDQ,EAAGf,QAAQuJ,UAAUha,IAAIyB,EAAIuP,IAV5B,IAWT,EAEA,kBAAM+K,CAAavK,SACZvL,QAAQwG,IAAI/I,OAAOyI,OAAOqF,EAAGhB,MAAMwH,sBAAsBpV,KAAIoZ,GAAYA,MAChF,EAEA,YAAMC,CAAOzK,EAAI0K,GAAa,GAS7B,SARM1K,EAAGS,SAAS,gBAEdiK,IAEH1K,EAAGhB,MAAMtL,WAAWiX,IAAI,uBACxB3K,EAAGhB,MAAMtL,WAAWiX,IAAI,qBAGrB3K,EAAGhB,MAAMqH,gBAAiB,CAE7B,MAAMuE,EAAe5K,EAAGhB,MAAMtL,WAAWmX,kBACpB,OAAjBD,SACGA,EAAaH,QAErB,CACIC,GAEH1K,EAAGE,OAAO,QAAS/V,KAAKkc,iBACxBrG,EAAGE,OAAO,cACVF,EAAGE,OAAO,eACVF,EAAGE,OAAO,kBACVF,EAAGE,OAAO,wBAGVF,EAAGE,OAAO,iBAAiB,EAE7B,GAEDY,UAAW,CACVsF,kBAAAA,CAAmBpH,EAAO8L,GAAY,GACrC9L,EAAMoH,mBAAqB0E,CAC5B,EACApX,UAAAA,CAAWsL,EAAOtL,GACjBsL,EAAMtL,WAAaA,CACpB,EACA+S,aAAAA,CAAczH,EAAOyH,GACpBzH,EAAMyH,cAAgBA,CACvB,EACAH,QAAAA,CAAStH,EAAO+L,GACf/L,EAAMsH,SAAWxW,EAAAA,EAAMC,SAASgb,GAAQA,EAAO,CAAC,CACjD,EACArE,WAAAA,CAAY1H,EAAO0H,GAClB1H,EAAM0H,YAAcA,CACrB,EACAC,YAAAA,CAAa3H,EAAO2H,GAEnB,GAAI7W,EAAAA,EAAMC,SAAS4W,GAAe,CACjC,MAAM3F,EAAM,CAAC,EACb,IAAI,MAAMmE,KAAOwB,EAChB3F,EAAImE,EAAI/U,eAAiBuW,EAAaxB,GAEvCnG,EAAM2H,aAAe3F,CACtB,MAEChC,EAAM2H,aAAeA,CAEvB,EACAC,WAAAA,CAAY5H,EAAO4H,GAClB5H,EAAM4H,YAAcA,CACrB,EACAoE,eAAAA,CAAgBhM,GACfA,EAAM6H,kBACP,EACAoE,6BAAAA,CAA8BjM,EAAOkM,GAIpC,GAH0B,kBAAfA,IACVA,EAAaA,EAAWtN,MAAM,MAE1BxO,MAAMC,QAAQ6b,GAInB,IAAI,IAAI1L,KAAa0L,EAChB1L,IAAcR,EAAM5R,kBAAkBoC,SAASgQ,IAClDR,EAAM5R,kBAAkB8J,KAAKsI,EAGhC,EACA2L,cAAAA,CAAenM,EAAO1T,GACrB,IAAIyZ,EAAQ/F,EAAM8H,YAAY9B,WAAUlT,GAAKA,EAAE7B,KAAO3E,EAAK2E,MAC5C,IAAX8U,IACHzZ,EAAK8e,SAAU,EACf3I,EAAAA,GAAAA,IAAQzC,EAAM8H,YAAa/B,EAAOzZ,GAEpC,EACAwb,WAAAA,CAAY9H,EAAO1T,GAClB0T,EAAM8H,YAAcxb,EAAKwb,YACvB1V,KAAIU,GAAK0P,IAAAA,WAAuB1P,GAAG,KACnCoJ,QAAOpJ,GAAsB,kBAATA,EAAE7B,KACtB2V,KAAK9V,EAAAA,EAAM+V,SACd,EACAuF,kBAAAA,CAAmBpM,EAAOtP,GACzBsP,EAAMuH,gBAAkB7W,CACzB,EACA2b,aAAAA,CAAcrM,EAAOqH,GACpBrH,EAAMqH,gBAAkBA,EACnBA,IACJrH,EAAMsH,SAAW,CAAC,EAEpB,EACAzD,KAAAA,CAAM7D,EAAOsM,GAAiB,GAC7BpZ,OAAOC,OAAO6M,EAAOjB,IAAmB,CACvCrK,WAAY4X,EAAiBtM,EAAMtL,WAAa,MAElD,EACA6X,kBAAAA,CAAmBvM,GAClBA,EAAMmH,gBAAkB,CACzB,EACAqF,gBAAAA,CAAiBxM,GAChBA,EAAMmH,gBAAkB,CACzB,EACAK,oBAAAA,CAAqBxH,GAAO,IAACmG,EAAG,SAAEqF,IACT,oBAAbA,EACVxL,EAAMwH,qBAAqBrB,GAAOqF,EAGlC/I,EAAAA,GAAI4C,OAAOrF,EAAMwH,qBAAsBrB,EAEzC,KCpaF,IAAIlb,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,YAAYmhB,MAAM,CAACC,YAAaxhB,EAAIud,eAAe,CAACrd,EAAG,aAAa,CAACK,MAAM,CAAC,KAAO,eAAe,KAAO,WAAW,CAAGP,EAAIud,aAA4Erd,EAAG,MAAM,CAAC+a,IAAI,MAA5E/a,EAAG,cAAc,CAAC+a,IAAI,IAAI1a,MAAM,CAAC,UAAYP,EAAI0B,cAAkC,GAAG1B,EAAIyhB,GAAIzhB,EAAI0hB,QAAQ,SAASC,GAAO,MAAO,CAACzhB,EAAGyhB,EAAMngB,UAAUxB,EAAI4hB,GAAG5hB,EAAI6hB,GAAG,CAAC5G,IAAI0G,EAAM5b,GAAG+b,IAAI,YAAYjhB,GAAG,CAAC,OAAS,SAASkhB,GAAQ,OAAO/hB,EAAIgiB,UAAUL,EAAM,IAAI,YAAYA,EAAMvW,OAAM,GAAOuW,EAAMtW,SAAS,IAAGnL,EAAG,eAAgBF,EAAIiiB,SAAU/hB,EAAG,OAAO,CAACgiB,MAAM,CAACC,MAAOniB,EAAIiiB,SAAUje,SAAS,SAAUoe,GAAMpiB,EAAIiiB,SAASG,CAAG,EAAEC,WAAW,cAAcriB,EAAIS,KAAKP,EAAG,OAAO,CAACoiB,WAAW,CAAC,CAACrhB,KAAK,OAAOshB,QAAQ,SAASJ,MAAOniB,EAAIic,eAAiB,EAAGoG,WAAW,uBAAuB9hB,MAAM,CAAC,GAAK,mBAAmB,CAACL,EAAG,IAAI,CAACE,YAAY,oCAAoC,EACp3B,EACIY,EAAkB,G,WCFlBjB,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,MAAM,CAACE,YAAY,UAAUG,MAAM,CAAC,MAAQ,aAAaM,GAAG,CAAC,MAAQb,EAAIwiB,WAAW,CAACtiB,EAAG,IAAI,CAACE,YAAY,0BAA0BJ,EAAIU,GAAG,WAAYV,EAAIyiB,SAAUviB,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,IAAI,CAACE,YAAY,sBAAsBF,EAAG,OAAO,CAACF,EAAIU,GAAG,qBAAqBR,EAAG,SAAS,CAACF,EAAIU,GAAG,cAAcV,EAAIU,GAAG,2EAA2ER,EAAG,MAAMA,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOP,EAAIyiB,WAAW,CAACziB,EAAIU,GAAG,6DAA6DV,EAAIS,KAAMT,EAAIgf,QAAS9e,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,IAAI,CAACE,YAAY,oBAAoBF,EAAG,OAAO,CAACwiB,SAAS,CAAC,UAAY1iB,EAAIW,GAAGX,EAAIgf,cAAchf,EAAIS,KAAKP,EAAG,aAAa,CAACK,MAAM,CAAC,KAAO,eAAe,KAAO,UAAUM,GAAG,CAAC,eAAeb,EAAI2iB,gBAAgB,CAAE3iB,EAAI4iB,gBAAiB1iB,EAAG,OAAO,CAACE,YAAY,UAAUS,GAAG,CAAC,OAAS,SAASkhB,GAAgC,OAAxBA,EAAOc,iBAAwB7iB,EAAI8iB,WAAW5I,MAAM,KAAM9V,UAAU,IAAI,CAAClE,EAAG,KAAK,CAACF,EAAIU,GAAG,uBAAuBR,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,QAAQ,CAACK,MAAM,CAAC,IAAM,cAAc,CAACP,EAAIU,GAAG,UAAUR,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,QAAQ,CAACoiB,WAAW,CAAC,CAACrhB,KAAK,QAAQshB,QAAQ,oBAAoBJ,MAAOniB,EAAIyB,UAAW4gB,WAAW,YAAYU,UAAU,CAAC,MAAO,EAAK,MAAO,KAAQ3iB,YAAY,mBAAmBG,MAAM,CAAC,KAAO,OAAO,GAAK,YAAY,SAAWP,EAAIgjB,aAAaN,SAAS,CAAC,MAAS1iB,EAAIyB,WAAYZ,GAAG,CAAC,OAAS,SAASkhB,GAAQ/hB,EAAIyB,UAAUsgB,EAAOjX,OAAOqX,MAAMlb,MAAM,EAAE,KAAO,SAAS8a,GAAQ,OAAO/hB,EAAIijB,cAAc,KAAMjjB,EAAIkjB,kBAAmBhjB,EAAG,SAAS,CAACE,YAAY,uBAAuBG,MAAM,CAAC,KAAO,SAAS,MAAQ,iCAAiCM,GAAG,CAAC,MAAQb,EAAImjB,qBAAqB,CAACjjB,EAAG,IAAI,CAACE,YAAY,kBAAkBJ,EAAIS,SAASP,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,SAAS,CAACE,YAAY,gCAAgCmhB,MAAM,CAAC9L,QAASzV,EAAIyV,SAASlV,MAAM,CAAC,KAAO,WAAW,CAACL,EAAG,IAAI,CAACE,YAAY,iCAAiCJ,EAAIU,GAAG,kBAAmBV,EAAIojB,cAAeljB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,KAAK,CAACF,EAAIU,GAAG,aAAaV,EAAIW,GAAGX,EAAI0C,UAAUxC,EAAG,OAAO,CAACmjB,IAAI,YAAY9iB,MAAM,CAAC,GAAK,cAAc,OAAQ,EAAK,gBAAiB,GAAMM,GAAG,CAAC,SAAWb,EAAIsjB,kBAAkBC,YAAYvjB,EAAIwjB,GAAG,CAAC,CAACvI,IAAI,UAAUwI,GAAG,UAAS,IAAEC,IAAO,MAAO,CAACxjB,EAAG,OAAO,CAACW,GAAG,CAAC,OAAS,SAASkhB,GAAgC,OAAxBA,EAAOc,iBAAwB7iB,EAAI2jB,cAAcD,EAAItiB,KAAK,IAAI,CAAEsiB,EAAItiB,KAAKuB,YAAazC,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,IAAI,CAACE,YAAY,uBAAuBF,EAAG,OAAO,CAACF,EAAIU,GAAGV,EAAIW,GAAG+iB,EAAItiB,KAAKuB,kBAAkB3C,EAAIS,KAAOT,EAAI4jB,0BAA67B5jB,EAAIS,KAAt6B,CAACP,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,QAAQ,CAACK,MAAM,CAAC,IAAM,aAAa,CAACP,EAAIU,GAAG,gBAAgBR,EAAG,QAAQ,CAACoiB,WAAW,CAAC,CAACrhB,KAAK,QAAQshB,QAAQ,eAAeJ,MAAOniB,EAAI6jB,iBAAkBxB,WAAW,mBAAmBU,UAAU,CAAC,MAAO,KAAQ3iB,YAAY,QAAQG,MAAM,CAAC,KAAO,OAAO,SAAW,YAAYmiB,SAAS,CAAC,MAAS1iB,EAAI6jB,kBAAmBhjB,GAAG,CAAC,MAAQ,SAASkhB,GAAWA,EAAOjX,OAAOgZ,YAAiB9jB,EAAI6jB,iBAAiB9B,EAAOjX,OAAOqX,MAAMlb,OAAM,EAAE,KAAO,SAAS8a,GAAQ,OAAO/hB,EAAIijB,cAAc,OAAO/iB,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,IAAI,CAACE,YAAY,8BAA8BF,EAAG,OAAO,CAACF,EAAIU,GAAG,4BAA4BR,EAAG,KAAK,CAACF,EAAIU,GAAG,eAAeV,EAAIU,GAAG,4DAA4DR,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOP,EAAI+jB,gBAAgB,OAAS,SAAS,MAAQ/jB,EAAI+jB,kBAAkB,CAAC/jB,EAAIU,GAAG,yBAAyBV,EAAIU,GAAG,0DAAmER,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,yBAAyBA,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,IAAI,CAACE,YAAY,0BAA0BF,EAAG,OAAO,CAACF,EAAIU,GAAG,kEAAkER,EAAG,SAAS,CAACE,YAAY,aAAamhB,MAAM,CAAC9L,QAASzV,EAAIyV,SAASlV,MAAM,CAAC,KAAO,WAAW,CAACL,EAAG,IAAI,CAACE,YAAY,iCAAiCF,EAAG,IAAI,CAACE,YAAY,kBAAkBJ,EAAIU,GAAG,gBAAgBV,EAAIW,GAAG+iB,EAAIziB,UAAU,IAAI,GAAG,GAAIjB,EAAIgkB,cAAe,CAAC/I,IAAI,QAAQwI,GAAG,UAAS,IAAEC,IAAO,MAAO,CAACxjB,EAAG,OAAO,CAACW,GAAG,CAAC,OAAS,SAASkhB,GAAgC,OAAxBA,EAAOc,iBAAwB7iB,EAAI2jB,cAAcD,EAAItiB,KAAK,IAAI,CAAClB,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,IAAI,CAACE,YAAY,uBAAuBF,EAAG,OAAO,CAACF,EAAIU,GAAG,QAAQR,EAAG,KAAK,CAACF,EAAIU,GAAG,gBAAgBV,EAAIU,GAAG,gFAAgF,KAAKR,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,QAAQ,CAACK,MAAM,CAAC,IAAM,aAAa,CAACP,EAAIU,GAAG,eAAeR,EAAG,QAAQ,CAACoiB,WAAW,CAAC,CAACrhB,KAAK,QAAQshB,QAAQ,eAAeJ,MAAOniB,EAAIikB,SAAU5B,WAAW,WAAWU,UAAU,CAAC,MAAO,KAAQ3iB,YAAY,QAAQG,MAAM,CAAC,GAAK,WAAW,KAAO,OAAO,SAAW,YAAYmiB,SAAS,CAAC,MAAS1iB,EAAIikB,UAAWpjB,GAAG,CAAC,MAAQ,SAASkhB,GAAWA,EAAOjX,OAAOgZ,YAAiB9jB,EAAIikB,SAASlC,EAAOjX,OAAOqX,MAAMlb,OAAM,EAAE,KAAO,SAAS8a,GAAQ,OAAO/hB,EAAIijB,cAAc,OAAO/iB,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,QAAQ,CAACK,MAAM,CAAC,IAAM,aAAa,CAACP,EAAIU,GAAG,eAAeR,EAAG,QAAQ,CAACoiB,WAAW,CAAC,CAACrhB,KAAK,QAAQshB,QAAQ,eAAeJ,MAAOniB,EAAIkkB,SAAU7B,WAAW,WAAWU,UAAU,CAAC,MAAO,KAAQ3iB,YAAY,QAAQG,MAAM,CAAC,GAAK,WAAW,KAAO,WAAW,SAAW,YAAYmiB,SAAS,CAAC,MAAS1iB,EAAIkkB,UAAWrjB,GAAG,CAAC,MAAQ,SAASkhB,GAAWA,EAAOjX,OAAOgZ,YAAiB9jB,EAAIkkB,SAASnC,EAAOjX,OAAOqX,MAAMlb,OAAM,EAAE,KAAO,SAAS8a,GAAQ,OAAO/hB,EAAIijB,cAAc,OAAO/iB,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,yBAAyBA,EAAG,SAAS,CAACE,YAAY,aAAamhB,MAAM,CAAC9L,QAASzV,EAAIyV,SAASlV,MAAM,CAAC,KAAO,WAAW,CAACL,EAAG,IAAI,CAACE,YAAY,iCAAiCJ,EAAIU,GAAG,cAAc,KAAK,GAAG,KAAK,CAACua,IAAI,SAASwI,GAAG,WAAW,MAAO,CAACvjB,EAAG,OAAO,CAACW,GAAG,CAAC,OAAS,SAASkhB,GAAgC,OAAxBA,EAAOc,iBAAwB7iB,EAAI2jB,eAAe,IAAI,CAACzjB,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,IAAI,CAACE,YAAY,uBAAuBF,EAAG,OAAO,CAACF,EAAIU,GAAG,+LAA+LR,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,yBAAyBA,EAAG,SAAS,CAACE,YAAY,aAAamhB,MAAM,CAAC9L,QAASzV,EAAIyV,SAASlV,MAAM,CAAC,KAAO,WAAW,CAACL,EAAG,IAAI,CAACE,YAAY,iCAAiCF,EAAG,IAAI,CAACE,YAAY,sBAAsBJ,EAAIU,GAAG,kCAAkC,KAAK,EAAEyjB,OAAM,IAAO,MAAK,KAASnkB,EAAIkjB,kBAAmBhjB,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,IAAI,CAACW,GAAG,CAAC,MAAQ,SAASkhB,GAAQ,OAAO/hB,EAAIokB,cAAc,IAAI,CAACpkB,EAAIU,GAAG,qBAAqBV,EAAIS,MAAM,GAAGT,EAAIS,QAAQ,IAAI,EACziN,EACIO,EAAkB,G,gCCFlBjB,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAQF,EAAIqkB,KAAMnkB,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,IAAI,CAACE,YAAY,wBAAyBJ,EAAIskB,OAAStkB,EAAIukB,QAASrkB,EAAG,OAAO,CAACF,EAAIU,GAAG,mDAAmDR,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOP,EAAIskB,MAAMhc,KAAK,MAAQtI,EAAIskB,MAAM5hB,MAAM,OAAS,WAAW,CAAC1C,EAAIU,GAAG,sBAAsBV,EAAIU,GAAG,gCAAgCR,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOP,EAAIukB,QAAQjc,KAAK,MAAQtI,EAAIukB,QAAQ7hB,MAAM,OAAS,WAAW,CAAC1C,EAAIU,GAAG,oBAAoBV,EAAIU,GAAG,OAAQV,EAAIskB,MAAOpkB,EAAG,OAAO,CAACF,EAAIU,GAAG,mDAAmDR,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOP,EAAIskB,MAAMhc,KAAK,MAAQtI,EAAIskB,MAAM5hB,MAAM,OAAS,WAAW,CAAC1C,EAAIU,GAAG,sBAAsBV,EAAIU,GAAG,OAAQV,EAAIukB,QAASrkB,EAAG,OAAO,CAACF,EAAIU,GAAG,mEAAmER,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOP,EAAIukB,QAAQjc,KAAK,MAAQtI,EAAIukB,QAAQ7hB,MAAM,OAAS,WAAW,CAAC1C,EAAIU,GAAG,oBAAoBV,EAAIU,GAAG,OAAOV,EAAIS,OAAOT,EAAIS,IACj9B,EACIO,EAAkB,GCUtB,SACAC,KAAA,wBACAujB,SAAA,IACA5e,EAAAA,EAAA6e,WAAA,kBACAJ,IAAAA,GACA,YAAAC,OAAA,KAAAC,OACA,EACAD,KAAAA,GACA,YAAAI,cAAA,mBACA,EACAH,OAAAA,GACA,YAAAG,cAAA,iBACA,GAEApjB,QAAA,CACAojB,aAAAA,CAAAC,GACA,IAAAvR,EAAA,KAAA8J,aAAA9J,QAAApC,QAAA4T,GAAAA,EAAAD,MAAAA,IACA,OAAAvR,EAAA/L,OAAA,EACA+L,EAAA,GAGA,IAEA,ICnCoQ,I,eCOhQ5R,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIF,QAAeA,EAAiB,QCwFhC,GACAP,KAAA,cACAC,OAAA,CAAAC,EAAAA,GACA0jB,WAAA,CACAC,KAAA,IACAC,KAAA,aACAC,IAAA,aACAC,sBAAAA,GAEA7Z,MAAA,CACA1J,UAAA,CACAwH,KAAAgc,QACAjP,SAAA,IAGAuO,SAAA,IACA5e,EAAAA,EAAAuf,SAAA,0DACAvf,EAAAA,EAAA6e,WAAA,2CACA7e,EAAAA,EAAAuf,SAAA,4BACA1C,QAAAA,GACA,YAAApiB,QAAA+C,kBAAA,KAAAgiB,WAAAC,OAAAC,WAAA,UAAAD,OAAAC,SAAAC,SACAF,OAAAC,SAAAE,WACAC,QAAA,oBACAA,QAAA,qCAGA,IACA,EACA7B,yBAAAA,GACA,cAAAxE,UAAA,cAAAA,SAAAsG,YACAR,QAAA,KAAA9F,SAAAuG,eAAA,KAAAtlB,QAAA8C,cAAA,KAAAic,SAAArZ,IAGA,EACA6f,YAAAA,GACA,YAAAxG,UAAA,cAAAA,SAAAsG,YACA,KAAA7B,kBAAA,KAAAxjB,QAAA8C,cAAA,KAAAic,SAAArZ,MAEA,IACA,EACA8f,aAAAA,GACA,YAAAtJ,cAAAvL,QAAA8F,GAAA,SAAAA,EAAA4O,WACA,EACA1B,aAAAA,GACA,YAAAzH,cAAAzK,MAAAgF,GAAA,UAAAA,EAAA4O,aAAA,IACA,EACA9C,eAAAA,GACA,YAAAtF,aAAA,KAAA5b,SACA,EACA0hB,aAAAA,GACA,YAAAR,kBAAA,KAAArF,eAAA,KAAA7b,SACA,GAEAokB,MAAA,CACAlD,eAAAA,CAAAmD,GACAA,GACA,KAAAxkB,UAAA,6BAEA,KAAAA,UAAA,WACA,EACA6hB,aAAAA,CAAA2C,GACAA,GACA,KAAAxkB,UAAA,kBAEA,KAAAA,UAAA,WACA,GAEAH,IAAAA,GACA,IAAA4kB,EAAA,IAAAC,EAAA,IAAArB,EAAA,GAAAsB,EAAA,GAQA,OAPAb,OAAAc,QAAAd,OAAAc,OAAAC,WAAA,GAAAf,OAAAc,OAAAE,YAAA,IAEAL,EAAAlX,KAAAjC,IAAA,GAAAwY,OAAAc,OAAAC,WAAAJ,GACAC,EAAAnX,KAAAjC,IAAA,GAAAwY,OAAAc,OAAAE,YAAAJ,GACArB,EAAA,GAAAS,OAAAc,OAAAC,WACAF,EAAA,GAAAb,OAAAc,OAAAE,aAEA,CACA5kB,UAAA,KAAApB,QAAAoB,UACAyhB,mBAAA,KAAA7iB,QAAAoB,UACAuhB,aAAA,EACAiB,SAAA,GACAC,SAAA,GACA9E,SAAA,KACA3J,SAAA,EACAuJ,QAAA,KAAA3e,QAAAyB,aACA+hB,iBAAA,GACAyC,YAAA,CACAC,sBAAA,EACAC,oBAAA,gCAAAR,YAAAC,UAAArB,SAAAsB,KAEAnC,gBAAA0C,EAAAA,aAAAC,YAEA,EACA,aAAAC,GACA,IAAAC,EAAAhhB,EAAAA,EAAAihB,MAAA,WACA,KAAAxmB,QAAAoB,WAAAmlB,IACA,KAAAnlB,UAAAmlB,GAGA,KAAAnlB,YACA,KAAAuhB,aAAA,GAKA,IAAA8D,EAAAlhB,EAAAA,EAAAihB,MAAA,eACA,4CAAAvhB,SAAAwhB,KACA,KAAAR,YAAAQ,OAAAA,GAIAL,EAAAA,aAAAM,SAAA,QACA,UACAN,EAAAA,aAAAO,gBACA,OAAAxhB,GACAA,aAAAoE,OAAA,yBAAApE,EAAAwZ,SACApZ,EAAAA,EAAAqhB,UAAA,KAAAzhB,EAEA,CACA,EACA0hB,OAAAA,GACA7B,OAAA8B,WAAAC,GAAA,KAAAC,gBAAAD,GACA/B,OAAAiC,QAAAC,aAAA,CAAA5O,OAAA,EAAAlX,UAAA,KAAAA,WAAA,IACA,KAAAkhB,gBACA,KAAAK,aACA,KAAAF,YAEA,EACAxhB,QAAA,IACAsE,EAAAA,EAAA4hB,WAAA,oCACA5hB,EAAAA,EAAA6hB,aAAA,cACA7hB,EAAAA,EAAA6hB,aAAA,uCAEArC,UAAAA,CAAAtiB,GACA,OAAAoiB,QACA,cAAApiB,EAAA4kB,UACA,UAAA5kB,EAAA4kB,UACA5kB,EAAA4kB,SAAAzhB,MAAA,0DAEA,EAEAuc,QAAAA,GACA,KAAAlF,YAGA,KAAA/b,UAAA,oBAFA,KAAAA,UAAA,qBAIA,EAEA8lB,eAAAA,CAAAD,GACAxhB,EAAAA,EAAAC,SAAAuhB,EAAAtS,SAAAsS,EAAAtS,MAAA6D,QACA,KAAA4H,QAAA,GACA,KAAAyC,aAAA,EACA,KAAAvN,SAAA,EACA,KAAAyO,SAAA,IAEAte,EAAAA,EAAAC,SAAAuhB,EAAAtS,SACAsS,EAAAtS,MAAArT,YACA,KAAAA,UAAA2lB,EAAAtS,MAAArT,WAEA,qBAAA2lB,EAAAtS,MAAAkO,cACA,KAAAA,YAAAoE,EAAAtS,MAAAkO,cAGA,KAAAA,aACA,KAAA2E,iBAAAP,EAAAtS,MAAApT,WAAA,EAEA,EAEA0iB,YAAAA,GACAiB,OAAAiC,QAAAM,UAAA,CAAAjP,OAAA,EAAAlX,UAAA,KAAAA,UAAAuhB,aAAA,WAAA6E,SAAA,IACA,KAAApmB,UAAA,KACA,KAAAuhB,aAAA,EACA,KAAArK,OACA,EAEAgK,aAAAA,GACA,KAAAmF,MAAA7I,WAAA,SAAA6I,MAAA7I,UAAA8I,KAAA1gB,QACA,KAAA2gB,cAEA,EACAA,YAAAA,GACA,QAAA5I,KAAA,KAAAyG,cACA,KAAAiC,MAAA7I,UAAAgJ,OAAA7I,EAAA8I,WAAA,KAAA9I,EAAAA,EAAA+I,SAAA,MAEA,KAAAnE,eACA,KAAA8D,MAAA7I,UAAAgJ,OAAA,qBAAAjE,cAAA,eAEA,KAAA8D,MAAA7I,UAAAgJ,OAAA,2CACA,KAAAG,WAAA,SAAAN,MAAA7I,UAAAoJ,gBAAA,IACA,EAEA/E,gBAAAA,CAAAI,GACA,KAAAtE,SAAAsE,EAAAtiB,IACA,EAEA,gBAAA0hB,GACA,KAAAxF,mBACA,KAAAqK,eAAA,KAAAjmB,WAAA,EAEA,EAEA,oBAAAimB,CAAAjmB,GAAA,EAAA4mB,GAAA,GACA,0BAAA7mB,YAAA,KAAAA,UAEA,YADAmE,EAAAA,EAAAJ,MAAA,iCAGA,IAAA/D,EAAA,KAAAA,UAKA,GAJAA,EAAAwE,MAAA,mBACAxE,EAAA,WAAAA,MAGAmE,EAAAA,EAAAuQ,MAAA1U,GAEA,YADAmE,EAAAA,EAAAJ,MAAA,6CAIA,MAAA1C,EAAA,IAAAqH,IAAA1I,GACA,cAAA4jB,OAAAC,SAAAC,UAAA,WAAAziB,EAAAyiB,UAAA,KAAAH,WAAAtiB,GAAA,CAKA,KAAA2S,SAAA,EACA,UACA,KAAAoJ,QAAApd,IACA,KAAAuW,UAAAvW,GACA6mB,GACAjD,OAAAiC,QAAAM,UAAA,CAAAjP,OAAA,EAAAlX,UAAA,KAAAA,UAAAuhB,aAAA,EAAAthB,aAAA,QAAAmmB,WAEAnmB,SACA,KAAAiiB,iBAIA/d,EAAAA,EAAAqhB,UAAA,UAAA5K,gBAEA,OAAA7W,GACAI,EAAAA,EAAAqhB,UAAA,KAAAzhB,EACA,CAEA,KAAAiQ,SAAA,GACA,KAAA6H,aAAA,KAAA4F,oBACA,KAAAF,aAAA,EAtBA,MAFApd,EAAAA,EAAAJ,MAAA,qJA0BA,EAEA,mBAAAme,CAAAvE,EAAA,MACA,KAAA3J,SAAA,EACA,IAAA8S,EAAA3iB,EAAAA,EAAAC,SAAAuZ,IAAA,kBAAAA,EAAAsG,UAAAtG,EAAAsG,UAAA,KACA,IACA,aAAA6C,QACAnJ,EAAAoJ,MAAA,KAAAvE,SAAA,KAAAC,eAEA,YAAAqE,EAAA,CACA,IAAAE,GAAA,EACA,QAAA7C,aACA,KAAAxG,SAAAsJ,YAAA,KAAA9C,kBAEA,CACA,MAAA+C,EAAAvJ,EAAAwJ,sBACAH,EAAAE,GAAAzjB,MAAAC,QAAAwjB,EAAAE,cAAAF,EAAAE,YAAAvjB,SAAA,gBACA,OACA8Z,EAAAoJ,MAAA,KAAAlC,YAAAmC,GACArJ,EAAA0J,YAAA,0BAAAljB,EAAAA,EAAA2I,KAAA,wDACA6Q,EAAA0J,YAAA,wBAAAljB,EAAAA,EAAAJ,MAAA,2FACA,MAEA6f,OAAAiC,QAAAM,UAAA,CAAAjP,OAAA,EAAAlX,UAAA,KAAAA,UAAAuhB,aAAA,EAAAthB,WAAA,WAAAmmB,SAAA,MAEA,OAAAriB,GAeA,MAdA,UAAA+iB,EACA3iB,EAAAA,EAAAJ,MAAA,sCAGA,SAAA+iB,GAAA,kBAAA/iB,EAAAvE,MAAA,kBAAAuE,EAAAujB,kBACAnjB,EAAAA,EAAAJ,MAAA,KAAAA,EAAAujB,kBAAAtD,QAAA,YAEA,SAAA8C,GAAA,iBAAA/iB,EAAAwZ,SAAA,gBAAAxZ,EAAAvE,KAIA2E,EAAAA,EAAAqhB,UAAA,KAAAzhB,GAHAI,EAAAA,EAAAJ,MAAA,0EAKA,KAAAiQ,SAAA,EAEA,CAEA,IAAAuT,QAAA,KAAA3J,WACA,QAAA7Z,KAAAwjB,EACApjB,EAAAA,EAAAqhB,UAAA,KAAAzhB,GAGA,KAAAiQ,SAAA,EAEA,KAAA0G,iBACAkJ,OAAAiC,QAAAM,UAAA,CAAAjP,OAAA,EAAAlX,UAAA,KAAAA,UAAAuhB,aAAA,WAAA6E,UAEA,EAEAA,OAAAA,CAAAoB,GAAA,EAAA5J,GAAA,GACA,IAAA6J,EAAA,IAAAC,gBAAA9D,OAAAC,SAAA8D,QACAH,IAAA,KAAA5oB,QAAAoB,UACAynB,EAAAG,IAAA,cAAA5nB,WAGAynB,EAAA/O,OAAA,UAEAkF,IAAA,KAAAhf,QAAAqB,UACAwnB,EAAAG,IAAA,eAEAhK,GAAA,KAAAhf,QAAAqB,UACAwnB,EAAAG,IAAA,cAGAH,EAAA/O,OAAA,YAEA,IAAAmP,EAAAJ,EAAA1D,WACA,OAAA8D,EACA,KAAAA,IAGA,GAEA,EAEAnG,kBAAAA,GACA,KAAA5hB,UACA,gBACA,gCACA,KAAAwS,cACA,CACA,CACA/P,SAAAlB,IACA,KAAArB,UAAAqB,GACA,IAGA,CACAkB,SAAAlB,GAAA,KAAAsV,aAAAtV,GACAqI,KAAA,QACAzI,MAAA,WAIA,ICnc0P,ICS1P,IAAI,IAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,SAAe,GAAiB,QCEhC,IACAzB,KAAA,oBACAC,OAAA,CAAAC,EAAAA,GACA0jB,WAAA,CACA0E,YAAA,GACAC,IAAAA,IAAA,6HACAC,gBAAAA,IAAA,gCACAC,gBAAAA,IAAA,iGACAC,UAAAA,IAAA,gCACAC,oBAAAA,IAAA,gCACAC,WAAAA,IAAA,gCACAC,gBAAAA,IAAA,kEACAC,gBAAAA,IAAA,kEACAC,gBAAAA,IAAA,gCACAC,mBAAAA,IAAA,gCACAC,iBAAAA,IAAA,gCACAC,aAAAA,IAAA,4EACAC,UAAAA,IAAA,gCACAC,eAAAA,IAAA,qPACAC,aAAAA,IAAA,4EACAC,sBAAAA,IAAA,+BACAC,gBAAAA,IAAA,gCACAC,iBAAAA,IAAA,2EACAC,WAAAA,IAAA,gCACAC,KAAAA,IAAA,gCACAC,gBAAAA,IAAA,gCACAC,eAAAA,IAAA,gCACAC,YAAAA,IAAA,iCAEA1pB,IAAAA,GACA,OACAsgB,OAAA,GACAhgB,UAAA,KAAArB,QAAAqB,UACAugB,SAAA,KACAvf,MAAA,KAEA,EACAikB,OAAAA,GACA,KAAA5F,8BAAAnb,EAAAA,EAAAihB,MAAA,eACA,KAAA5P,kBAAArR,EAAAA,EAAAihB,MAAA,YACA,KAAA3P,eAAAtR,EAAAA,EAAAihB,MAAA,cACA,KAAAlP,cAAA,CACAnW,UAAAoE,EAAAA,EAAAihB,MAAA,UACArR,QAAA5P,EAAAA,EAAAmlB,gBAAA,YAEA,KAAAnT,qBAAAhS,EAAAA,EAAAihB,MAAA,uBAEA,MAAAlQ,EAAA/Q,EAAAA,EAAAihB,MAAA,UACA,IAAAnQ,EAAA,MACA9Q,EAAAA,EAAAihB,MAAA,iBACAnQ,EAAA,WAEAC,GACA,KAAAQ,WAAA,CACAR,YACAD,gBACA9Q,EAAAA,EAAAmlB,gBAAA,SAIA,MAAA1L,EAAAzZ,EAAAA,EAAAihB,MAAA,YACA,MAAAxH,GAAA1I,EACA,KAAAjV,WAAA,EAEA,MAAA2d,IACA,KAAA3d,WAAA,GAGA,MAAA0U,EAAAxQ,EAAAA,EAAAwQ,QAEAA,EAAA4U,aAAAC,QAAArP,KAAAsP,IACA,KAAA7J,qBACA6J,KAGA9U,EAAA4U,aAAAjhB,SAAA6R,KAAA7R,IACA,KAAAuX,mBACAvX,KACAvE,IACA,KAAA8b,mBACA/W,QAAAE,OAAAjF,KAEA,EACA0hB,OAAAA,GACA,KAAAnjB,OAAA,iBAAAonB,WACA,KAAApnB,OAAA,qBAAAqnB,UACA,KAAArnB,OAAA,iBAAAsnB,WACA,KAAAtnB,OAAA,qBAAAunB,eACA,KAAAvnB,OAAA,sBAAAwnB,gBACA,KAAAxnB,OAAA,mBAAAynB,aACA,KAAAznB,OAAA,4BAAA0nB,sBACA,KAAA1nB,OAAA,yBAAAjD,mBACA,KAAAiD,OAAA,aAAA2nB,UACA,KAAA3nB,OAAA,YAAA4nB,GAAA,KAAA1J,SAAA0J,IACA,KAAA5nB,OAAA,gBAAA6nB,SACA,EACA9F,MAAA,CACAvI,YAAAA,CAAAwI,GACAA,IACA,KAAArkB,WAAA,GAEA,KAAAkqB,UACA,EACAlpB,KAAAA,CAAAmpB,GACAjjB,SAAAlG,MAAAmpB,CACA,GAEArH,SAAA,IACA5e,EAAAA,EAAAuf,SAAA,uBACAvf,EAAAA,EAAA6e,WAAA,qBACA7e,EAAAA,EAAAuf,SAAA,mCAEA7jB,QAAA,IACAsE,EAAAA,EAAA4hB,WAAA,2DACA5hB,EAAAA,EAAA6hB,aAAA,8EACA7hB,EAAAA,EAAA6hB,aAAA,qGACAiE,QAAAA,CAAAI,GACA,IAAAppB,EAAA,QAAArC,QAAAG,eAAA,KAAAH,QAAAO,UACAkrB,IACAppB,GAAA,KAAAopB,GAEA,KAAAppB,MAAAA,CACA,EACAkpB,QAAAA,GACA,KAAA3J,SAAA,IACA,EACAoJ,SAAAA,CAAA7pB,EAAA4J,EAAA,GAAAC,EAAA,GAAAtF,EAAA,MACA,KAAA2b,OAAA1U,KAAA,CACAxL,YACA4J,QACAC,SACAtF,GAAAA,GAAA,SAAAgmB,KAAAC,QAEA,KAAAJ,UACA,EACA5J,SAAAA,CAAAL,GACA,IAAA5b,EAAAH,EAAAA,EAAAC,SAAA8b,GAAAA,EAAA5b,GAAA4b,EACA9G,EAAA,KAAA6G,OAAA5G,WAAAmR,GAAAA,EAAAlmB,KAAAA,IACA,qBAAA8U,IACA,KAAA6G,OAAArJ,OAAAwC,EAAA,GACA,KAAA+Q,WAEA,EACAN,aAAAA,CAAA5oB,EAAA6X,EAAA2R,GACA,KAAAb,UAAA,aAAA3oB,QAAA6X,OAAA2R,eACA,EACAprB,iBAAAA,GACA,KAAAuqB,UAAA,iBACA,EACAF,SAAAA,CAAA3lB,GACA,KAAA6lB,UAAA,cAAA7lB,SACA,EACA,oBAAA+lB,CAAAxlB,GACA,IACA,IAAAgY,QAAA,KAAAkC,mBAAAla,GACA,KAAAslB,UAAA,mBAAAtN,cACA,OAAAvY,GACAC,QAAA4K,IAAA7K,GACAI,EAAAA,EAAAJ,MAAA,kDAAAO,EAAA,KACA,CACA,EACA,iBAAAylB,CAAApa,GACA,IACA,KAAAia,UAAA,gBACAja,cAAA,KAAA+O,YAAA/O,IAEA,OAAA5L,GACAC,QAAA4K,IAAA7K,GACAI,EAAAA,EAAAJ,MAAA,0CACA,CACA,EACA,cAAA4lB,CAAAhqB,EAAAsB,GACA,KAAA2oB,UAAA,aAAAjqB,OAAAsB,SACA,EACA+oB,oBAAAA,CAAAU,EAAA9hB,GACA,KAAAghB,UAAA,yBAAAc,YAAA9hB,UACA,ICtM0O,MCQ1O,IAAI,IAAY,OACd,GACAtK,EACAiB,GACA,EACA,KACA,KACA,MAIF,SAAe,GAAiB,QCnBhC,IAEC,E,2BCyCD,IAAI,IAAIC,MAlCRsW,EAAAA,GAAIqE,IAAIwQ,EAAAA,IACR7U,EAAAA,GAAIqE,IAAIyQ,MAGR9U,EAAAA,GAAI+U,UAAUC,SAASC,YAAc,WACpC,IAAIxN,EAAU5a,UAAU,GACpB4a,IAAY/e,KAAKwsB,cACpBxsB,KAAKwsB,YAAczN,EACnB/e,KAAKuF,SAASpB,WACdsoB,YAAW,IAAMzsB,KAAKwsB,YAAc,MAAM,KAE5C,EAEAlV,EAAAA,GAAI2T,OAAOyB,eAAgB,EAC3BpV,EAAAA,GAAI2T,OAAO0B,aAAe,SAAUC,EAAKC,EAAIjM,GAE5C,GADApb,QAAQD,MAAMqnB,EAAKhM,IACdiM,IAAOA,EAAGP,SACd,OAGD,IAAIvN,EACA6N,aAAejjB,MAClBoV,EAAU6N,EAAI7N,QAES,kBAAR6N,IACf7N,EAAU6N,GAGP7N,GACH8N,EAAGP,SAASC,YAAYxN,EAAS,QAASnC,EAAAA,EAAO9a,gBAEnD,EACAwV,EAAAA,GAAI+U,UAAUjsB,QAAUwc,EAAAA,EAERkQ,GACfxV,EAAAA,GAAIvG,OAAO/P,GAAM8rB,GAAQ9rB,KAG1B,MAAM+rB,GAAM,IAAIzV,EAAAA,GAAI,CACnB0V,MAAK,EACLltB,OAAQkmB,GAAKA,EAAEiH,MACbC,OAAO,QAEV9H,OAAO+H,iBAAiB,sBAAsB,SAASviB,GACtDpF,QAAQ8I,KAAK1D,IACe,kBAAjBA,EAAMwiB,QAAuBxiB,EAAMwiB,kBAAkBzjB,QAC/DojB,GAAIT,SAASC,YAAY3hB,EAAMwiB,OAAQ,QAASxQ,EAAAA,EAAO9a,iBAExD8I,EAAMgY,iBACNhY,EAAMyiB,iBACP,G,yECxDe,MAAMrc,EAEpB,oBAAOC,CAAcM,EAAGG,EAAkB,CAAC,GAC1C,IAAK/L,EAAAA,EAAMC,SAAS2L,GACnB,OAAO,EAIR,IAAI+b,EAAoBvlB,OAAOyI,OAAOkB,GACtC,GAAI4b,EAAkBjoB,SAASkM,EAAEzL,IAChC,OAAO,EAIR,IAAKH,EAAAA,EAAMC,SAAS2L,EAAEgc,WAAahc,EAAEgc,QAAQC,OAC5C,OAAO,EAGR,IAAIC,EAAe,CAAC,SAAU,UAAW,OACrCF,EAAU,IAAIG,EAAAA,cAAcnc,EAAEgc,QAAQC,QAC1C,IAAKC,EAAapoB,SAASkoB,EAAQI,kBAClC,OAAO,EAIR,GAAI1oB,MAAMC,QAAQqM,EAAEyI,YACnB,IAAI,IAAIzN,KAAKgF,EAAEyI,WAAY,CAC1B,IAAI4M,EAAQrV,EAAEyI,WAAWzN,GACzB,GAAIqa,EAAMgH,SACT,SAED,IAAKhH,EAAM4G,OACV,OAAO,EAER,IAAIA,EAAS,IAAIE,EAAAA,cAAc9G,EAAM4G,QACrC,IAAKC,EAAapoB,SAASmoB,EAAOG,kBACjC,OAAO,CAET,CAKD,OAAO,CACR,CAEA,cAAOE,CAAQC,GAId,GAHMA,aAAoBC,EAAAA,kBACzBD,EAAW,IAAIC,EAAAA,gBAAgBD,IAEE,UAA9BA,EAASH,kBAAgChoB,EAAAA,EAAMC,SAASkoB,EAASN,OAAOQ,OAAQ,CACnF,IAAIC,EAAU,IAAIF,EAAAA,gBAAgBD,EAASN,OAAOQ,OAClD,OAAOC,EAAQC,UAChB,CAED,E,qICnDD,MAAMvoB,UAAcwoB,EAAAA,EAEnB,YAAOhY,GACN,OAAO0I,EAAAA,OAAOuP,YAAYjY,KAC3B,CAEA,iBAAOkY,CAAWC,EAAS7lB,GAC1B,OAAOoW,EAAAA,OAAOuP,YAAYC,WAAWC,EAAS7lB,EAC/C,CAEA,6BAAO8lB,CAAuB7oB,GAC7B,GAAIC,EAAMC,SAASF,IAAST,MAAMC,QAAQQ,EAAKyN,OAAQ,CACtD,IAAIqb,EAAO9oB,EAAKyN,MAAMtB,MAAK2c,GAAQ7oB,EAAMC,SAAS4oB,IAA6B,kBAAbA,EAAK9J,KAAoB9H,EAAAA,EAAOva,qBAAqBgD,SAASmpB,EAAK9J,IAAInR,iBACzI,GAAIib,EACH,OAAOA,CAET,CACA,OAAO,IACR,CAEA,4BAAOC,CAAsBC,GAC5B,MAAuB,kBAAZA,GAGJ9R,EAAAA,EAAOva,qBAAqBgD,SAASqpB,EAAQnb,cACrD,CAEA,kBAAOpH,CAAY+V,GAClB,OAAIjd,MAAMC,QAAQgd,GACVA,EAAMjb,KAAI6F,GAAUnH,EAAMwG,YAAYW,KAGrB,kBAAVoV,GAA8C,QAAxBA,EAAM3O,cAA0BpN,OAAOkB,IAAM6a,CAEnF,CAEA,4BAAOyM,CAAsBC,GAC5B,GAAsB,kBAAXA,EACV,OAAO,KAER,OAAQA,EAAOrb,eACd,IAAK,UACL,IAAK,SACJ,OAAO,EACR,QACC,OAAO,EAEV,CAEA,gBAAOyT,CAAU6F,EAAItnB,EAAOspB,GAC3BrpB,QAAQD,MAAMA,GACd,IAAIupB,EAAU,GACVrsB,EAAQ,KACRsc,EAAU8P,EACVlpB,EAAMC,SAASL,IAAmC,kBAAlBA,EAAMwZ,SAExCtc,EADG8C,EAAMd,KAAO,EACR,UAAYc,EAAMd,KAGlBoqB,EAET9P,EAAUxZ,EAAMwZ,QAEhB+P,EAAQ/hB,KAAK,CACZgiB,KAAM,eACNC,OAAQA,IAAMnC,EAAGlpB,MAAMO,MAAM,YAAaqB,MAGlB,kBAAVA,IACfwZ,EAAUxZ,EACV9C,EAAQosB,GAETC,EAAQ/hB,KAAK,CACZgiB,KAAM,OACNC,OAAQC,IACP,IAAIC,EAAUrC,EAAGsC,WAAWpQ,GACxBqQ,EAASH,EAAMhE,OAAO6D,QAAQjd,MAAKwd,GAAoB,SAAbA,EAAIN,OAC9CK,IACHA,EAAOL,KAAOG,EAAU,YAAc,WACvC,IAGF,IAAII,EAAgB,CACnBR,WAEDjC,EAAGP,SAASC,YAAYxN,EAAStc,EAAOsF,OAAOC,OAAO,CAAC,EAAG6kB,EAAGzsB,QAAQ0B,gBAAiBwtB,GACvF,CACA,YAAO/pB,CAAMsnB,EAAI9N,EAAStc,EAAQ,MACjCoqB,EAAGP,SAASC,YAAYxN,EAAStc,EAAOoqB,EAAGzsB,QAAQ0B,gBACpD,CACA,WAAOwM,CAAKue,EAAI9N,EAAStc,EAAQ,MAChCoqB,EAAGP,SAASiD,QAAQxQ,EAAStc,EAAOoqB,EAAGzsB,QAAQ0B,gBAChD,CACA,WAAO8e,CAAKiM,EAAI9N,EAAStc,EAAQ,MAChCoqB,EAAGP,SAAS1L,KAAK7B,EAAStc,EAAOoqB,EAAGzsB,QAAQ0B,gBAC7C,CACA,SAAO0tB,CAAG3C,EAAI9N,EAAStc,EAAQ,MAC9BoqB,EAAGP,SAAS4C,QAAQnQ,EAAStc,EAAOoqB,EAAGzsB,QAAQ0B,gBAChD,CACA,cAAO2tB,CAAQ5C,EAAI9N,EAAS+P,EAAU,IACrC,IAAIQ,EAAgB,CACnBR,QAASA,GAEVjC,EAAGP,SAASmD,QAAQ1Q,EAAS,KAAMhX,OAAOC,OAAO,CAAC,EAAG6kB,EAAGzsB,QAAQ0B,gBAAiBwtB,GAClF,CAEA,qBAAOI,CAAeC,GACrB,OAAOA,EAAKC,SAAyC,SAA9BD,EAAKC,QAAQC,SAAS7uB,IAC9C,CAEA,yBAAO8uB,CAAmBjtB,GAOzB,OALAA,EAAMA,EAAIktB,UAAU,GAAyB,GAArBltB,EAAImV,QAAQ,KAAYnV,EAAIuE,OAAOvE,EAAImV,QAAQ,MAEvEnV,EAAMA,EAAIktB,UAAU,GAAyB,GAArBltB,EAAImV,QAAQ,KAAYnV,EAAIuE,OAAOvE,EAAImV,QAAQ,MAEvEnV,EAAMA,EAAIktB,UAAUltB,EAAImtB,YAAY,KAAO,EAAGntB,EAAIuE,QAC3CvE,CACR,CAEA,mBAAOmG,CAAaP,EAAUQ,GAC7B,GAAIR,EAASpD,SAAS,MAAwB,kBAAT4D,EACpC,OAAOR,EAER,IAAKQ,EAAK5D,SAAS,KAClB,OAAOoD,EAAW,IAAMQ,EAGzB,IAAIgnB,EAAM,KACV,IACC,IAAI5c,EAAOC,EAAAA,MAAkBrK,GAC7B,OAAOoK,EAAKpK,KAAKsK,eAChB,IAAK,mBACL,IAAK,kBACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,YACL,IAAK,aACL,IAAK,WACL,IAAK,YACJ0c,EAAMhnB,EAAKwK,MAAM,KAAK,GACtB,MACD,IAAK,aACJwc,EAAM,MACN,MACD,IAAK,qBACL,IAAK,uBACJA,EAAM,KACN,MAGH,CAAE,MAAO1qB,GAAQ,CAEjB,OAAY,OAAR0qB,EACIxnB,EAAW,IAAMwnB,EAGjBxnB,CAET,CAEA,mBAAOynB,CAAartB,EAAKstB,EAAWC,GACnC,IAAIC,EAAS,IAAInmB,IAAIrH,GACjBwmB,EAAQ,IAAIH,gBAAgBmH,EAAOlH,QAGvC,OAFAE,EAAMD,IAAI+G,EAAWC,GACrBC,EAAOlH,OAASE,EAAM9D,WACf8K,EAAO9K,UACf,CAEA,sBAAOuF,CAAgBwF,EAAQC,EAAM,KACpCD,GAAUC,EACV,MAAMC,EAAY,IAAItH,gBAAgB9D,OAAOC,SAAS8D,QACtD,IAAIF,EAAS,CAAC,EACd,IAAI,IAAKjO,EAAKkH,KAAUsO,EACnBxV,EAAInR,WAAWymB,KAClBrH,EAAOjO,EAAI+U,UAAUO,EAAOlpB,SAAW8a,GAGzC,OAAO+G,CACR,CAEA,YAAOrC,CAAM5lB,GACZ,MAAMwvB,EAAY,IAAItH,gBAAgB9D,OAAOC,SAAS8D,QACtD,GAAIqH,EAAU7R,IAAI3d,GACjB,OAAOwvB,EAAUnsB,IAAIrD,EAGvB,CAEA,0BAAOyvB,CAAoBC,GAC1B,IAAKA,EACJ,OAAO,KAEHzrB,MAAMC,QAAQwrB,KAClBA,EAAS,CAACA,IAEX,IAAIC,EAAY,CAACC,OAAQ,MAAOC,MAAO,OACvC,OAAQH,EAAO7e,MAAK1D,GAAQA,EAAKyiB,MAAQD,EAAUC,OAASziB,EAAK0iB,MAAQF,EAAUE,OACpF,CACA,mBAAO7S,CAAarZ,GACnB,IAAKM,MAAMC,QAAQP,GAClB,OAAO,KAER,IAAImsB,EAAOnsB,EAAOyC,QAAU,EACtB,IAAIyP,EAAM,CACfka,KAAMpsB,EAAO,GACbqsB,KAAMrsB,EAAOmsB,EAAO,EAAI,GACxBF,MAAOjsB,EAAO,GACdksB,MAAOlsB,EAAOmsB,EAAO,EAAI,IAM1B,OAJIA,IACHja,EAAIoa,KAAOtsB,EAAO,GAClBkS,EAAIqa,OAASvsB,EAAO,IAEdkS,CACR,CACA,eAAO6E,CAASyV,EAAGC,GAClB,OAAOjD,EAAAA,EAASkD,6BAA6BF,EAAErrB,GAAIsrB,EAAEtrB,GACtD,CAEA,YAAOwrB,CAAMC,EAAOC,GACnB,OAAIA,EAAMD,EACF,GAEDtsB,MAAMwJ,KAAK,CAACrH,OAAQ,EAAIoqB,EAAMD,IAAQ,CAACviB,EAAGzC,IAAMglB,EAAQhlB,GAChE,CAEA,eAAOklB,CAASrqB,EAAQsqB,EAAe,GACtC,OAAItqB,EAAS,EACL,GAEDnC,MAAMwJ,KAAK,CAACrH,WAAS,IAAMsqB,GACnC,CAEA,eAAOC,CAASlqB,EAAKL,EAAQsqB,EAAe,GAC3C,OAAItqB,EAAS,EACL,GAGJA,EAASK,EAAIL,OACTK,EAAI+J,OAAO7L,EAAM8rB,SAASrqB,EAASK,EAAIL,OAAQsqB,IAE9CtqB,EAASK,EAAIL,OACdK,EAAImqB,MAAM,EAAGxqB,GAGbK,CAET,CAGA,iBAAOoqB,CAAWV,EAAGC,GACpBD,EAAIA,EAAE1d,MAAM,KACZ2d,EAAIA,EAAE3d,MAAM,KAEZ,IADA,IAAIkR,EAAI9V,KAAKjC,IAAIukB,EAAE/pB,OAAQgqB,EAAEhqB,QACpBmF,EAAI,EAAGA,EAAIoY,EAAGpY,GAAK,EAAG,CAC9B,KAAMA,KAAK4kB,GACV,OAAQ,EAEJ,KAAM5kB,KAAK6kB,GACf,OAAO,EAEH,GAAID,EAAE5kB,GAAGtG,cAAgBmrB,EAAE7kB,GAAGtG,cAClC,OAAO,EAEH,GAAIkrB,EAAE5kB,GAAGtG,cAAgBmrB,EAAE7kB,GAAGtG,cAClC,OAAQ,CAEV,CACA,OAAIkrB,EAAE/pB,OAASgqB,EAAEhqB,QACR,EAEA+pB,EAAE/pB,OAASgqB,EAAEhqB,OACd,EAED,CACR,CAEA,kBAAO0qB,GACN,OAAOjjB,KAAKkjB,SAASxM,SAAS,IAAIrf,OAAO,EAAG,EAC7C,CAEA,sBAAO8rB,CAAgB9P,GACtB,MAAqB,kBAAVA,EACHA,EAECA,EAAMrY,WAAW,KAClB,kBAAkBqY,SAEP,YAAVA,EACD,uBAAuBA,SAGvBA,CAET,CAEA,uBAAO+P,CAAiBpb,EAAKqb,GAAW,GACvC,IAAIzvB,EACA0vB,EAAQxsB,EAAMC,SAASiR,GAC3B,GAAmB,kBAARA,EACVpU,EAAQoU,OAEJ,GAAIA,aAAe0B,EAAAA,YACvB9V,EAAQoU,EAAI/Q,QAER,GAAI+Q,aAAeub,EAAAA,SACvB3vB,EAAQoU,EAAIwb,UAER,GAAIF,GAAqC,kBAArBtb,EAAI3D,aAC5BzQ,EAAQoU,EAAI/Q,QAER,GAAIqsB,GAAStb,EAAIpU,MACrBA,EAAQoU,EAAIpU,WAER,GAAI0vB,GAAStb,EAAI/Q,GAAI,CACzB,IAAIA,EAAK,IAAIO,OAAOwQ,EAAI/Q,IAEvBrD,EADGqD,EAAGsB,OAAS,GACPyP,EAAI/Q,GAAGI,OAAO,EAAG,GAAK,IAAM2Q,EAAI/Q,GAAGI,QAAQ,GAG3C2Q,EAAI/Q,GAEbrD,EAAQ,IAAMA,CACf,MAECA,EAAQ,UAET,GAAIyvB,EAAU,CACb,IAAIjpB,EACoB,kBAAbipB,EACVjpB,EAAOipB,EAECrb,aAAewB,EAAAA,IACvBpP,EAAO,MAEC4N,aAAeyB,EAAAA,QACvBrP,EAAO,UAEC4N,aAAe0B,EAAAA,YACvBtP,EAAO,UAEC4N,aAAeub,EAAAA,SACvBnpB,EAAO,OAECkpB,GAAqC,kBAArBtb,EAAI3D,cAA0C,eAAb2D,EAAI5N,OAC7DA,EAAO4N,EAAI5N,MAGRA,IACHxG,EAAQ,GAAGA,MAAUwG,KAEvB,CACA,OAAOxG,CACR,CAEA,sBAAO6vB,CAAgB9E,GACtB,IAAI+E,EAAW1b,IACd,IAAKA,GAAsB,kBAARA,EAClB,OAAOA,EAER,IAAI,IAAImE,KAAOnE,EAAK,CACnB,IAAIqL,EAAQrL,EAAImE,GAChB,GAAIrV,EAAMC,SAASsc,IAAgC,kBAAfA,EAAMsQ,MAAqBtQ,EAAMsQ,KAAKxsB,MAAM,mBAAhF,CACC,IAAIysB,EAAQvQ,EAAMsQ,KAAK/e,MAAM,KAAKme,MAAM,GACpC9mB,EAAS0iB,EACb,MAAOiF,EAAMrrB,OAAQ,CACpB,IAAIsrB,EAAeD,EAAME,QAEzB,GADA7nB,EAASA,EAAO4nB,GACM,qBAAX5nB,EACV,KAEF,CACA+L,EAAImE,GAAOlQ,CAEZ,MAEA+L,EAAImE,GAAOuX,EAASrQ,EACrB,CACA,OAAOrL,CAAG,EAEX,OAAO0b,EAAS/E,EACjB,CACA,uBAAOnX,CAAiBlF,GACvB,MAAMyhB,EAAMzhB,EAAQ6G,QAAQ,KAC5B,GAAI4a,EAAM,EACT,MAAO,CAACzhB,OAAS0hB,GAEb,CACJ,MAAM/sB,EAAKqL,EAAQ4e,UAAU,EAAG6C,GAC1Bvd,EAAYlE,EAAQ4e,UAAU6C,EAAM,GAC1C,MAAO,CAAC9sB,EAAIuP,EACb,CACD,CACA,8BAAOkC,CAAwB7R,GAC9B,IAAIsV,EAAM,wBACV,IAAKrV,EAAMC,SAASF,KAAUA,EAAKsV,GAClC,OAAO,KAER,IAAInE,EAAMnR,EAAKsV,GACf,GAAI/V,MAAMC,QAAQ2R,GAAM,CACvB,KAAIA,EAAIzP,OAAS,GAIhB,OAAO,KAHPyP,EAAMA,EAAI,EAKZ,CACA,OAAIlR,EAAMC,SAASiR,IAAuB,WAAfA,EAAIvB,QAAuB3P,EAAMC,SAASiR,EAAIuL,YACjEvL,EAAIuL,WAGJ,IAET,CAEA,qBAAO0Q,CAAengB,GACrB,OAAO8c,QAAQ,yBAAyB9c,EAAMvL,oHAC/C,EAIDzB,EAAMuf,SAAWA,EAAAA,GACjBvf,EAAM6e,WAAaA,EAAAA,GACnB7e,EAAM6hB,aAAeA,EAAAA,GACrB7hB,EAAM4hB,WAAaA,EAAAA,GAEnB,S,yBCnbA,GAAgB,qBAANwL,EAAmB,CAAE,IAAIC,EAAI,IAAIrpB,MAAM,0BAAwD,MAA7BqpB,EAAEvuB,KAAO,mBAA0BuuB,CAAG,CAElHC,EAAOC,QAAUH,C,w9DCDbI,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBR,IAAjBS,EACH,OAAOA,EAAaJ,QAGrB,IAAID,EAASE,EAAyBE,GAAY,CACjDvtB,GAAIutB,EACJ7pB,QAAQ,EACR0pB,QAAS,CAAC,GAUX,OANAK,EAAoBF,GAAUG,KAAKP,EAAOC,QAASD,EAAQA,EAAOC,QAASE,GAG3EH,EAAOzpB,QAAS,EAGTypB,EAAOC,OACf,CAGAE,EAAoBK,EAAIF,E,MC5BxB,IAAIG,EAAW,GACfN,EAAoBO,EAAI,CAAC7oB,EAAQ8oB,EAAUpQ,EAAIqQ,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASxnB,EAAI,EAAGA,EAAImnB,EAAStsB,OAAQmF,IAAK,CAGzC,IAFA,IAAKqnB,EAAUpQ,EAAIqQ,GAAYH,EAASnnB,GACpCynB,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAASxsB,OAAQ6sB,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAa9rB,OAAO0I,KAAK2iB,EAAoBO,GAAGO,OAAOlZ,GAASoY,EAAoBO,EAAE3Y,GAAK4Y,EAASK,MAC9IL,EAASxb,OAAO6b,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbN,EAAStb,OAAO7L,IAAK,GACrB,IAAI4nB,EAAI3Q,SACEqP,IAANsB,IAAiBrpB,EAASqpB,EAC/B,CACD,CACA,OAAOrpB,CAnBP,CAJC+oB,EAAWA,GAAY,EACvB,IAAI,IAAItnB,EAAImnB,EAAStsB,OAAQmF,EAAI,GAAKmnB,EAASnnB,EAAI,GAAG,GAAKsnB,EAAUtnB,IAAKmnB,EAASnnB,GAAKmnB,EAASnnB,EAAI,GACrGmnB,EAASnnB,GAAK,CAACqnB,EAAUpQ,EAAIqQ,EAqBjB,C,WCzBdT,EAAoBgB,EAAKnB,IACxB,IAAIoB,EAASpB,GAAUA,EAAOqB,WAC7B,IAAOrB,EAAO,WACd,IAAM,EAEP,OADAG,EAAoB3Y,EAAE4Z,EAAQ,CAAElD,EAAGkD,IAC5BA,CAAM,C,WCNd,IACIE,EADAC,EAAWzsB,OAAO0sB,eAAkB5d,GAAS9O,OAAO0sB,eAAe5d,GAASA,GAASA,EAAa,UAQtGuc,EAAoBnN,EAAI,SAAS/D,EAAOwS,GAEvC,GADU,EAAPA,IAAUxS,EAAQliB,KAAKkiB,IAChB,EAAPwS,EAAU,OAAOxS,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPwS,GAAaxS,EAAMoS,WAAY,OAAOpS,EAC1C,GAAW,GAAPwS,GAAoC,oBAAfxS,EAAMzC,KAAqB,OAAOyC,CAC5D,CACA,IAAIyS,EAAK5sB,OAAOgS,OAAO,MACvBqZ,EAAoBe,EAAEQ,GACtB,IAAIC,EAAM,CAAC,EACXL,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIK,EAAiB,EAAPH,GAAYxS,EAAyB,iBAAX2S,KAAyBN,EAAevc,QAAQ6c,GAAUA,EAAUL,EAASK,GACxH9sB,OAAO+sB,oBAAoBD,GAASxoB,SAAS2O,GAAS4Z,EAAI5Z,GAAO,IAAOkH,EAAMlH,KAI/E,OAFA4Z,EAAI,WAAa,IAAM,EACvBxB,EAAoB3Y,EAAEka,EAAIC,GACnBD,CACR,C,WCxBAvB,EAAoB3Y,EAAI,CAACyY,EAAS5Z,KACjC,IAAI,IAAI0B,KAAO1B,EACX8Z,EAAoB2B,EAAEzb,EAAY0B,KAASoY,EAAoB2B,EAAE7B,EAASlY,IAC5EjT,OAAOitB,eAAe9B,EAASlY,EAAK,CAAEia,YAAY,EAAM5wB,IAAKiV,EAAW0B,IAE1E,C,WCNDoY,EAAoB8B,EAAI,CAAC,EAGzB9B,EAAoBJ,EAAKmC,GACjB7qB,QAAQwG,IAAI/I,OAAO0I,KAAK2iB,EAAoB8B,GAAGE,QAAO,CAAC9V,EAAUtE,KACvEoY,EAAoB8B,EAAEla,GAAKma,EAAS7V,GAC7BA,IACL,I,WCNJ8T,EAAoBiC,EAAKF,GAEjB,MAAQA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,YAAYA,GAAW,K,WCFhwE/B,EAAoBkC,SAAYH,GAExB,OAASA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,YAAYA,GAAW,M,WCHliD/B,EAAoBmC,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOx1B,MAAQ,IAAIy1B,SAAS,cAAb,EAChB,CAAE,MAAOzC,GACR,GAAsB,kBAAX5N,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,WCAxBgO,EAAoB2B,EAAI,CAACle,EAAK6e,IAAU3tB,OAAOskB,UAAUsJ,eAAenC,KAAK3c,EAAK6e,E,WCAlF,IAAIE,EAAa,CAAC,EACdC,EAAoB,sBAExBzC,EAAoBzO,EAAI,CAAC9hB,EAAKizB,EAAM9a,EAAKma,KACxC,GAAGS,EAAW/yB,GAAQ+yB,EAAW/yB,GAAKkK,KAAK+oB,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAWnD,IAAR7X,EAEF,IADA,IAAIib,EAAUttB,SAASutB,qBAAqB,UACpC3pB,EAAI,EAAGA,EAAI0pB,EAAQ7uB,OAAQmF,IAAK,CACvC,IAAI4pB,EAAIF,EAAQ1pB,GAChB,GAAG4pB,EAAEC,aAAa,QAAUvzB,GAAOszB,EAAEC,aAAa,iBAAmBP,EAAoB7a,EAAK,CAAE+a,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,EACbD,EAASptB,SAASC,cAAc,UAEhCmtB,EAAOM,QAAU,QACjBN,EAAOh0B,QAAU,IACbqxB,EAAoBvrB,IACvBkuB,EAAOhtB,aAAa,QAASqqB,EAAoBvrB,IAElDkuB,EAAOhtB,aAAa,eAAgB8sB,EAAoB7a,GAExD+a,EAAO1jB,IAAMxP,GAEd+yB,EAAW/yB,GAAO,CAACizB,GACnB,IAAIQ,EAAmB,CAACC,EAAM3rB,KAE7BmrB,EAAOhrB,QAAUgrB,EAAOprB,OAAS,KACjC6rB,aAAaz0B,GACb,IAAI00B,EAAUb,EAAW/yB,GAIzB,UAHO+yB,EAAW/yB,GAClBkzB,EAAOW,YAAcX,EAAOW,WAAWrtB,YAAY0sB,GACnDU,GAAWA,EAAQpqB,SAASmX,GAAQA,EAAG5Y,KACpC2rB,EAAM,OAAOA,EAAK3rB,EAAM,EAExB7I,EAAU0qB,WAAW6J,EAAiBK,KAAK,UAAM9D,EAAW,CAAE5pB,KAAM,UAAW4B,OAAQkrB,IAAW,MACtGA,EAAOhrB,QAAUurB,EAAiBK,KAAK,KAAMZ,EAAOhrB,SACpDgrB,EAAOprB,OAAS2rB,EAAiBK,KAAK,KAAMZ,EAAOprB,QACnDqrB,GAAcrtB,SAASiuB,KAAKztB,YAAY4sB,EApCkB,CAoCX,C,WCvChD3C,EAAoBe,EAAKjB,IACH,qBAAX2D,QAA0BA,OAAOC,aAC1C/uB,OAAOitB,eAAe9B,EAAS2D,OAAOC,YAAa,CAAE5U,MAAO,WAE7Dna,OAAOitB,eAAe9B,EAAS,aAAc,CAAEhR,OAAO,GAAO,C,WCL9DkR,EAAoB2D,IAAO9D,IAC1BA,EAAO+D,MAAQ,GACV/D,EAAOgE,WAAUhE,EAAOgE,SAAW,IACjChE,E,WCHRG,EAAoB7hB,EAAI,G,WCAxB,GAAwB,qBAAb5I,SAAX,CACA,IAAIuuB,EAAmB,CAAC/B,EAASgC,EAAUC,EAAQ7sB,EAASC,KAC3D,IAAI6sB,EAAU1uB,SAASC,cAAc,QAErCyuB,EAAQ3S,IAAM,aACd2S,EAAQpuB,KAAO,WACXmqB,EAAoBvrB,KACvBwvB,EAAQC,MAAQlE,EAAoBvrB,IAErC,IAAI0vB,EAAkB3sB,IAGrB,GADAysB,EAAQtsB,QAAUssB,EAAQ1sB,OAAS,KAChB,SAAfC,EAAM3B,KACTsB,QACM,CACN,IAAIitB,EAAY5sB,GAASA,EAAM3B,KAC3BwuB,EAAW7sB,GAASA,EAAMC,QAAUD,EAAMC,OAAOxC,MAAQ8uB,EACzDvK,EAAM,IAAIjjB,MAAM,qBAAuBwrB,EAAU,cAAgBqC,EAAY,KAAOC,EAAW,KACnG7K,EAAI5rB,KAAO,iBACX4rB,EAAInoB,KAAO,wBACXmoB,EAAI3jB,KAAOuuB,EACX5K,EAAI5B,QAAUyM,EACVJ,EAAQX,YAAYW,EAAQX,WAAWrtB,YAAYguB,GACvD7sB,EAAOoiB,EACR,GAWD,OATAyK,EAAQtsB,QAAUssB,EAAQ1sB,OAAS4sB,EACnCF,EAAQhvB,KAAO8uB,EAGXC,EACHA,EAAOV,WAAWgB,aAAaL,EAASD,EAAOO,aAE/ChvB,SAASiuB,KAAKztB,YAAYkuB,GAEpBA,CAAO,EAEXO,EAAiB,CAACvvB,EAAM8uB,KAE3B,IADA,IAAIU,EAAmBlvB,SAASutB,qBAAqB,QAC7C3pB,EAAI,EAAGA,EAAIsrB,EAAiBzwB,OAAQmF,IAAK,CAChD,IAAIsV,EAAMgW,EAAiBtrB,GACvBurB,EAAWjW,EAAIuU,aAAa,cAAgBvU,EAAIuU,aAAa,QACjE,GAAe,eAAZvU,EAAI6C,MAAyBoT,IAAazvB,GAAQyvB,IAAaX,GAAW,OAAOtV,CACrF,CACA,IAAIkW,EAAoBpvB,SAASutB,qBAAqB,SACtD,IAAQ3pB,EAAI,EAAGA,EAAIwrB,EAAkB3wB,OAAQmF,IAAK,CAC7CsV,EAAMkW,EAAkBxrB,GACxBurB,EAAWjW,EAAIuU,aAAa,aAChC,GAAG0B,IAAazvB,GAAQyvB,IAAaX,EAAU,OAAOtV,CACvD,GAEGmW,EAAkB7C,GACd,IAAI7qB,SAAQ,CAACC,EAASC,KAC5B,IAAInC,EAAO+qB,EAAoBkC,SAASH,GACpCgC,EAAW/D,EAAoB7hB,EAAIlJ,EACvC,GAAGuvB,EAAevvB,EAAM8uB,GAAW,OAAO5sB,IAC1C2sB,EAAiB/B,EAASgC,EAAU,KAAM5sB,EAASC,EAAO,IAIxDytB,EAAqB,CACxB,KAAM,GAGP7E,EAAoB8B,EAAEgD,QAAU,CAAC/C,EAAS7V,KACzC,IAAI6Y,EAAY,CAAC,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,GACnwBF,EAAmB9C,GAAU7V,EAASvS,KAAKkrB,EAAmB9C,IACzB,IAAhC8C,EAAmB9C,IAAkBgD,EAAUhD,IACtD7V,EAASvS,KAAKkrB,EAAmB9C,GAAW6C,EAAe7C,GAAS1V,MAAK,KACxEwY,EAAmB9C,GAAW,CAAC,IAC5BnC,IAEH,aADOiF,EAAmB9C,GACpBnC,CAAC,IAET,CA1E0C,C,WCK3C,IAAIoF,EAAkB,CACrB,KAAM,GAGPhF,EAAoB8B,EAAEjB,EAAI,CAACkB,EAAS7V,KAElC,IAAI+Y,EAAqBjF,EAAoB2B,EAAEqD,EAAiBjD,GAAWiD,EAAgBjD,QAAWtC,EACtG,GAA0B,IAAvBwF,EAGF,GAAGA,EACF/Y,EAASvS,KAAKsrB,EAAmB,SAEjC,GAAI,qBAAqBC,KAAKnD,GAyBvBiD,EAAgBjD,GAAW,MAzBM,CAEvC,IAAI9qB,EAAU,IAAIC,SAAQ,CAACC,EAASC,IAAY6tB,EAAqBD,EAAgBjD,GAAW,CAAC5qB,EAASC,KAC1G8U,EAASvS,KAAKsrB,EAAmB,GAAKhuB,GAGtC,IAAIxH,EAAMuwB,EAAoB7hB,EAAI6hB,EAAoBiC,EAAEF,GAEpD5vB,EAAQ,IAAIoE,MACZ4uB,EAAgB3tB,IACnB,GAAGwoB,EAAoB2B,EAAEqD,EAAiBjD,KACzCkD,EAAqBD,EAAgBjD,GACX,IAAvBkD,IAA0BD,EAAgBjD,QAAWtC,GACrDwF,GAAoB,CACtB,IAAIb,EAAY5sB,IAAyB,SAAfA,EAAM3B,KAAkB,UAAY2B,EAAM3B,MAChEuvB,EAAU5tB,GAASA,EAAMC,QAAUD,EAAMC,OAAOwH,IACpD9M,EAAMwZ,QAAU,iBAAmBoW,EAAU,cAAgBqC,EAAY,KAAOgB,EAAU,IAC1FjzB,EAAMvE,KAAO,iBACbuE,EAAM0D,KAAOuuB,EACbjyB,EAAMylB,QAAUwN,EAChBH,EAAmB,GAAG9yB,EACvB,CACD,EAED6tB,EAAoBzO,EAAE9hB,EAAK01B,EAAc,SAAWpD,EAASA,EAC9D,CAEF,EAWF/B,EAAoBO,EAAEM,EAAKkB,GAA0C,IAA7BiD,EAAgBjD,GAGxD,IAAIsD,EAAuB,CAACC,EAA4Bv3B,KACvD,IAGIkyB,EAAU8B,GAHTvB,EAAU+E,EAAaC,GAAWz3B,EAGhBoL,EAAI,EAC3B,GAAGqnB,EAASljB,MAAM5K,GAAgC,IAAxBsyB,EAAgBtyB,KAAa,CACtD,IAAIutB,KAAYsF,EACZvF,EAAoB2B,EAAE4D,EAAatF,KACrCD,EAAoBK,EAAEJ,GAAYsF,EAAYtF,IAGhD,GAAGuF,EAAS,IAAI9tB,EAAS8tB,EAAQxF,EAClC,CAEA,IADGsF,GAA4BA,EAA2Bv3B,GACrDoL,EAAIqnB,EAASxsB,OAAQmF,IACzB4oB,EAAUvB,EAASrnB,GAChB6mB,EAAoB2B,EAAEqD,EAAiBjD,IAAYiD,EAAgBjD,IACrEiD,EAAgBjD,GAAS,KAE1BiD,EAAgBjD,GAAW,EAE5B,OAAO/B,EAAoBO,EAAE7oB,EAAO,EAGjC+tB,EAAqBrD,WAAW,kCAAoCA,WAAW,mCAAqC,GACxHqD,EAAmBxsB,QAAQosB,EAAqB9B,KAAK,KAAM,IAC3DkC,EAAmB9rB,KAAO0rB,EAAqB9B,KAAK,KAAMkC,EAAmB9rB,KAAK4pB,KAAKkC,G,KClFvF,IAAIC,EAAsB1F,EAAoBO,OAAEd,EAAW,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,IAAOO,EAAoB,SACnK0F,EAAsB1F,EAAoBO,EAAEmF,E","sources":["webpack://@openeo/web-editor/./src/components/Logo.vue","webpack://@openeo/web-editor/src/components/Logo.vue","webpack://@openeo/web-editor/./src/components/Logo.vue?c0bc","webpack://@openeo/web-editor/./src/components/Logo.vue?0cc9","webpack://@openeo/web-editor/./config.js","webpack://@openeo/web-editor/./src/components/EventBusMixin.js","webpack://@openeo/web-editor/./src/components/maps/projManager.js","webpack://@openeo/web-editor/./src/formats/csv.js","webpack://@openeo/web-editor/./src/formats/format.js","webpack://@openeo/web-editor/./src/formats/geotiff.js","webpack://@openeo/web-editor/./src/formats/json.js","webpack://@openeo/web-editor/./src/registryExtension.js","webpack://@openeo/web-editor/./src/formats/browserImage.js","webpack://@openeo/web-editor/./src/formats/native.js","webpack://@openeo/web-editor/./src/formats/tsv.js","webpack://@openeo/web-editor/./src/formats/formatRegistry.js","webpack://@openeo/web-editor/./src/store/editor.js","webpack://@openeo/web-editor/./src/store/storeFactory.js","webpack://@openeo/web-editor/./src/store/files.js","webpack://@openeo/web-editor/./src/store/jobs.js","webpack://@openeo/web-editor/./src/store/services.js","webpack://@openeo/web-editor/./src/store/userProcesses.js","webpack://@openeo/web-editor/./src/store/index.js","webpack://@openeo/web-editor/./src/Page.vue","webpack://@openeo/web-editor/./src/components/ConnectForm.vue","webpack://@openeo/web-editor/./src/components/TermsOfServiceConsent.vue","webpack://@openeo/web-editor/src/components/TermsOfServiceConsent.vue","webpack://@openeo/web-editor/./src/components/TermsOfServiceConsent.vue?ce8c","webpack://@openeo/web-editor/./src/components/TermsOfServiceConsent.vue?4902","webpack://@openeo/web-editor/src/components/ConnectForm.vue","webpack://@openeo/web-editor/./src/components/ConnectForm.vue?e1e0","webpack://@openeo/web-editor/./src/components/ConnectForm.vue?757a","webpack://@openeo/web-editor/src/Page.vue","webpack://@openeo/web-editor/./src/Page.vue?99ee","webpack://@openeo/web-editor/./src/Page.vue?0126","webpack://@openeo/web-editor/./src/filters.js","webpack://@openeo/web-editor/./src/main.js","webpack://@openeo/web-editor/./src/process.js","webpack://@openeo/web-editor/./src/utils.js","webpack://@openeo/web-editor/external var \"L\"","webpack://@openeo/web-editor/webpack/bootstrap","webpack://@openeo/web-editor/webpack/runtime/chunk loaded","webpack://@openeo/web-editor/webpack/runtime/compat get default export","webpack://@openeo/web-editor/webpack/runtime/create fake namespace object","webpack://@openeo/web-editor/webpack/runtime/define property getters","webpack://@openeo/web-editor/webpack/runtime/ensure chunk","webpack://@openeo/web-editor/webpack/runtime/get javascript chunk filename","webpack://@openeo/web-editor/webpack/runtime/get mini-css chunk filename","webpack://@openeo/web-editor/webpack/runtime/global","webpack://@openeo/web-editor/webpack/runtime/hasOwnProperty shorthand","webpack://@openeo/web-editor/webpack/runtime/load script","webpack://@openeo/web-editor/webpack/runtime/make namespace object","webpack://@openeo/web-editor/webpack/runtime/node module decorator","webpack://@openeo/web-editor/webpack/runtime/publicPath","webpack://@openeo/web-editor/webpack/runtime/css loading","webpack://@openeo/web-editor/webpack/runtime/jsonp chunk loading","webpack://@openeo/web-editor/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"logo\"},[(_vm.$config.logo)?_c('img',{attrs:{\"src\":_vm.$config.logo,\"alt\":_vm.$config.serviceName}}):_vm._e(),_c('h2',[_vm._v(_vm._s(_vm.$config.appName)+\" \"),_c('span',{staticClass:\"version\",on:{\"click\":_vm.showWebEditorInfo}},[_vm._v(_vm._s(_vm.version))])])])\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!./Logo.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!./Logo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=af3cbbb2&scoped=true\"\nimport script from \"./Logo.vue?vue&type=script&lang=js\"\nexport * from \"./Logo.vue?vue&type=script&lang=js\"\nimport style0 from \"./Logo.vue?vue&type=style&index=0&id=af3cbbb2&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 \"af3cbbb2\",\n null\n \n)\n\nexport default component.exports","export default {\n\t// Set this to connect to a back-end automatically when opening the Web Editor,\n\t// so you could set this to https://example.com and then the Web Editor connects\n\t// to the corresponding back-end automatically.\n\tserverUrl: '',\n\n\t// The name of the service\n\tserviceName: 'openEO',\n\t// The name of the app\n\tappName: 'Web Editor',\n\n\t// Skip login and automatically load up the \"discovery mode\"\n\tskipLogin: false,\n\n\t// Default location for maps\n\t// Default to the center of the EU in Wuerzburg: \n\t// https://en.wikipedia.org/wiki/Geographical_midpoint_of_Europe#Geographic_centre_of_the_European_Union\n\t// The zoom level should show most of Europe\n\tmapLocation: [49.8, 9.9],\n\tmapZoom: 4,\n\n\t// OSM Nominatim compliant geocoder URL, remove to disable\n\tgeocoder: \"https://nominatim.openstreetmap.org/search\",\n\n\t// A message shown on the login page\n\tloginMessage: '',\n\n\t// The logo to show\n\tlogo: './logo.png',\n\n\t// Defaults for notifications\n\tsnotifyDefaults: {\n\t\ttimeout: 10000,\n\t\ttitleMaxLength: 30,\n\t\tbodyMaxLength: 120,\n\t\tshowProgressBar: true,\n\t\tcloseOnClick: true,\n\t\tpauseOnHover: true\n\t},\n\n\t// List of supported web map services (all lower-cased)\n\tsupportedMapServices: [\n\t\t'xyz',\n\t\t'wmts'\n\t],\n\n\t// List of supported batch job sharing services\n\tsupportedBatchJobSharingServices: [\n\t\t'ShareEditor',\n\t\t'CopyUrl',\n\t\t'BlueskyShare',\n\t\t'MastodonSocialShare',\n\t\t'XShare'\n\t],\n\n\t// List of supported web service sharing services\n\tsupportedWebServiceSharingServices: [\n\t\t'ShareEditor',\n\t\t'CopyUrl',\n\t\t'BlueskyShare',\n\t\t'MastodonSocialShare',\n\t\t'XShare'\n\t],\n\n\t// List of supported wizards\n\tsupportedWizards: [\n\t\t{\n\t\t\tcomponent: 'SpectralIndices',\n\t\t\ttitle: 'Compute Spectral Indices',\n\t\t\tdescription: 'A spectral index is a mathematical equation that is applied on the various spectral bands of an image per pixel. It is often used to highlight vegetation, urban areas, snow, burn, soil, or water/drought/moisture stress. Provided by Awesome Spectral Indices (https://github.com/awesome-spectral-indices/awesome-spectral-indices).',\n\t\t\trequiredProcesses: ['reduce_dimension']\n\t\t}\n\t],\n\n\t// Configure the (base)maps\n\tbasemaps: [\n\t\t{\n\t\t\t// Title for the basemap\n\t\t\ttitle: \"OpenStreetMap\",\n\t\t\t// Templated URI for the XYZ basemap.\n\t\t\turl: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n\t\t\t// Attributon for the basemap. HTML is allowed.\n\t\t\tattributions: '© OpenStreetMap contributors.',\n\t\t\t// Maximum zoom level\n\t\t\tmaxZoom: 19\n\t\t}\n\t],\n\n\t// Import processes from openeo-community-examples repo\n\timportCommunityExamples: true,\n\n\t// Additional process namespaces to load by default\n\tprocessNamespaces: [],\n\n\t// Key is the OIDC provider id, value is the client ID\n\toidcClientIds: {},\n\n\t// Show a warning if HTTP is used instead of HTTPS\n\tshowHttpWarning: true,\n\n\t// refresh interval for jobs/user data/services etc. in minutes - doesn't apply to logs.\n\t// It's recommended to use a value between 1 and 5 minutes.\n\tdataRefreshInterval: 2,\n\n\t// Show or hide experimental and/or deprecated entites by default (e.g. processes, collections)\n\tshowExperimentalByDefault: false,\n\tshowDeprecatedByDefault: false,\n\n\t// number of items to show per page in the UI (jobs, services, files, UDPs) - null to disable pagination\n\tpageLimit: 50,\n\t\n};","export default {\n\tdata() {\n\t\treturn {\n\t\t\teventBusListeners: {}\n\t\t};\n\t},\n\tbeforeDestroy() {\n\t\tfor (var eventName in this.eventBusListeners) {\n\t\t\tthis.$root.$off(eventName, this.eventBusListeners[eventName]);\n\t\t}\n\t},\n\tmethods: {\n\t\thasListener(eventName) {\n\t\t\treturn !!this.eventBusListeners[eventName];\n\t\t},\n\t\tlisten(eventName, callback) {\n\t\t\tthis.unlisten(eventName);\n\t\t\tthis.$root.$on(eventName, callback);\n\t\t\tthis.eventBusListeners[eventName] = callback;\n\t\t},\n\t\tunlisten(eventName) {\n\t\t\tif (this.hasListener(eventName)) {\n\t\t\t\tthis.$root.$off(eventName, this.eventBusListeners[eventName]);\n\t\t\t\tdelete this.eventBusListeners[eventName];\n\t\t\t}\n\t\t},\n\t\tbroadcast() {\n\t\t\tthis.$root.$emit(...arguments);\n\t\t}\n\t}\n}","import proj4 from 'proj4';\nimport { get as getProjection, transformExtent } from 'ol/proj';\nimport Projection from 'ol/proj/Projection';\nimport { register } from 'ol/proj/proj4';\n\nimport Utils from '../../utils';\n\nexport default class ProjManager {\n\n\tstatic async get(data) {\n\t\tif (data instanceof Projection) {\n\t\t\treturn data;\n\t\t}\n\n\t\treturn await ProjManager._load(data);\n\t}\n\n\tstatic add(code, meta, extent) {\n\t\ttry {\n\t\t\tproj4.defs(code, meta);\n\t\t\tregister(proj4);\n\t\t\tlet projection = getProjection(code);\n\t\t\tif (Array.isArray(extent)) {\n\t\t\t\textent = transformExtent(extent, 'EPSG:4326', projection);\n\t\t\t\tprojection.setExtent(extent);\n\t\t\t}\n\t\t\tif (meta.includes('+datum=WGS84')) {\n\t\t\t\tprojection.basemap = true;\n\t\t\t}\n\t\t\treturn projection;\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t// Get projection details from STAC (todo: add collection support)\n\tstatic async addFromStac(stac) {\n\t\tif (Utils.isObject(stac) && Utils.isObject(stac.properties)) {\n\t\t\tif (stac.properties['proj:code']) {\n\t\t\t\treturn await ProjManager.get(stac.properties['proj:code']);\n\t\t\t}\n\t\t\telse if (stac.properties['proj:wkt2']) {\n\t\t\t\treturn ProjManager.add(stac.id, stac.properties['proj:wkt2']);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tstatic async _load(crs) {\n\t\tlet code, id;\n\t\tif (typeof crs === 'string' && crs.match(/^EPSG:\\d+$/i)) {\n\t\t\tcode = crs.toUpperCase();\n\t\t\tid = crs.substr(5);\n\t\t}\n\t\telse if (Number.isInteger(crs)) {\n\t\t\tcode = `EPSG:${crs}`\n\t\t\tid = String(crs);\n\t\t}\n\t\telse {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Get projection from cache\n\t\tlet projection = getProjection(code);\n\t\tif (projection) {\n\t\t\treturn projection;\n\t\t}\n\n\t\t// Get projection from database\n\t\tlet epsg = await import('../../assets/epsg-proj.json');\n\t\tif (id in epsg) {\n\t\t\treturn ProjManager.add(code, epsg[id][0], epsg[id][1]);\n\t\t}\n\n\t\t// No projection found\n\t\treturn null;\n\t}\n\n}","import { SupportedFormat } from './format';\n\nclass CSV extends SupportedFormat {\n\n\tconstructor(asset, delim = [',', ';']) {\n\t\tsuper(asset, 'TableViewer', 'fa-table');\n\t\tthis.delim = delim;\n\t}\n\n\tasync parseData(data) {\n\t\tif (typeof data === 'string') {\n\t\t\t// Parse CSV\n\t\t\tlet array = this.parseCSV(data.trim());\n\t\t\t// Convert values into numbers, if possible\n\t\t\treturn array.map(row => row.map(col => {\n\t\t\t\tcol = col.trim();\n\t\t\t\tif (col.length === 0) {\n\t\t\t\t\treturn NaN;\n\t\t\t\t}\n\t\t\t\telse if (!isNaN(col)) { // https://stackoverflow.com/a/35759874/9709414\n\t\t\t\t\treturn parseFloat(col);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn col;\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\t\treturn data;\n\t}\n\n\t// From https://stackoverflow.com/questions/1293147/example-javascript-code-to-parse-csv-data\n\tparseCSV(str) {\n\t\tvar arr = [];\n\t\tvar quote = false; // 'true' means we're inside a quoted field\n\t\n\t\t// Iterate over each character, keep track of current row and column (of the returned array)\n\t\tfor (var row = 0, col = 0, c = 0; c < str.length; c++) {\n\t\t\tvar cc = str[c], nc = str[c+1]; // Current character, next character\n\t\t\tarr[row] = arr[row] || []; // Create a new row if necessary\n\t\t\tarr[row][col] = arr[row][col] || ''; // Create a new column (start with empty string) if necessary\n\t\n\t\t\t// If the current character is a quotation mark, and we're inside a\n\t\t\t// quoted field, and the next character is also a quotation mark,\n\t\t\t// add a quotation mark to the current column and skip the next character\n\t\t\tif (cc == '\"' && quote && nc == '\"') {\n\t\t\t\tarr[row][col] += cc; ++c;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's just one quotation mark, begin/end quoted field\n\t\t\tif (cc == '\"') {\n\t\t\t\tquote = !quote;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's a elimiter and we're not in a quoted field, move on to the next column\n\t\t\tif (this.delim.includes(cc) && !quote) {\n\t\t\t\t++col;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's a newline (CRLF) and we're not in a quoted field, skip the next character\n\t\t\t// and move on to the next row and move to column 0 of that new row\n\t\t\tif (cc == '\\r' && nc == '\\n' && !quote) {\n\t\t\t\t++row; col = 0; ++c;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's a newline (LF or CR) and we're not in a quoted field,\n\t\t\t// move on to the next row and move to column 0 of that new row\n\t\t\tif (cc == '\\n' && !quote) {\n\t\t\t\t++row; col = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (cc == '\\r' && !quote) {\n\t\t\t\t++row; col = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// Otherwise, append the current character to the current column\n\t\t\tarr[row][col] += cc;\n\t\t}\n\t\treturn arr;\n\t}\n\n}\n\nexport default CSV;","import Utils from '../utils.js';\n\nexport class Format {\n\n\tconstructor(asset) {\n\t\tObject.assign(this, asset);\n\t\tthis.context = null;\n\t}\n\n\tsetContext(context) {\n\t\tthis.context = context;\n\t}\n\n\tgetContext() {\n\t\treturn this.context;\n\t}\n\n\tgetUrl() {\n\t\treturn this.href;\n\t}\n\n\tcanGroup() {\n\t\treturn false;\n\t}\n\n\tisBinary() {\n\t\treturn true;\n\t}\n\n\tdownload(filename = null) {\n\t\tlet tempLink = document.createElement('a');\n\t\ttempLink.style.display = 'none';\n\t\ttempLink.href = this.getUrl();\n\t\ttempLink.setAttribute('download', filename ? filename : Utils.makeFileName(\"result\", this.type));\n\t\ttempLink.setAttribute('target', '_blank');\n\t\tdocument.body.appendChild(tempLink);\n\t\ttempLink.click();\n\t\tdocument.body.removeChild(tempLink);\n\t}\n\n\tasync loadData(connection) {\n\t\tif (!this.loaded) {\n\t\t\tthis.data = await this.fetchData(connection);\n\t\t\tthis.loaded = true;\n\t\t}\n\t}\n\n\tgetData() {\n\t\tif (!this.loaded) {\n\t\t\tthrow new Error('Data must be loaded before');\n\t\t}\n\t\treturn this.data;\n\t}\n\n\tasync fetchData(connection) {\n\t\tlet blob;\n\t\tlet url = this.getUrl();\n\t\tif (url.startsWith('blob:')) {\n\t\t\tlet response = await fetch(url);\n\t\t\tblob = await response.blob();\n\t\t}\n\t\telse {\n\t\t\tlet auth = false;\n\t\t\ttry {\n\t\t\t\tlet apiUrl = new URL(connection.getUrl());\n\t\t\t\tlet requestUrl = new URL(url);\n\t\t\t\tauth = apiUrl.origin === requestUrl.origin;\n\t\t\t} catch (error) {}\n\n\t\t\tblob = await connection.download(url, auth);\n\t\t}\n\t\tlet promise = new Promise((resolve, reject) => {\n\t\t\tlet reader = new FileReader();\n\t\t\treader.onload = event => resolve(event.target.result);\n\t\t\treader.onerror = reject;\n\t\t\tif (this.isBinary()) {\n\t\t\t\treader.readAsBinaryString(blob);\n\t\t\t}\n\t\t\telse {\n\t\t\t\treader.readAsText(blob);\n\t\t\t}\n\t\t});\n\t\tlet data = await promise;\n\t\treturn await this.parseData(data);\n\t}\n\n\tasync parseData(data) {\n\t\treturn data;\n\t}\n\n}\n\nexport class SupportedFormat extends Format {\n\n\tconstructor(asset, component = null, icon = 'fa-database', props = {}, events = {}) {\n\t\tsuper(asset);\n\t\tthis.loaded = false;\n\t\tthis.component = component;\n\t\tthis.props = props;\n\t\tif (!this.props.data) {\n\t\t\tthis.props.data = this;\n\t\t}\n\t\tthis.icon = icon;\n\t\tthis.events = events;\n\t}\n\n\tisBinary() {\n\t\treturn false;\n\t}\n\n}\n\nexport class UnsupportedFormat extends Format {\n\n\tconstructor(asset) {\n\t\tsuper(asset);\n\t}\n\n}\n\nexport class FormatCollection extends SupportedFormat {\n\n}","import { SupportedFormat } from './format';\nimport Utils from '../utils';\nimport ProjManager from '../components/maps/projManager';\n\nimport { fromUrl as tiffFromUrl, fromBlob as tiffFromBlob, globals as _ } from 'geotiff';\n\nimport { toUserExtent } from 'ol/proj';\nimport Projection from 'ol/proj/Projection';\nimport { fromCode as unitsFromCode } from 'ol/proj/Units';\n\nconst GDAL_MIN = 'STATISTICS_MINIMUM';\nconst GDAL_MAX = 'STATISTICS_MAXIMUM';\nconst GDAL_NAME = 'DESCRIPTION';\n\nclass GeoTIFF extends SupportedFormat {\n\n\tconstructor(asset, stac) {\n\t\tsuper(asset, \"MapViewer\", 'fa-map', { removableLayers: true });\n\t\tthis._bands = [];\n\t\tthis._nodata = [];\n\t\tthis.img = null;\n\t\tthis.projection = null;\n\t\tthis.extent = null;\n\t\tthis.convertToRGB = false;\n\t\tthis.stac = stac;\n\t}\n\n\tisBinary() {\n\t\treturn true;\n\t}\n\n\tcanGroup() {\n\t\treturn true;\n\t}\n\n\tasync loadData(connection) {\n\t\tif (!this.loaded) {\n\t\t\tawait this.parseMetadata();\n\t\t\tthis.loaded = true;\n\t\t}\n\t\treturn this;\n\t}\n\n\tgetData() {\n\t\treturn this;\n\t}\n\n\tasync parseMetadata() {\n\t\tlet stacHasExtent = this.stac && (this.stac.geometry || this.stac.extent);\n\n\t\t// Get projection from STAC\n\t\tthis.projection = await ProjManager.addFromStac(this.stac);\n\n\t\t// Get nodata from STAC file:nodata\n\t\tif (Array.isArray(this['file:nodata']) && this['file:nodata'].length > 0) {\n\t\t\tthis._nodata = Utils.parseNodata(this['file:nodata']);\n\t\t}\n\n\t\t// Get min/max/nodata from STAC bands\n\t\tif (Array.isArray(this.bands) && this.bands.length > 0) {\n\t\t\tthis.bands.forEach((band, i) => {\n\t\t\t\t// Get name from band\n\t\t\t\tif (band.name) {\n\t\t\t\t\tthis.setBandInfo(i, {\n\t\t\t\t\t\tname: band.name\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Set min/max from statistics\n\t\t\t\tif (Utils.isObject(band.statistics)) {\n\t\t\t\t\tthis.setBandInfo(i, {\n\t\t\t\t\t\tmin: band.statistics.minimum,\n\t\t\t\t\t\tmax: band.statistics.maximum\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// per-band no-data values are not supported, simply read the no-data from the first occurance if not defined yet\n\t\t\t\tif (this._nodata.length === 0 && typeof band.nodata !== 'undefined') {\n\t\t\t\t\tthis._nodata.push(Utils.parseNodata(band.nodata));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Load example tiff image\n\t\tlet tiff;\n\t\tif (this.getBlob()) {\n\t\t\ttiff = await tiffFromBlob(this.getBlob());\n\t\t}\n\t\telse {\n\t\t\ttiff = await tiffFromUrl(this.getUrl());\n\t\t}\n\t\tthis.img = await tiff.getImage();\n\n\t\t// Get data for each band / sample\n\t\tfor (let i = 0; i < this.img.getSamplesPerPixel(); i++) {\n\t\t\tlet data = {};\n\n\t\t\t// Use min/max for data type (as fallback)\n\t\t\ttry {\n\t\t\t\tlet dummy = this.img.getArrayForSample(i);\n\t\t\t\tif (!Number.isFinite(this._bands[i].min)) {\n\t\t\t\t\tdata.min = this.getMinForDataType(dummy);\n\t\t\t\t}\n\t\t\t\tif (!Number.isFinite(this._bands[i].max)) {\n\t\t\t\t\tdata.max = this.getMaxForDataType(dummy);\n\t\t\t\t}\n\t\t\t} catch (error) {}\n\n\t\t\t// Set min/max/name from statistics, if available\n\t\t\tlet band = this.img.getGDALMetadata(i);\n\t\t\tif (Utils.isObject(band)) {\n\t\t\t\tif (GDAL_MIN in band) {\n\t\t\t\t\tdata.min = parseFloat(band[GDAL_MIN]);\n\t\t\t\t}\n\t\t\t\tif (GDAL_MAX in band) {\n\t\t\t\t\tdata.max = parseFloat(band[GDAL_MAX]);\n\t\t\t\t}\n\t\t\t\tif (GDAL_NAME in band) {\n\t\t\t\t\tdata.name = band[GDAL_NAME];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.setBandInfo(i, data);\n\n\t\t\t// get no-data values if needed\n\t\t\tlet nodata = this.img.getGDALNoData();\n\t\t\tif (this._nodata.length === 0 && nodata !== null) {\n\t\t\t\tthis._nodata.push(nodata);\n\t\t\t}\n\t\t}\n\n\t\t// Get projection from GeoTiff\n\t\tlet code;\n\t\tif (!this.projection && this.img.geoKeys) {\n\t\t\tlet { ProjectedCSTypeGeoKey, GeographicTypeGeoKey, ProjLinearUnitsGeoKey, GeogAngularUnitsGeoKey } = this.img.geoKeys;\n\t\t\tif (ProjectedCSTypeGeoKey) {\n\t\t\t\tcode = 'EPSG:' + ProjectedCSTypeGeoKey;\n\t\t\t\tthis.projection = await ProjManager.get(code);\n\t\t\t}\n\t\t\tif (!this.projection && GeographicTypeGeoKey) {\n\t\t\t\tcode = 'EPSG:' + GeographicTypeGeoKey;\n\t\t\t\tthis.projection = await ProjManager.get(code);\n\t\t\t}\n\n\t\t\tif (!this.projection && code) {\n\t\t\t\tconst units = (ProjLinearUnitsGeoKey && unitsFromCode(ProjLinearUnitsGeoKey)) || (GeogAngularUnitsGeoKey && unitsFromCode(GeogAngularUnitsGeoKey));\n\t\t\t\tif (units) {\n\t\t\t\t\tthis.projection = new Projection({ code, units });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Get extent from geotiff\n\t\tif (!stacHasExtent) {\n\t\t\ttry {\n\t\t\t\tlet bbox = this.img.getBoundingBox();\n\t\t\t\tthis.extent = toUserExtent(bbox, this.projection);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn(error);\n\t\t\t}\n\t\t}\n\n\t\t// Store color map as RGB\n\t\tif (this.img.fileDirectory.ColorMap) {\n\t\t\tconst map = Array.from(this.img.fileDirectory.ColorMap);\n\t\t\tconst greenOffset = map.length / 3;\n\t\t\tconst blueOffset = map.length / 3 * 2;\n\t\t\tthis.colorMap = [];\n\t\t\tfor (let i = 0; i < greenOffset; i++) {\n\t\t\t\tthis.colorMap.push([\n\t\t\t\t\tMath.trunc(map[i] / 65536 * 256),\n\t\t\t\t\tMath.trunc(map[i + greenOffset] / 65536 * 256),\n\t\t\t\t\tMath.trunc(map[i + blueOffset] / 65536 * 256),\n\t\t\t\t\tthis._nodata.includes(i) ? 0 : 1\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\n\t\t// Get photometric interpretation\n\t\tswitch (this.img.fileDirectory.PhotometricInterpretation) {\n\t\t\tcase _.photometricInterpretations.CMYK:\n\t\t\tcase _.photometricInterpretations.YCbCr:\n\t\t\tcase _.photometricInterpretations.CIELab:\n\t\t\t\tthis.convertToRGB = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// RGB and (Black/White)IsZero are handled via user control\n\t\t\t\t// Palette is handled directly by our styling\n\t\t\t\tthis.convertToRGB = false;\n\t\t}\n\t}\n\n\tsetBandInfo(i, data) {\n\t\tif (this._bands[i]) {\n\t\t\tObject.assign(this._bands[i], data);\n\t\t}\n\t\telse {\n\t\t\tthis._bands.push(Object.assign({ id: i + 1 }, data));\n\t\t}\n\t}\n\n\tgetBlob() {\n\t\treturn this.blob;\n\t}\n\n\tgetNoData() {\n\t\treturn this._nodata;\n\t}\n\n\tgetContext() {\n\t\treturn this.stac;\n\t}\n\n\tgetBands() {\n\t\treturn this._bands;\n\t}\n\n\tgetProjection() {\n\t\treturn this.projection;\n\t}\n\n\tgetExtent() {\n\t\treturn this.extent;\n\t}\n\n\tgetColorMap() {\n\t\treturn this.colorMap;\n\t}\n\n\tgetMinForDataType(array) {\n\t\tif (array instanceof Int8Array) {\n\t\t\treturn -128;\n\t\t}\n\t\tif (array instanceof Int16Array) {\n\t\t\treturn -32768;\n\t\t}\n\t\tif (array instanceof Int32Array) {\n\t\t\treturn -2147483648;\n\t\t}\n\t\tif (array instanceof Float32Array) {\n\t\t\treturn 1.2e-38;\n\t\t}\n\t\treturn 0;\n\t}\n\t\n\tgetMaxForDataType(array) {\n\t\tif (array instanceof Int8Array) {\n\t\t\treturn 127;\n\t\t}\n\t\tif (array instanceof Uint8Array) {\n\t\t\treturn 255;\n\t\t}\n\t\tif (array instanceof Uint8ClampedArray) {\n\t\t\treturn 255;\n\t\t}\n\t\tif (array instanceof Int16Array) {\n\t\t\treturn 32767;\n\t\t}\n\t\tif (array instanceof Uint16Array) {\n\t\t\treturn 65535;\n\t\t}\n\t\tif (array instanceof Int32Array) {\n\t\t\treturn 2147483647;\n\t\t}\n\t\tif (array instanceof Uint32Array) {\n\t\t\treturn 4294967295;\n\t\t}\n\t\tif (array instanceof Float32Array) {\n\t\t\treturn 3.4e38;\n\t\t}\n\t\treturn 255;\n\t}\n\n}\n\nexport default GeoTIFF;","import Utils from '../utils';\nimport { SupportedFormat } from './format';\n\nclass JSON_ extends SupportedFormat {\n\n\tconstructor(asset, component = \"DataViewer\") {\n\t\tsuper(asset, component);\n\n\t\tthis.isGeoJson = false;\n\t\t// this.isCovJson = false;\n\t}\n\n\tasync parseData(data) {\n\t\tif (typeof data === 'string') {\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse(data);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t}\n\t\tif (Utils.detectGeoJson(data)) {\n\t\t\tthis.isGeoJson = true;\n\t\t\tthis.component = 'MapViewer';\n\t\t\tthis.icon = 'fa-map';\n\t\t}\n\t\telse if (this.isTable(data)) {\n\t\t\tthis.component = 'TableViewer';\n\t\t\tthis.icon = 'fa-table';\n\t\t}\n\t\treturn data;\n\t}\n\n\tisTable(data) {\n\t\tif (!data || typeof data !== 'object' || Utils.size(data) === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tlet values = Object.values(data);\n\t\tlet keys = Object.keys(values[0]);\n\t\treturn !values.some(row => !row || typeof row !== 'object' || !Utils.equals(Object.keys(row), keys));\n\t}\n}\n\nexport default JSON_;","import Utils from './utils';\nimport Process from './process';\nimport { Formula } from '@openeo/js-client';\nimport { ProcessGraph } from '@openeo/js-processgraphs';\n\nexport default {\n\tmathProcesses: null,\n\tgetMathProcesses() {\n\t\tif (!this.mathProcesses) {\n\t\t\tthis.mathProcesses = this.all().filter(Process.isMathProcess);\n\t\t}\n\t\treturn this.mathProcesses;\n\t},\n\tisMath(process) {\n\t\tif (process instanceof ProcessGraph) {\n\t\t\tprocess = process.process;\n\t\t}\n\t\tif (!Utils.isObject(process) || Utils.size(process.process_graph) === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet mathProcessIds = this.getMathProcesses().map(p => p.id)\n\t\t\t.concat(Object.values(Formula.operatorMapping))\n\t\t\t.concat(Object.keys(Formula.arrayOperatorMapping))\n\t\t\t.concat(['array_element']);\n\t\tlet unsupportedFuncs = Object.values(process.process_graph).find(node => !mathProcessIds.includes(node.process_id));\n\t\treturn (typeof unsupportedFuncs === 'undefined');\n\t}\n};","import { SupportedFormat } from './format';\n\nclass BrowserImage extends SupportedFormat {\n\n\tconstructor(asset) {\n\t\tsuper(asset, 'ImageViewer', 'fa-image');\n\t}\n\n\tisBinary() {\n\t\treturn true;\n\t}\n\n\tasync fetchData() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet img = new Image();\n\t\t\timg.crossOrigin = 'anonymous';\n\t\t\timg.onerror = () => reject(new Error('Failed to load the image'));\n\t\t\timg.onload = () => resolve(img);\n\t\t\timg.fetchPriotity = 'high';\n\t\t\timg.decoding = 'sync';\n\t\t\timg.src = this.getUrl();\n\t\t});\n\t}\n\n}\n\nexport default BrowserImage;","import { SupportedFormat } from './format';\n\nclass NativeType extends SupportedFormat {\n\n\tconstructor(asset) {\n\t\tsuper(asset, \"DataViewer\");\n\t}\n\n}\n\nexport default NativeType;","import CSV from './csv';\n\nclass TSV extends CSV {\n\n\tconstructor(asset) {\n\t\tsuper(asset, [\"\\t\"]);\n\t}\n\n}\n\nexport default TSV;","import contentType from 'content-type';\n\nimport BrowserImage from '../formats/browserImage';\nimport CSV from '../formats/csv';\nimport GeoTIFF from '../formats/geotiff';\nimport JSON_ from '../formats/json';\nimport NativeType from './native';\nimport TSV from '../formats/tsv';\nimport { UnsupportedFormat } from './format';\n\nexport default class FormatRegistry {\n\n\tconstructor() {\n\t}\n\n\tcreateFilesFromSTAC(stac, resource = null) {\n\t\tlet files = Object.values(stac.assets)\n\t\t\t.filter(asset => !Array.isArray(asset.roles) || !asset.roles.includes(\"metadata\"))\n\t\t\t.map(asset => this.createFileFromAsset(asset, stac));\n\t\tif (resource) {\n\t\t\tfiles.forEach(file => file.setContext(resource));\n\t\t}\n\t\treturn files;\n\t}\n\n\tcreateFilesFromBlob(data) {\n\t\tif (!(data instanceof Blob)) {\n\t\t\tthrow new Error(\"Given data is not a valid Blob\");\n\t\t}\n\t\treturn this.createFilesFromSTAC({\n\t\t\tstac_version: \"1.0.0\",\n\t\t\ttype: \"Feature\",\n\t\t\tgeometry: null,\n\t\t\tproperties: {},\n\t\t\tlinks: [],\n\t\t\tassets: {\n\t\t\t\tresult: {\n\t\t\t\t\thref: URL.createObjectURL(data),\n\t\t\t\t\tblob: data,\n\t\t\t\t\ttype: data.type\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tcreateFileFromAsset(asset, stac) {\n\t\ttry {\n\t\t\t// Detect by media type\n\t\t\tif (typeof asset.type === 'string') {\n\t\t\t\tlet mime = contentType.parse(asset.type.toLowerCase());\n\t\t\t\tswitch(mime.type) {\n\t\t\t\t\tcase 'image/png':\n\t\t\t\t\tcase 'image/jpg':\n\t\t\t\t\tcase 'image/jpeg':\n\t\t\t\t\tcase 'image/gif':\n\t\t\t\t\tcase 'image/webp':\n\t\t\t\t\t\treturn new BrowserImage(asset);\n\t\t\t\t\tcase 'application/json':\n\t\t\t\t\tcase 'text/json':\n\t\t\t\t\tcase 'application/geo+json':\n\t\t\t\t\t\treturn new JSON_(asset);\n\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\treturn new NativeType(asset);\n\t\t\t\t\tcase 'text/csv':\n\t\t\t\t\t\treturn new CSV(asset);\n\t\t\t\t\tcase 'text/tab-separated-values':\n\t\t\t\t\t\treturn new TSV(asset);\n\t\t\t\t\tcase 'image/tiff':\n\t\t\t\t\t\treturn new GeoTIFF(asset, stac);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Fallback: Detect by file extension\n\t\t\tif (typeof asset.href === 'string') {\n\t\t\t\tlet extension = asset.href.split(/[#?]/)[0].split('.').pop().trim().toLowerCase();\n\t\t\t\tswitch(extension) {\n\t\t\t\t\tcase 'png':\n\t\t\t\t\tcase 'jpg':\n\t\t\t\t\tcase 'jpeg':\n\t\t\t\t\tcase 'gif':\n\t\t\t\t\tcase 'webp':\n\t\t\t\t\t\treturn new BrowserImage(asset);\n\t\t\t\t\tcase 'json':\n\t\t\t\t\tcase 'geojson':\n\t\t\t\t\t\treturn new JSON_(asset);\n\t\t\t\t\tcase 'txt':\n\t\t\t\t\t\treturn new NativeType(asset);\n\t\t\t\t\tcase 'csv':\n\t\t\t\t\t\treturn new CSV(asset);\n\t\t\t\t\tcase 'tsv':\n\t\t\t\t\t\treturn new TSV(asset);\n\t\t\t\t\tcase 'tif':\n\t\t\t\t\tcase 'tiff':\n\t\t\t\t\t\treturn new GeoTIFF(asset, stac);\n\t\t\t\t}\n\t\t\t}\n\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\n\t\treturn new UnsupportedFormat(asset);\n\t}\n\n}","import Vue from 'vue';\nimport Utils from '../utils';\nimport { Job, Service, UserProcess } from '@openeo/js-client';\nimport { ProcessGraph } from '@openeo/js-processgraphs';\nimport FormatRegistry from '../formats/formatRegistry.js';\nimport StacMigrate from '@radiantearth/stac-migrate';\n\nconst serverStorage = \"serverUrls\";\n\nconst getDefaultState = () => {\n\treturn {\n\t\tappMode: null,\n\t\tstoredServers: JSON.parse(localStorage.getItem(serverStorage) || \"[]\"),\n\t\tcontext: null,\n\t\tprocess: null,\n\t\tdiscoverySearchTerm: '',\n\t\thightestModalZIndex: 1000,\n\t\tepsgCodes: [],\n\t\tinitialProcess: null,\n\t\tinitialNode: null,\n\t\topenWizard: null,\n\t\topenWizardProps: {},\n\t\tcollectionPreview: null,\n\t\tviewerOptions: {},\n\t\tmodelDnD: null,\n\t\tformatRegistry: new FormatRegistry(),\n\t};\n};\n\nexport default {\n\tnamespaced: true,\n\tstate: getDefaultState(),\n\tgetters: {\n\t\thasProcess: state => Utils.isObject(state.process) && Utils.size(state.process) > 0 && Utils.size(state.process.process_graph),\n\t\tgetModelNodeFromDnD: (state, getters, rootState, rootGetters) => () => {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (!state.modelDnD) {\n\t\t\t\t\tresolve(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst getterFn = () => {\n\t\t\t\t\tswitch(state.modelDnD.type) {\n\t\t\t\t\t\tcase 'collection':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: 'load_collection',\n\t\t\t\t\t\t\t\targuments: rootGetters.collectionDefaults(state.modelDnD.data.id)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'process':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: state.modelDnD.data.id,\n\t\t\t\t\t\t\t\tnamespace: state.modelDnD.data.namespace,\n\t\t\t\t\t\t\t\targuments: {}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'udf':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: 'run_udf',\n\t\t\t\t\t\t\t\targuments: state.modelDnD.data\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'fileformat':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: 'save_result',\n\t\t\t\t\t\t\t\targuments: {format: state.modelDnD.data.name, options: {}}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tif (state.modelDnD.loading) {\n\t\t\t\t\tlet id = setInterval(() => {\n\t\t\t\t\t\tif (!state.modelDnD || state.modelDnD.loading) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclearInterval(id);\n\t\t\t\t\t\tresolve(getterFn());\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresolve(getterFn());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tactions: {\n\t\tasync loadEpsgCodes(cx) {\n\t\t\tif (cx.state.epsgCodes.length === 0) {\n\t\t\t\tlet res = await import('../assets/epsg-names.json');\n\t\t\t\tcx.commit('epsgCodes', res.default);\n\t\t\t}\n\t\t},\n\t\tasync loadInitialProcess(cx) {\n\t\t\tif (cx.state.process) {\n\t\t\t\treturn; // Process already loaded (usually during a later login)\n\t\t\t}\n\t\t\tif (Utils.isUrl(cx.state.initialProcess)) {\n\t\t\t\tlet response = await Utils.axios().get(cx.state.initialProcess);\n\t\t\t\tif (Utils.isObject(response.data)) {\n\t\t\t\t\tvar pg = new ProcessGraph(response.data);\n\t\t\t\t\tpg.parse();\n\t\t\t\t\tcx.commit('setProcess', response.data);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (typeof cx.state.initialProcess === 'string' && cx.state.initialProcess.length > 0) {\n\t\t\t\tlet [id, namespace] = Utils.extractUDPParams(cx.state.initialProcess);\n\t\t\t\ttry {\n\t\t\t\t\tawait cx.dispatch('loadProcess', {id, namespace}, {root: true});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn(error);\n\t\t\t\t}\n\t\t\t\tcx.commit('setProcess', {\n\t\t\t\t\tprocess_graph: {\n\t\t\t\t\t\t[id]: {\n\t\t\t\t\t\t\tprocess_id: id,\n\t\t\t\t\t\t\tnamespace,\n\t\t\t\t\t\t\targuments: {},\n\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tasync loadForAppMode(cx) {\n\t\t\tif (!cx.state.appMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (cx.state.appMode.resultType !== 'service') {\n\t\t\t\ttry {\n\t\t\t\t\tlet response = await Utils.axios().get(cx.state.appMode.resultUrl);\n\t\t\t\t\tif (Utils.isObject(response.data)) {\n\t\t\t\t\t\tcx.commit('setAppModeData', response.data);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t\tthrow new Error(\"Sorry, the shared data is not available anymore!\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tmutations: {\n\t\tsetModelDnD(state, obj = null) {\n\t\t\tstate.modelDnD = obj;\n\t\t},\n\t\tsetDiscoverySearchTerm(state, searchTerm) {\n\t\t\tstate.discoverySearchTerm = typeof searchTerm === 'string' ? searchTerm : '';\n\t\t},\n\t\tsetInitialProcess(state, process) {\n\t\t\tstate.initialProcess = process;\n\t\t},\n\t\tsetInitialNode(state, node) {\n\t\t\tstate.initialNode = node;\n\t\t},\n\t\tsetAppMode(state, appMode) {\n\t\t\tstate.appMode = {\n\t\t\t\t...appMode,\n\t\t\t\ttitle: 'Results',\n\t\t\t\tdata: null,\n\t\t\t\texpires: null\n\t\t\t};\n\t\t},\n\t\tsetAppModeData(state, data) {\n\t\t\tif (data.type) {\n\t\t\t\tdata = StacMigrate.stac(data, false);\n\t\t\t}\n\n\t\t\tVue.set(state.appMode, 'data', data);\n\n\t\t\tlet process, title, expires;\n\t\t\tif (data.type === 'Collection') {\n\t\t\t\tprocess = Utils.getProcessingExpression(data) || Utils.getProcessingExpression(data.summaries);\n\t\t\t\ttitle = data.title;\n\t\t\t\texpires = data.expires;\n\t\t\t}\n\t\t\telse if (data.type === 'Feature') {\n\t\t\t\tprocess = Utils.getProcessingExpression(data.properties);\n\t\t\t\ttitle = data.properties?.title;\n\t\t\t\texpires = data.properties?.expires;\n\t\t\t}\n\t\t\tif (process) {\n\t\t\t\tstate.process = process;\n\t\t\t}\n\t\t\tif (title) {\n\t\t\t\tVue.set(state.appMode, 'title', title);\n\t\t\t\tVue.set(state.appMode, 'expires', expires);\n\t\t\t\tstate.context = title;\n\t\t\t}\n\t\t},\n\t\tsetViewerOptions(state, options) {\n\t\t\tstate.viewerOptions = options || {};\n\t\t},\n\t\tsetOpenWizard(state, {component, options}) {\n\t\t\tstate.openWizard = component;\n\t\t\tif (component) {\n\t\t\t\tstate.openWizardProps = options;\n\t\t\t}\n\t\t},\n\t\tsetCollectionPreview(state, collectionID) {\n\t\t\tstate.collectionPreview = collectionID;\n\t\t\tif (!state.discoverySearchTerm) {\n\t\t\t\tstate.discoverySearchTerm = typeof collectionID === 'string' ? collectionID : '';\n\t\t\t}\n\t\t},\n\t\topenModal(state) {\n\t\t\tstate.hightestModalZIndex = state.hightestModalZIndex + 1;\n\t\t},\n\t\tcloseModal(state) {\n\t\t\tstate.hightestModalZIndex = state.hightestModalZIndex - 1;\n\t\t},\n\t\taddServer(state, url) {\n\t\t\tif (state.storedServers.indexOf(url) === -1) {\n\t\t\t\tstate.storedServers.push(url);\n\t\t\t}\n\t\t\tlocalStorage.setItem(serverStorage, JSON.stringify(state.storedServers));\n\t\t},\n\t\tremoveServer(state, url) {\n\t\t\tstate.storedServers.splice(state.storedServers.indexOf(url), 1);\n\t\t\tlocalStorage.setItem(serverStorage, JSON.stringify(state.storedServers));\n\t\t},\n\t\tsetContext(state, obj) {\n\t\t\tstate.context = obj;\n\t\t\tif (obj instanceof Job || obj instanceof Service) {\n\t\t\t\tstate.process = obj.process;\n\t\t\t}\n\t\t\telse if (obj instanceof UserProcess) {\n\t\t\t\tstate.process = obj.toJSON();\n\t\t\t}\n\t\t\telse if (Utils.isObject(obj) && obj.process) {\n\t\t\t\tstate.process = obj.process;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstate.process = obj;\n\t\t\t}\n\t\t},\n\t\tsetProcess(state, process) {\n\t\t\tstate.process = process;\n\t\t},\n\t\tepsgCodes(state, epsgCodes) {\n\t\t\tstate.epsgCodes = epsgCodes;\n\t\t},\n\t\treset(state) {\n\t\t\tObject.assign(state, getDefaultState());\n\t\t}\n\t}\n};\n","import { UserProcess } from '@openeo/js-client';\nimport { Utils } from '@openeo/js-commons';\nimport Vue from 'vue';\n\nexport default ({namespace, listFn, paginateFn, createFn, updateFn, deleteFn, readFn, readFnById, customizations, primaryKey}) => {\n\tif (!primaryKey) {\n\t\tprimaryKey = 'id';\n\t}\n\tconst getDefaultState = () => {\n\t\treturn {\n\t\t\tpages: null,\n\t\t\thasMore: false,\n\t\t\t[namespace]: []\n\t\t};\n\t};\n\tlet definition = {\n\t\tnamespaced: true,\n\t\tstate: getDefaultState(),\n\t\tgetters: {\n\t\t\tsupportsList: (state, getters, rootState, rootGetters) => rootGetters.supports(listFn),\n\t\t\tsupportsCreate: (state, getters, rootState, rootGetters) => rootGetters.supports(createFn),\n\t\t\tsupportsUpdate: (state, getters, rootState, rootGetters) => rootGetters.supports(updateFn),\n\t\t\tsupportsDelete: (state, getters, rootState, rootGetters) => rootGetters.supports(deleteFn),\n\t\t\tsupportsRead: (state, getters, rootState, rootGetters) => rootGetters.supports(readFn),\n\t\t\tgetById: (state) => (id) => {\n\t\t\t\tlet data = state[namespace].find(x => x[primaryKey] === id);\n\t\t\t\treturn typeof data !== 'undefined' ? data : null;\n\t\t\t}\n\t\t},\n\t\tactions: {\n\t\t\tasync create(cx, parameters) {\n\t\t\t\tif (cx.getters.supportsCreate) {\n\t\t\t\t\tlet connection = cx.rootState.connection;\n\t\t\t\t\tlet data = await connection[createFn].apply(connection, parameters);\n\t\t\t\t\tcx.commit('upsert', data);\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Adding is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync delete(cx, {data}) {\n\t\t\t\tif (cx.getters.supportsDelete) {\n\t\t\t\t\tawait data[deleteFn]();\n\t\t\t\t\tcx.commit('delete', data);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Deleting is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync update(cx, {data, parameters}) {\n\t\t\t\tif (cx.getters.supportsUpdate) {\n\t\t\t\t\tlet updated = await data[updateFn](parameters);\n\t\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\t\treturn updated;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Updating is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync read(cx, {data}) {\n\t\t\t\tlet updated = null;\n\t\t\t\tif (!(data instanceof UserProcess)) {\n\t\t\t\t\tlet id = Utils.isObject(data) ? data[primaryKey] : data;\n\t\t\t\t\t// Try to get UserProcess from store\n\t\t\t\t\tdata = cx.getters.getById(id);\n\t\t\t\t\tif (!data) {\n\t\t\t\t\t\t// Try to load UserProcess from Connection\n\t\t\t\t\t\tupdated = await cx.rootState.connection[readFnById](data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!updated) {\n\t\t\t\t\t// Try to update UserProcess\n\t\t\t\t\tupdated = await data[readFn]();\n\t\t\t\t}\n\t\t\t\t// Update or insert, depending on previous state\n\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\treturn updated;\n\t\t\t},\n\t\t\tasync list(cx) {\n\t\t\t\tconst count = cx.state[namespace].length;\n\t\t\t\tif (cx.getters.supportsList) {\n\t\t\t\t\t// Pass over existing data so that it can be updated (for all complete entities, only update fields that exist in the new object)\n\t\t\t\t\t// instead of getting replaced, see https://github.com/Open-EO/openeo-web-editor/issues/234\n\t\t\t\t\tlet pageLimit = Math.max(cx.rootState.pageLimit, count);\n\t\t\t\t\tif (paginateFn) {\n\t\t\t\t\t\tconst pages = cx.rootState.connection[paginateFn](pageLimit, cx.state[namespace]);\n\t\t\t\t\t\tconst data = await pages.nextPage();\n\t\t\t\t\t\tcx.commit('reset'); // Keep close to the update to avoid flickering\n\t\t\t\t\t\tcx.commit('pages', pages);\n\t\t\t\t\t\tcx.commit('data', data);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst data = await cx.rootState.connection[listFn](cx.state[namespace]);\n\t\t\t\t\t\tcx.commit('reset'); // Keep close to the update to avoid flickering\n\t\t\t\t\t\tcx.commit('data', data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn cx.state[namespace];\n\t\t\t},\n\t\t\tasync nextPage(cx) {\n\t\t\t\tif (!cx.state.pages || !cx.state.hasMore) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcx.commit('data', await cx.state.pages.nextPage());\n\t\t\t\treturn cx.state[namespace];\n\t\t\t}\n\t\t},\n\t\tmutations: {\n\t\t\tdata(state, data) {\n\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\tfor (let d of data) {\n\t\t\t\t\t\tstate[namespace].push(d);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.hasMore = state.pages ? state.pages.hasNextPage() : false;\n\t\t\t},\n\t\t\tpages(state, pages) {\n\t\t\t\tstate.pages = pages;\n\t\t\t},\n\t\t\tupsert(state, data) {\n\t\t\t\tlet id = data[primaryKey];\n\t\t\t\tlet index = state[namespace].findIndex(x => x[primaryKey] === id);\n\t\t\t\tlet observableData = Vue.observable(data);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\tVue.set(state[namespace], index, observableData);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tstate[namespace].push(observableData);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete(state, data) {\n\t\t\t\tlet id = data[primaryKey];\n\t\t\t\tlet index = state[namespace].findIndex(x => x[primaryKey] === id);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\tVue.delete(state[namespace], index);\n\t\t\t\t}\n\t\t\t},\n\t\t\treset(state) {\n\t\t\t\tObject.assign(state, getDefaultState());\n\t\t\t}\n\t\t}\n\t};\n\t// Override with custom definitions\n\tfor(let key in customizations) {\n\t\tObject.assign(definition[key], customizations[key]);\n\t}\n\treturn definition;\n};","import storeFactory from './storeFactory';\n\nexport default storeFactory({\n\tnamespace: 'files',\n\tlistFn: 'listFiles',\n\tpaginateFn: 'paginateFiles',\n\tcreateFn: 'uploadFile',\n\tupdateFn: 'uploadFile',\n\tdeleteFn: 'deleteFile',\n\treadFn: 'downloadFile',\n\treadFnById: 'getFile',\n\tprimaryKey: 'path',\n\tcustomizations: {\n\t\tgetters: {\n\t\t},\n\t\tactions: {\n\t\t},\n\t\tmutations: {\n\t\t}\n\t}\n});","import storeFactory from './storeFactory';\n\nexport default storeFactory({\n\tnamespace: 'jobs',\n\tlistFn: 'listJobs',\n\tpaginateFn: 'paginateJobs',\n\tcreateFn: 'createJob',\n\tupdateFn: 'updateJob',\n\tdeleteFn: 'deleteJob',\n\treadFn: 'describeJob',\n\treadFnById: 'getJob',\n\tcustomizations: {\n\t\tgetters: {\n\t\t\tsupportsQueue: (state, getters, rootState, rootGetters) => rootGetters.supports('startJob'),\n\t\t\tsupportsCancel: (state, getters, rootState, rootGetters) => rootGetters.supports('stopJob')\n\t\t},\n\t\tactions: {\n\t\t\tasync queue(cx, {data}) {\n\t\t\t\tif (cx.getters.supportsQueue) {\n\t\t\t\t\tlet updated = await data.startJob();\n\t\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\t\treturn updated;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Queueing a batch job is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync cancel(cx, {data}) {\n\t\t\t\tif (cx.getters.supportsCancel) {\n\t\t\t\t\tlet updated = await data.stopJob();\n\t\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\t\treturn updated;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Canceling a batch job is not supported by the server.\");\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmutations: {\n\t\t}\n\t}\n});","import storeFactory from './storeFactory';\n\nexport default storeFactory({\n\tnamespace: 'services',\n\tlistFn: 'listServices',\n\tpaginateFn: 'paginateServices',\n\tcreateFn: 'createService',\n\tupdateFn: 'updateService',\n\tdeleteFn: 'deleteService',\n\treadFn: 'describeService',\n\treadFnById: 'getService',\n\tcustomizations: {\n\t\tgetters: {\n\t\t},\n\t\tactions: {\n\t\t},\n\t\tmutations: {\n\t\t}\n\t}\n});","import storeFactory from './storeFactory';\nimport Utils from '../utils';\n\nexport default storeFactory({\n\tnamespace: 'userProcesses',\n\tlistFn: 'listUserProcesses',\n\tpaginateFn: null,\n\tcreateFn: 'setUserProcess',\n\tupdateFn: 'replaceUserProcess',\n\tdeleteFn: 'deleteUserProcess',\n\treadFn: 'describeUserProcess',\n\treadFnById: 'getUserProcess',\n\tcustomizations: {\n\t\tgetters: {\n\t\t},\n\t\tactions: {\n\t\t},\n\t\tmutations: {\n\t\t\tdata(state, data) {\n\t\t\t\tstate.userProcesses = data\n\t\t\t\t\t.map(p => Object.assign(p, {namespace: 'user'}))\n\t\t\t\t\t.filter(p => (typeof p.id === 'string'))\n\t\t\t\t\t.sort(Utils.sortById);\n\t\t\t}\n\t\t}\n\t}\n});","import Vue from 'vue';\nimport Vuex from 'vuex';\n\nimport { OpenEO, FileTypes, Formula } from '@openeo/js-client';\nimport { ProcessRegistry } from '@openeo/js-commons';\nimport StacMigrate from '@radiantearth/stac-migrate';\nimport Utils from '../utils.js';\nimport ProcessRegistryExtension from '../registryExtension.js';\nimport Config from '../../config';\n// Sub-modules\nimport editor from './editor';\nimport files from './files';\nimport jobs from './jobs';\nimport services from './services';\nimport userProcesses from './userProcesses';\n\nVue.use(Vuex);\n\nFormula.arrayOperatorMapping = {\n\t'product': '*',\n\t'sum': '+'\n};\nFormula.reverseOperatorMapping = (() => {\n\tconst mapping = {};\n\tfor(const op in Formula.operatorMapping) {\n\t\tmapping[Formula.operatorMapping[op]] = op;\n\t}\n\treturn Object.assign(mapping, Formula.arrayOperatorMapping);\n})();\n\nconst getDefaultState = () => {\n\treturn {\n\t\tconnection: null,\n\t\tactiveRequests: 0,\n\t\tdiscoveryCompleted: false,\n\t\tisAuthenticated: false,\n\t\tuserInfo: {},\n\t\tconnectionError: null,\n\t\tbeforeLogoutListener: {},\n\t\tauthProviders: [],\n\t\tfileFormats: {},\n\t\tserviceTypes: {},\n\t\tudfRuntimes: {},\n\t\tprocessesUpdated: 0,\n\t\tcollections: [],\n\t\tprocessNamespaces: Config.processNamespaces || [],\n\t\tpageLimit: Config.pageLimit,\n\t};\n};\n\nexport default new Vuex.Store({\n//\tstrict: true, // Can't enable, js-client gets mutated externally\n\tmodules: {\n\t\teditor,\n\t\tfiles,\n\t\tjobs,\n\t\tservices,\n\t\tuserProcesses\n\t},\n\tstate: getDefaultState(),\n\tgetters: {\n\t\ttitle: (state) => {\n\t\t\tif (state.connection !== null && state.connection.capabilities() !== null) {\n\t\t\t\tconst title = state.connection.capabilities().title();\n\t\t\t\treturn title ? title : state.connection.getUrl();\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tcapabilities: (state) => state.connection !== null ? state.connection.capabilities() : null,\n\t\tsupports: (state) => (feature) => state.connection !== null && state.connection.capabilities() !== null && state.connection.capabilities().hasFeature(feature),\n\t\tcurrency: (state) => {\n\t\t\tlet currency = '';\n\t\t\tif (state.connection && state.connection.capabilities().currency() !== null) {\n\t\t\t\tcurrency = state.connection.capabilities().currency();\n\t\t\t}\n\t\t\treturn currency;\n\t\t},\n\t\tisConnected: (state) => state.connection !== null && state.connection.capabilities() !== null,\n\t\tisDiscovered: (state) => state.connection !== null && state.discoveryCompleted,\n\t\tsupportsBilling: (state) => state.connection !== null && state.connection.capabilities().currency() !== null,\n\t\tsupportsBillingPlans: (state) => state.connection !== null && state.connection.capabilities().currency() !== null && state.connection.capabilities().listPlans().length > 0,\n\t\tapiVersion: (state) => state.connection !== null ? state.connection.capabilities().apiVersion() : null,\n\t\tfileFormats: (state) => state.fileFormats instanceof FileTypes ? state.fileFormats.toJSON() : {input: {}, output: {}},\n\t\tcollectionDefaults: (state) => (id) => {\n\t\t\tconst collection = state.collections.find(c => c.id === id);\n\t\t\tif (!Utils.isObject(collection)) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tlet spatial_extent = null;\n\t\t\ttry {\n\t\t\t\tspatial_extent = Utils.extentToBBox(collection.extent.spatial.bbox[0]);\n\t\t\t} catch (error) {}\n\n\t\t\tlet temporal_extent = null;\n\t\t\ttry {\n\t\t\t\ttemporal_extent = collection.extent.temporal.interval[0];\n\t\t\t\tif (temporal_extent[0] === null && temporal_extent[1] === null) {\n\t\t\t\t\ttemporal_extent = null;\n\t\t\t\t}\n\t\t\t\telse if (temporal_extent[0] == temporal_extent[1]) {\n\t\t\t\t\ttemporal_extent[1] = null;\n\t\t\t\t}\n\t\t\t} catch (error) {}\n\t\n\t\t\tlet bands = null;\n\t\t\treturn {id, spatial_extent, temporal_extent, bands};\n\t\t},\n\t\tprocesses: (state) => {\n\t\t\tlet registry\n\t\t\tif (state.processesUpdated && state.connection !== null) {\n\t\t\t\tregistry = state.connection.processes;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tregistry = new ProcessRegistry();\n\t\t\t}\n\t\t\treturn Object.assign(registry, ProcessRegistryExtension);\n\t\t},\n\t\tsupportsMath: (state, getters) => {\n\t\t\tif (!state.processesUpdated) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor(let i in Formula.operatorMapping) {\n\t\t\t\tlet processId = Formula.operatorMapping[i];\n\t\t\t\tif (!getters.processes.has(processId)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t},\n\tactions: {\n\t\tasync connect(cx, url) {\n\t\t\tawait cx.dispatch('logout');\n\n\t\t\t// Connect and request capabilities\n\t\t\tlet connection = null;\n\t\t\ttry {\n\t\t\t\tconnection = await OpenEO.connect(url, {addNamespaceToProcess: true});\n\t\t\t} catch (error) {\n\t\t\t\tif(error.message == 'Network Error' || error.name == 'NetworkError') {\n\t\t\t\t\terror = new Error(\"Server is not available.\");\n\t\t\t\t}\n\t\t\t\tcx.commit('setConnectionError', error);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Request auth provider list\n\t\t\ttry {\n\t\t\t\tconst providers = await connection.listAuthProviders();\n\t\t\t\tcx.commit('authProviders', providers);\n\t\t\t} catch (error) {\n\t\t\t\tcx.commit('setConnectionError', error);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconnection.on('authProviderChanged', async (provider) => {\n\t\t\t\tcx.commit('authenticated', provider !== null);\n\t\t\t\tif (cx.state.discoveryCompleted) {\n\t\t\t\t\tawait cx.dispatch('discover', true);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconnection.on('processesChanged', () => cx.commit('updateProcesses'));\n\n\t\t\t// Only commit the connection change after requesting the auth providers\n\t\t\t// as this indicates that the connection procedure has finished.\n\t\t\tcx.commit('connection', connection);\n\n\t\t\treturn true;\n\t\t},\n\n\t\tasync discover(cx, refresh = false) {\n\t\t\tlet promises = [];\n\t\t\tlet errors = [];\n\t\t\tlet capabilities = cx.state.connection.capabilities();\n\n\t\t\t// Request collections\n\t\t\tif (capabilities.hasFeature('listCollections')) {\n\t\t\t\tpromises.push(cx.state.connection.listCollections()\n\t\t\t\t\t.then(response => cx.commit('collections', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\t\t\telse {\n\t\t\t\terrors.push(new Error(\"Collections not supported by the server.\"));\n\t\t\t}\n\n\t\t\tif (!refresh) { // Only load on first discovery, otherwise the JS client already refreshes the data\n\t\t\t\t// Request processes\n\t\t\t\tif (capabilities.hasFeature('listProcesses')) {\n\t\t\t\t\tpromises.push(cx.state.connection.listProcesses()\n\t\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\terrors.push(new Error(\"Pre-defined processes not supported by the server.\"));\n\t\t\t\t}\n\n\t\t\t\t// Request processes from namespaces\n\t\t\t\tif (cx.state.processNamespaces.length > 0) {\n\t\t\t\t\tfor(let namespace of cx.state.processNamespaces) {\n\t\t\t\t\t\tpromises.push(cx.state.connection.listProcesses(namespace)\n\t\t\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Request custom processes\n\t\t\t\tif (capabilities.hasFeature('listUserProcesses') && cx.state.connection.isAuthenticated()) {\n\t\t\t\t\tpromises.push(cx.dispatch('userProcesses/list')\n\t\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Request supported output formats\n\t\t\tif (capabilities.hasFeature('listFileTypes')) {\n\t\t\t\tpromises.push(cx.state.connection.listFileTypes()\n\t\t\t\t\t.then(response => cx.commit('fileFormats', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\n\t\t\t// Request supported service types\n\t\t\tif (capabilities.hasFeature('listServiceTypes')) {\n\t\t\t\tpromises.push(cx.state.connection.listServiceTypes()\n\t\t\t\t\t.then(response => cx.commit('serviceTypes', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\n\t\t\t// Request supported UDF runtimes\n\t\t\tif (capabilities.hasFeature('listUdfRuntimes')) {\n\t\t\t\tpromises.push(cx.state.connection.listUdfRuntimes()\n\t\t\t\t\t.then(response => cx.commit('udfRuntimes', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\n\t\t\t// Request user account information\n\t\t\tconst promise = cx.dispatch('describeAccount')\n\t\t\t\t.catch(error => errors.push(error));\n\t\t\tpromises.push(promise);\n\n\t\t\tawait Promise.all(promises);\n\n\t\t\t// Request initial process\n\t\t\tif (!refresh) {\n\t\t\t\ttry {\n\t\t\t\t\tawait cx.dispatch('editor/loadInitialProcess');\n\t\t\t\t} catch (error) {\n\t\t\t\t\terrors.push(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Request results for app mode\n\t\t\tif (!refresh) {\n\t\t\t\ttry {\n\t\t\t\t\tawait cx.dispatch('editor/loadForAppMode');\n\t\t\t\t} catch (error) {\n\t\t\t\t\terrors.push(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcx.commit('discoveryCompleted');\n\t\t\treturn errors;\n\t\t},\n\n\t\t// Request user account info\n\t\tasync describeAccount(cx) {\n\t\t\tif (cx.getters.supports('describeAccount') && cx.state.isAuthenticated) {\n\t\t\t\tconst response = await cx.state.connection.describeAccount();\n\t\t\t\tcx.commit('userInfo', response);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcx.commit('userInfo');\n\t\t\t}\n\t\t},\n\n\t\tasync describeCollection(cx, id) {\n\t\t\tlet collection = cx.state.collections.find(c => c.id === id);\n\t\t\tif (!collection || !collection._loaded) {\n\t\t\t\tcollection = await cx.state.connection.describeCollection(id);\n\t\t\t\tcollection = StacMigrate.collection(collection, false);\n\t\t\t\tcx.commit('fillCollection', collection);\n\t\t\t}\n\t\t\treturn collection;\n\t\t},\n\n\t\tasync loadProcess(cx, {id, namespace}) {\n\t\t\tconst process = cx.getters.processes.get(id, namespace);\n\t\t\tif (!Utils.isObject(process)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (process.namespace !== 'backend') {\n\t\t\t\tif (process.namespace === 'user') {\n\t\t\t\t\tawait cx.dispatch('userProcesses/read', {data: process});\n\t\t\t\t}\n\t\t\t\telse if (process.namespace && namespace !== 'backend') {\n\t\t\t\t\tawait cx.state.connection.describeProcess(id, process.namespace);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cx.getters.processes.get(id, namespace);\n\t\t},\n\n\t\tasync beforeLogout(cx) {\n\t\t\tawait Promise.all(Object.values(cx.state.beforeLogoutListener).map(listener => listener()));\n\t\t},\n\n\t\tasync logout(cx, disconnect = false) {\n\t\t\tawait cx.dispatch('beforeLogout');\n\n\t\t\tif (disconnect) {\n\t\t\t\t// Remove listeners, we don't need them anymore if we connect anyway\n\t\t\t\tcx.state.connection.off('authProviderChanged');\n\t\t\t\tcx.state.connection.off('processesChanged');\n\t\t\t}\n\n\t\t\tif (cx.state.isAuthenticated) {\n\t\t\t\t// Logout (mostly for OIDC)\n\t\t\t\tconst authProvider = cx.state.connection.getAuthProvider();\n\t\t\t\tif (authProvider !== null) {\n\t\t\t\t\tawait authProvider.logout();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (disconnect) {\n\t\t\t\t// Reset values\n\t\t\t\tcx.commit('reset', this.isAuthenticated);\n\t\t\t\tcx.commit('jobs/reset');\n\t\t\t\tcx.commit('files/reset');\n\t\t\t\tcx.commit('services/reset');\n\t\t\t\tcx.commit('userProcesses/reset');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcx.commit('authenticated', false);\n\t\t\t}\n\t\t}\n\t},\n\tmutations: {\n\t\tdiscoveryCompleted(state, completed = true) {\n\t\t\tstate.discoveryCompleted = completed;\n\t\t},\n\t\tconnection(state, connection) {\n\t\t\tstate.connection = connection;\n\t\t},\n\t\tauthProviders(state, authProviders) {\n\t\t\tstate.authProviders = authProviders;\n\t\t},\n\t\tuserInfo(state, info) {\n\t\t\tstate.userInfo = Utils.isObject(info) ? info : {};\n\t\t},\n\t\tfileFormats(state, fileFormats) {\n\t\t\tstate.fileFormats = fileFormats;\n\t\t},\n\t\tserviceTypes(state, serviceTypes) {\n\t\t\t// Make keys uppercase for simplicity\n\t\t\tif (Utils.isObject(serviceTypes)) {\n\t\t\t\tconst obj = {};\n\t\t\t\tfor(const key in serviceTypes) {\n\t\t\t\t\tobj[key.toUpperCase()] = serviceTypes[key];\n\t\t\t\t}\n\t\t\t\tstate.serviceTypes = obj;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstate.serviceTypes = serviceTypes;\n\t\t\t}\n\t\t},\n\t\tudfRuntimes(state, udfRuntimes) {\n\t\t\tstate.udfRuntimes = udfRuntimes;\n\t\t},\n\t\tupdateProcesses(state) {\n\t\t\tstate.processesUpdated++;\n\t\t},\n\t\taddProcessNamespacesToRequest(state, namespaces) {\n\t\t\tif (typeof namespaces === 'string') {\n\t\t\t\tnamespaces = namespaces.split(',');\n\t\t\t}\n\t\t\tif (!Array.isArray(namespaces)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor(let namespace of namespaces) {\n\t\t\t\tif (namespace && !state.processNamespaces.includes(namespace)) {\n\t\t\t\t\tstate.processNamespaces.push(namespace);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfillCollection(state, data) {\n\t\t\tlet index = state.collections.findIndex(c => c.id === data.id);\n\t\t\tif (index !== -1) {\n\t\t\t\tdata._loaded = true;\n\t\t\t\tVue.set(state.collections, index, data);\n\t\t\t}\n\t\t},\n\t\tcollections(state, data) {\n\t\t\tstate.collections = data.collections\n\t\t\t\t.map(c => StacMigrate.collection(c, false))\n\t\t\t\t.filter(c => (typeof c.id === 'string'))\n\t\t\t\t.sort(Utils.sortById);\n\t\t},\n\t\tsetConnectionError(state, error) {\n\t\t\tstate.connectionError = error;\n\t\t},\n\t\tauthenticated(state, isAuthenticated) {\n\t\t\tstate.isAuthenticated = isAuthenticated;\n\t\t\tif (!isAuthenticated) {\n\t\t\t\tstate.userInfo = {};\n\t\t\t}\n\t\t},\n\t\treset(state, keepConnection = false) {\n\t\t\tObject.assign(state, getDefaultState(), {\n\t\t\t\tconnection: keepConnection ? state.connection : null\n\t\t\t});\n\t\t},\n\t\tstartActiveRequest(state) {\n\t\t\tstate.activeRequests += 1;\n\t\t},\n\t\tendActiveRequest(state) {\n\t\t\tstate.activeRequests -= 1;\n\t\t},\n\t\tbeforeLogoutListener(state, {key, listener}) {\n\t\t\tif (typeof listener === 'function') {\n\t\t\t\tstate.beforeLogoutListener[key] = listener;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tVue.delete(state.beforeLogoutListener, key);\n\t\t\t}\n\t\t}\n\t}\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\",class:{connecting: !_vm.isDiscovered}},[_c('transition',{attrs:{\"name\":\"connect-fade\",\"mode\":\"out-in\"}},[(!_vm.isDiscovered)?_c('ConnectForm',{key:\"1\",attrs:{\"skipLogin\":_vm.skipLogin}}):_c('IDE',{key:\"2\"})],1),_vm._l((_vm.modals),function(modal){return [_c(modal.component,_vm._g(_vm._b({key:modal.id,tag:\"component\",on:{\"closed\":function($event){return _vm.hideModal(modal)}}},'component',modal.props,false),modal.events))]}),_c('vue-snotify'),(_vm.tourType)?_c('Tour',{model:{value:(_vm.tourType),callback:function ($$v) {_vm.tourType=$$v},expression:\"tourType\"}}):_vm._e(),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.activeRequests > 0),expression:\"activeRequests > 0\"}],attrs:{\"id\":\"activeRequests\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-2x\"})])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"connectPage\"},[_c('Logo'),_c('div',{staticClass:\"connectContainer\"},[_c('div',{staticClass:\"helpBtn\",attrs:{\"title\":\"Show help\"},on:{\"click\":_vm.showHelp}},[_c('i',{staticClass:\"fas fa-question fa-fw\"}),_vm._v(\" Help\")]),(_vm.httpsUrl)?_c('div',{staticClass:\"message error\"},[_c('i',{staticClass:\"fas fa-shield-alt\"}),_c('span',[_vm._v(\"You are using an \"),_c('strong',[_vm._v(\"insecure\")]),_vm._v(\" HTTP connection, which is not encrypted. Please use HTTPS if possible.\"),_c('br'),_c('a',{attrs:{\"href\":_vm.httpsUrl}},[_vm._v(\"Click here to switch to a secured HTTPS connection.\")])])]):_vm._e(),(_vm.message)?_c('div',{staticClass:\"message warning\"},[_c('i',{staticClass:\"fas fa-bullhorn\"}),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})]):_vm._e(),_c('transition',{attrs:{\"name\":\"connect-fade\",\"mode\":\"out-in\"},on:{\"before-enter\":_vm.initProviders}},[(_vm.showConnectForm)?_c('form',{staticClass:\"connect\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm.apply(null, arguments)}}},[_c('h3',[_vm._v(\"Connect to server\")]),_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"serverUrl\"}},[_vm._v(\"URL:\")]),_c('div',{staticClass:\"input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy.trim\",value:(_vm.serverUrl),expression:\"serverUrl\",modifiers:{\"lazy\":true,\"trim\":true}}],staticClass:\"tour-connect-url\",attrs:{\"type\":\"text\",\"id\":\"serverUrl\",\"disabled\":_vm.autoConnect},domProps:{\"value\":(_vm.serverUrl)},on:{\"change\":function($event){_vm.serverUrl=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.allowOtherServers)?_c('button',{staticClass:\"tour-connect-history\",attrs:{\"type\":\"button\",\"title\":\"Select previously used server\"},on:{\"click\":_vm.showServerSelector}},[_c('i',{staticClass:\"fas fa-book\"})]):_vm._e()])]),_c('div',{staticClass:\"row\"},[_c('button',{staticClass:\"connectBtn tour-connect-retry\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_vm._v(\" Connect\")])])]):(_vm.showLoginForm)?_c('div',{staticClass:\"login\"},[_c('h3',[_vm._v(\"Log in to \"+_vm._s(_vm.title))]),_c('Tabs',{ref:\"providers\",attrs:{\"id\":\"credentials\",\"pills\":true,\"pillsMultiline\":true},on:{\"selected\":_vm.providerSelected},scopedSlots:_vm._u([{key:\"dynamic\",fn:function({ tab }){return [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.initDiscovery(tab.data)}}},[(tab.data.description)?_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('span',[_vm._v(_vm._s(tab.data.description))])]):_vm._e(),(!_vm.hasPredefinedOidcClientId)?[_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"password\"}},[_vm._v(\"Client ID:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.userOidcClientId),expression:\"userOidcClientId\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"type\":\"text\",\"required\":\"required\"},domProps:{\"value\":(_vm.userOidcClientId)},on:{\"input\":function($event){if($event.target.composing)return;_vm.userOidcClientId=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-exclamation-circle\"}),_c('span',[_vm._v(\"You need to specify the \"),_c('em',[_vm._v(\"Client ID\")]),_vm._v(\" provided to you by the provider. You need to allow the \"),_c('a',{attrs:{\"href\":_vm.oidcRedirectUrl,\"target\":\"_blank\",\"title\":_vm.oidcRedirectUrl}},[_vm._v(\"URL of this service\")]),_vm._v(\" as redirect URL with the authentication service.\")])])]:_vm._e(),_c('div',{staticClass:\"row bottom\"},[_c('TermsOfServiceConsent'),_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-window-restore\"}),_c('span',[_vm._v(\"Clicking the button below may open a new window for login.\")])]),_c('button',{staticClass:\"connectBtn\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_c('i',{staticClass:\"fab fa-openid\"}),_vm._v(\" Log in with \"+_vm._s(tab.name))])],1)],2)]}},(_vm.basicProvider)?{key:\"basic\",fn:function({ tab }){return [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.initDiscovery(tab.data)}}},[_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('span',[_vm._v(\"The \"),_c('tt',[_vm._v(\"HTTP Basic\")]),_vm._v(\" authentication method is mostly used for development and testing purposes.\")],1)]),_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"username\"}},[_vm._v(\"Username:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.username),expression:\"username\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"id\":\"username\",\"type\":\"text\",\"required\":\"required\"},domProps:{\"value\":(_vm.username)},on:{\"input\":function($event){if($event.target.composing)return;_vm.username=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"password\"}},[_vm._v(\"Password:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.password),expression:\"password\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"id\":\"password\",\"type\":\"password\",\"required\":\"required\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing)return;_vm.password=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('div',{staticClass:\"row bottom\"},[_c('TermsOfServiceConsent'),_c('button',{staticClass:\"connectBtn\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_vm._v(\" Log in\")])],1)])]}}:null,{key:\"noauth\",fn:function(){return [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.initDiscovery()}}},[_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('span',[_vm._v(\"Choose this if you don't have credentials for the service provider and just want to explore the service with its available data and processes. You may not be able to process any data.\")])]),_c('div',{staticClass:\"row bottom\"},[_c('TermsOfServiceConsent'),_c('button',{staticClass:\"connectBtn\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_c('i',{staticClass:\"fas fa-user-slash\"}),_vm._v(\" Proceed without logging in\")])],1)])]},proxy:true}],null,true)}),(_vm.allowOtherServers)?_c('div',{staticClass:\"switch tour-login-switch\"},[_c('a',{on:{\"click\":function($event){return _vm.switchServer()}}},[_vm._v(\"Switch server\")])]):_vm._e()],1):_vm._e()])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.show)?_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-check-circle\"}),(_vm.terms && _vm.privacy)?_c('span',[_vm._v(\"By clicking the button below, you agree to our \"),_c('a',{attrs:{\"href\":_vm.terms.href,\"title\":_vm.terms.title,\"target\":\"_blank\"}},[_vm._v(\"Terms of Service\")]),_vm._v(\" and that you have read our \"),_c('a',{attrs:{\"href\":_vm.privacy.href,\"title\":_vm.privacy.title,\"target\":\"_blank\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\".\")]):(_vm.terms)?_c('span',[_vm._v(\"By clicking the button below, you agree to our \"),_c('a',{attrs:{\"href\":_vm.terms.href,\"title\":_vm.terms.title,\"target\":\"_blank\"}},[_vm._v(\"Terms of Service\")]),_vm._v(\".\")]):(_vm.privacy)?_c('span',[_vm._v(\"By clicking the button below, you agree that you have read our \"),_c('a',{attrs:{\"href\":_vm.privacy.href,\"title\":_vm.privacy.title,\"target\":\"_blank\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\".\")]):_vm._e()]):_vm._e()\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!./TermsOfServiceConsent.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!./TermsOfServiceConsent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TermsOfServiceConsent.vue?vue&type=template&id=52726e94\"\nimport script from \"./TermsOfServiceConsent.vue?vue&type=script&lang=js\"\nexport * from \"./TermsOfServiceConsent.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","\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!./ConnectForm.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!./ConnectForm.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ConnectForm.vue?vue&type=template&id=714226be&scoped=true\"\nimport script from \"./ConnectForm.vue?vue&type=script&lang=js\"\nexport * from \"./ConnectForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./ConnectForm.vue?vue&type=style&index=0&id=714226be&prod&lang=scss&scoped=true\"\nimport style1 from \"./ConnectForm.vue?vue&type=style&index=1&id=714226be&prod&lang=css\"\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 \"714226be\",\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!./Page.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!./Page.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Page.vue?vue&type=template&id=5b68e2ee\"\nimport script from \"./Page.vue?vue&type=script&lang=js\"\nexport * from \"./Page.vue?vue&type=script&lang=js\"\nimport style0 from \"./Page.vue?vue&type=style&index=0&id=5b68e2ee&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","export default {\n\n}","import Vue from 'vue';\nimport Snotify from 'vue-snotify';\nimport 'vue-snotify/styles/simple.css';\nimport store from './store/index';\nimport Config from '../config';\nimport Page from './Page.vue';\nimport filters from './filters';\nimport Clipboard from 'v-clipboard';\n\nVue.use(Snotify);\nVue.use(Clipboard);\n\n// Don't show too many repetitive error messages\nVue.prototype.$snotify.singleError = function () {\n\tlet message = arguments[0];\n\tif (message !== this.lastMessage) {\n\t\tthis.lastMessage = message;\n\t\tthis.error(...arguments);\n\t\tsetTimeout(() => this.lastMessage = null, 1000);\n\t}\n};\n\nVue.config.productionTip = false;\nVue.config.errorHandler = function (err, vm, info) {\n\tconsole.error(err, info);\n\tif (!vm || !vm.$snotify) {\n\t\treturn;\n\t}\n\n\tlet message;\n\tif (err instanceof Error) {\n\t\tmessage = err.message;\n\t}\n\telse if (typeof err === 'string') {\n\t\tmessage = err;\n\t}\n\n\tif (message) {\n\t\tvm.$snotify.singleError(message, 'Error', Config.snotifyDefaults);\n\t}\n};\nVue.prototype.$config = Config;\n\nfor(var name in filters) {\n\tVue.filter(name, filters[name]);\n}\n\nconst app = new Vue({\n\tstore,\n\trender: h => h(Page)\n}).$mount('#app');\n\nwindow.addEventListener(\"unhandledrejection\", function(event) {\n\tconsole.warn(event);\n\tif (typeof event.reason === 'String' || event.reason instanceof Error) {\n\t\tapp.$snotify.singleError(event.reason, 'Error', Config.snotifyDefaults);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n});\n","import Utils from './utils';\nimport { ProcessSchema, ProcessDataType } from '@openeo/js-commons';\n\nexport default class Process {\n\n\tstatic isMathProcess(p, operatorMapping = {}) {\n\t\tif (!Utils.isObject(p)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Skip processes handled by operators, if given\n\t\tlet operatorProcesses = Object.values(operatorMapping);\n\t\tif (operatorProcesses.includes(p.id)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Process must return a numerical value\n\t\tif (!Utils.isObject(p.returns) || !p.returns.schema) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet allowedTypes = ['number', 'integer', 'any'];\n\t\tlet returns = new ProcessSchema(p.returns.schema);\n\t\tif (!allowedTypes.includes(returns.nativeDataType())) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Required Process parameters must accept numerical values\n\t\tif (Array.isArray(p.parameters)) {\n\t\t\tfor(var i in p.parameters) {\n\t\t\t\tlet param = p.parameters[i];\n\t\t\t\tif (param.optional) {\n\t\t\t\t\tcontinue; // Skip optional parameters\n\t\t\t\t}\n\t\t\t\tif (!param.schema) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tlet schema = new ProcessSchema(param.schema);\n\t\t\t\tif (!allowedTypes.includes(schema.nativeDataType())) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t// ToDo: Parameters with a dash (and other operators) in them are a problem\n\n\t\treturn true;\n\t}\n\n\tstatic arrayOf(datatype) {\n\t\tif (!(datatype instanceof ProcessDataType)) {\n\t\t\tdatatype = new ProcessDataType(datatype);\n\t\t}\n\t\tif (datatype.nativeDataType() === 'array' && Utils.isObject(datatype.schema.items)) {\n\t\t\tlet subtype = new ProcessDataType(datatype.schema.items);\n\t\t\treturn subtype.dataType();\n\t\t}\n\t\treturn undefined;\n\t}\n}","import VueUtils from '@openeo/vue-components/utils';\nimport { Job, OpenEO, Service, UserFile, UserProcess } from '@openeo/js-client';\nimport { mapState, mapActions, mapMutations, mapGetters } from 'vuex';\nimport contentType from 'content-type';\nimport Config from '../config';\nimport axios from 'axios';\n\nclass Utils extends VueUtils {\n\n\tstatic axios() {\n\t\treturn OpenEO.Environment.axios;\n\t}\n\n\tstatic saveToFile(content, filename) {\n\t\treturn OpenEO.Environment.saveToFile(content, filename);\n\t}\n\n\tstatic getPreviewLinkFromSTAC(stac) {\n\t\tif (Utils.isObject(stac) && Array.isArray(stac.links)) {\n\t\t\tlet link = stac.links.find(link => Utils.isObject(link) && typeof link.rel === 'string' && Config.supportedMapServices.includes(link.rel.toLowerCase()));\n\t\t\tif (link) {\n\t\t\t\treturn link;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tstatic isMapServiceSupported(mapType) {\n\t\tif (typeof mapType !== 'string') {\n\t\t\treturn false;\n\t\t}\n\t\treturn Config.supportedMapServices.includes(mapType.toLowerCase());\n\t}\n\n\tstatic parseNodata(value) {\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value.map(nodata => Utils.parseNodata(nodata));\n\t\t}\n\t\telse {\n\t\t\treturn typeof value === \"string\" && value.toLowerCase() === \"nan\" ? Number.NaN : value;\n\t\t}\n\t}\n\n\tstatic isActiveJobStatusCode(status) {\n\t\tif (typeof status !== 'string') {\n\t\t\treturn null;\n\t\t}\n\t\tswitch (status.toLowerCase()) {\n\t\t\tcase 'running':\n\t\t\tcase 'queued':\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tstatic exception(vm, error, alt) {\n\t\tconsole.error(error);\n\t\tvar buttons = [];\n\t\tvar title = null; \n\t\tvar message = alt;\n\t\tif (Utils.isObject(error) && typeof error.message === 'string') {\n\t\t\tif (error.code > 0) {\n\t\t\t\ttitle = \"Error #\" + error.code; \n\t\t\t}\n\t\t\telse {\n\t\t\t\ttitle = alt; \n\t\t\t}\n\t\t\tmessage = error.message;\n\n\t\t\tbuttons.push({\n\t\t\t\ttext: 'Show Details',\n\t\t\t\taction: () => vm.$root.$emit('showError', error)\n\t\t\t});\n\t\t}\n\t\telse if (typeof error === 'string') {\n\t\t\tmessage = error; \n\t\t\ttitle = alt; \n\t\t}\n\t\tbuttons.push({\n\t\t\ttext: 'Copy',\n\t\t\taction: toast => {\n\t\t\t\tlet success = vm.$clipboard(message);\n\t\t\t\tlet button = toast.config.buttons.find(btn => btn.text === 'Copy');\n\t\t\t\tif (button) {\n\t\t\t\t\tbutton.text = success ? \"✔️ Copied\" : \"❌ Failed\";\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tvar typeDefaults = {\n\t\t\tbuttons\n\t\t}; \n\t\tvm.$snotify.singleError(message, title, Object.assign({}, vm.$config.snotifyDefaults, typeDefaults)); \n\t} \n\tstatic error(vm, message, title = null) {\n\t\tvm.$snotify.singleError(message, title, vm.$config.snotifyDefaults); \n\t}\n\tstatic warn(vm, message, title = null) {\n\t\tvm.$snotify.warning(message, title, vm.$config.snotifyDefaults);\n\t}\n\tstatic info(vm, message, title = null) {\n\t\tvm.$snotify.info(message, title, vm.$config.snotifyDefaults); \n\t}\n\tstatic ok(vm, message, title = null) {\n\t\tvm.$snotify.success(message, title, vm.$config.snotifyDefaults); \n\t}\n\tstatic confirm(vm, message, buttons = []) {\n\t\tvar typeDefaults = {\n\t\t\tbuttons: buttons\n\t\t}; \n\t\tvm.$snotify.confirm(message, null, Object.assign({}, vm.$config.snotifyDefaults, typeDefaults)); \n\t}\n\t\n\tstatic isChildOfModal(that) {\n\t\treturn that.$parent && that.$parent.$options.name == 'Modal'; \n\t}\n\n\tstatic getFileNameFromURL(url) {\n\t\t//this removes the anchor at the end, if there is one\n\t\turl = url.substring(0, (url.indexOf(\"#\") == -1)?url.length:url.indexOf(\"#\")); \n\t\t//this removes the query after the file name, if there is one\n\t\turl = url.substring(0, (url.indexOf(\"?\") == -1)?url.length:url.indexOf(\"?\")); \n\t\t//this removes everything before the last slash in the path\n\t\turl = url.substring(url.lastIndexOf(\"/\") + 1, url.length); \n\t\treturn url; \n\t}\n\n\tstatic makeFileName(filename, type) {\n\t\tif (filename.includes('.') || typeof type !== 'string') {\n\t\t\treturn filename;\n\t\t}\n\t\tif (!type.includes('/')) {\n\t\t\treturn filename + '.' + type;\n\t\t}\n\n\t\tlet ext = null;\n\t\ttry {\n\t\t\tlet mime = contentType.parse(type);\n\t\t\tswitch(mime.type.toLowerCase()) {\n\t\t\t\tcase 'application/json':\n\t\t\t\tcase 'application/zip':\n\t\t\t\tcase 'image/png':\n\t\t\t\tcase 'image/jpg':\n\t\t\t\tcase 'image/jpeg':\n\t\t\t\tcase 'image/gif':\n\t\t\t\tcase 'image/tiff':\n\t\t\t\tcase 'text/csv':\n\t\t\t\tcase 'text/html':\n\t\t\t\t\text = type.split('/')[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'text/plain':\n\t\t\t\t\text = 'txt';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'application/netcdf':\n\t\t\t\tcase 'application/x-netcdf':\n\t\t\t\t\text = 'nc'\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t} catch (error) {}\n\n\t\tif (ext !== null) {\n\t\t\treturn filename + '.' + ext;\n\t\t}\n\t\telse {\n\t\t\treturn filename;\n\t\t}\n\t}\n\n\tstatic replaceParam(url, paramName, paramValue) {\n\t\tvar urlObj = new URL(url);\n\t\tvar query = new URLSearchParams(urlObj.search); \n\t\tquery.set(paramName, paramValue);\n\t\turlObj.search = query.toString();\n\t\treturn urlObj.toString();\n\t}\n\n\tstatic paramsForPrefix(prefix, sep = '~') {\n\t\tprefix += sep;\n\t\tconst urlParams = new URLSearchParams(window.location.search);\n\t\tlet params = {};\n\t\tfor(let [key, value] of urlParams) {\n\t\t\tif (key.startsWith(prefix)) {\n\t\t\t\tparams[key.substring(prefix.length)] = value;\n\t\t\t}\n\t\t}\n\t\treturn params; \n\t}\n\n\tstatic param(name) {\n\t\tconst urlParams = new URLSearchParams(window.location.search);\n\t\tif (urlParams.has(name)) {\n\t\t\treturn urlParams.get(name);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic isBboxInWebMercator(bboxes) {\n\t\tif (!bboxes) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!Array.isArray(bboxes)) {\n\t\t\tbboxes = [bboxes];\n\t\t}\n\t\tlet maxBounds = {south: -85.06, north: 85.06}; // Max. south/north bounds for Web Mercator\n\t\treturn !bboxes.find(bbox => bbox.south < maxBounds.south || bbox.north > maxBounds.north);\n\t}\n\tstatic extentToBBox(extent) {\n\t\tif (!Array.isArray(extent)) {\n\t\t\treturn null;\n\t\t}\n\t\tvar hasZ = extent.length >= 6;\n let obj = {\n\t\t\twest: extent[0],\n\t\t\teast: extent[hasZ ? 3 : 2],\n\t\t\tsouth: extent[1],\n\t\t\tnorth: extent[hasZ ? 4 : 3]\n\t\t};\n\t\tif (hasZ) {\n\t\t\tobj.base = extent[2];\n\t\t\tobj.height = extent[5];\n\t\t}\n\t\treturn obj;\n\t}\n\tstatic sortById(a, b) {\n\t\treturn VueUtils.compareStringCaseInsensitive(a.id, b.id);\n\t}\n\n\tstatic range(start, end) {\n\t\tif (end < start) {\n\t\t\treturn [];\n\t\t}\n\t\treturn Array.from({length: 1 + end - start}, (_, i) => start + i);\n\t}\n\n\tstatic newArray(length, defaultValue = 0) {\n\t\tif (length < 1) {\n\t\t\treturn [];\n\t\t}\n\t\treturn Array.from({length}, () => defaultValue);\n\t}\n\n\tstatic fitArray(arr, length, defaultValue = 0) {\n\t\tif (length < 1) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (length > arr.length) {\n\t\t\treturn arr.concat(Utils.newArray(length - arr.length, defaultValue));\n\t\t}\n\t\telse if (length < arr.length) {\n\t\t\treturn arr.slice(0, length);\n\t\t}\n\t\telse {\n\t\t\treturn arr;\n\t\t}\n\t}\n\n\t// Based on https://github.com/hughsk/path-sort\n\tstatic sortByPath(a, b) {\n\t\ta = a.split('/');\n\t\tb = b.split('/');\n\t\tvar l = Math.max(a.length, b.length);\n\t\tfor (var i = 0; i < l; i += 1) {\n\t\t\tif (!(i in a)) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\telse if (!(i in b)) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (a[i].toUpperCase() > b[i].toUpperCase()) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (a[i].toUpperCase() < b[i].toUpperCase()) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t\tif (a.length < b.length) {\n\t\t\treturn -1;\n\t\t}\n\t\telse if (a.length > b.length) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tstatic getUniqueId() {\n\t\treturn Math.random().toString(36).substr(2, 9);\n\t}\n\n\tstatic formatIdOrTitle(value) {\n\t\tif (typeof value !== 'string') {\n\t\t\treturn value;\n\t\t}\n\t\telse if (value.startsWith('#')) {\n\t\t\treturn `${value}`;\n\t}\n\t\telse if (value === 'Unnamed') {\n\t\t\treturn `${value}`;\n\t\t}\n\t\telse {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tstatic getResourceTitle(obj, showType = false) {\n\t\tlet title;\n\t\tlet isObj = Utils.isObject(obj);\n\t\tif (typeof obj === 'string') {\n\t\t\ttitle = obj;\n\t\t}\n\t\telse if (obj instanceof UserProcess) {\n\t\t\ttitle = obj.id;\n\t\t}\n\t\telse if (obj instanceof UserFile) {\n\t\t\ttitle = obj.path;\n\t\t}\n\t\telse if (isObj && typeof obj.stac_version === 'string') {\n\t\t\ttitle = obj.id;\n\t\t}\n\t\telse if (isObj && obj.title) {\n\t\t\ttitle = obj.title;\n\t\t}\n\t\telse if (isObj && obj.id) {\n\t\t\tlet id = new String(obj.id);\n\t\t\tif (id.length > 10) {\n\t\t\t\ttitle = obj.id.substr(0, 5) + '…' + obj.id.substr(-5);\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttitle = obj.id\n\t\t\t}\n\t\t\ttitle = '#' + title;\n\t\t}\n\t\telse {\n\t\t\ttitle = 'Unnamed';\n\t\t}\n\t\tif (showType) {\n\t\t\tlet type;\n\t\t\tif (typeof showType === 'string') {\n\t\t\t\ttype = showType;\n\t\t\t}\n\t\t\telse if (obj instanceof Job) {\n\t\t\t\ttype = 'Job';\n\t\t\t}\n\t\t\telse if (obj instanceof Service) {\n\t\t\t\ttype = 'Service';\n\t\t\t}\n\t\t\telse if (obj instanceof UserProcess) {\n\t\t\t\ttype = 'Process';\n\t\t\t}\n\t\t\telse if (obj instanceof UserFile) {\n\t\t\t\ttype = 'File';\n\t\t\t}\n\t\t\telse if (isObj && typeof obj.stac_version === 'string' && obj.type === 'Collection') {\n\t\t\t\ttype = obj.type;\n\t\t\t}\n\n\t\t\tif (type) {\n\t\t\t\ttitle = `${title} (${type})`;\n\t\t\t}\n\t\t}\n\t\treturn title;\n\t}\n\n\tstatic resolveJsonRefs(schema) {\n\t\tvar resolver = obj => {\n\t\t\tif (!obj || typeof obj !== 'object') {\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tfor(var key in obj) {\n\t\t\t\tvar value = obj[key];\n\t\t\t\tif (Utils.isObject(value) && typeof value.$ref === 'string' && value.$ref.match(/^#(\\/[^\\/]+)+$/i)) {\n\t\t\t\t\tvar parts = value.$ref.split('/').slice(1);\n\t\t\t\t\tvar result = schema;\n\t\t\t\t\twhile (parts.length) {\n\t\t\t\t\t\tlet propertyName = parts.shift();\n\t\t\t\t\t\tresult = result[propertyName];\n\t\t\t\t\t\tif (typeof result === 'undefined') {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tobj[key] = result;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tobj[key] = resolver(value);\n\t\t\t}\n\t\t\treturn obj;\n\t\t};\n\t\treturn resolver(schema);\n\t}\n\tstatic extractUDPParams(process) {\n\t\tconst pos = process.indexOf('@');\n\t\tif (pos < 0) {\n\t\t\treturn [process, undefined];\n\t\t}\n\t\telse {\n\t\t\tconst id = process.substring(0, pos);\n\t\t\tconst namespace = process.substring(pos + 1);\n\t\t\treturn [id, namespace];\n\t\t}\n\t}\n\tstatic getProcessingExpression(stac) {\n\t\tlet key = 'processing:expression';\n\t\tif (!Utils.isObject(stac) || !stac[key]) {\n\t\t\treturn null;\n\t\t}\n\t\tlet obj = stac[key];\n\t\tif (Array.isArray(obj)) {\n\t\t\tif (obj.length > 0) {\n\t\t\t\tobj = obj[0];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tif (Utils.isObject(obj) && obj.format === 'openeo' && Utils.isObject(obj.expression)) {\n\t\t\treturn obj.expression;\n\t\t}\n\t\telse {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tstatic confirmOpenAll(files) {\n\t\treturn confirm(`You are about to open ${files.length} individual files / tabs, which could slow down the web browser. Are you sure you want to open all of them?`);\n\t}\n\n};\n\nUtils.mapState = mapState;\nUtils.mapGetters = mapGetters;\nUtils.mapMutations = mapMutations;\nUtils.mapActions = mapActions;\n\nexport default Utils;\n","if(typeof L === 'undefined') { var e = new Error(\"Cannot find module 'L'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = L;","// 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 = (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, fn, priority] = deferred[i];\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((key) => (__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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"424\":\"1e8cc4a5\",\"434\":\"3db284dc\",\"510\":\"9d459a06\",\"552\":\"3b4e55e2\",\"600\":\"03d27645\",\"768\":\"8ff8aaf2\",\"847\":\"e24b2127\",\"887\":\"575d445d\",\"897\":\"896d6d76\",\"1026\":\"cb48ffc0\",\"1030\":\"040e5eea\",\"1160\":\"ae29cd40\",\"1189\":\"a32f94fa\",\"1203\":\"f48ebf4f\",\"1237\":\"b0e48530\",\"1279\":\"8878690a\",\"1323\":\"c2b88a54\",\"1358\":\"4dae7370\",\"1485\":\"92fba867\",\"1533\":\"2170945e\",\"1694\":\"90f8f8e9\",\"1765\":\"4f30e3e9\",\"2053\":\"8f3b63df\",\"2116\":\"d2482968\",\"2195\":\"c25082b0\",\"2263\":\"c2d4312b\",\"2327\":\"6048d1aa\",\"2365\":\"674df960\",\"2388\":\"1f1f942e\",\"2559\":\"06b84f86\",\"2604\":\"9be79866\",\"2668\":\"4da4ee01\",\"2764\":\"34f8c39a\",\"2810\":\"e968ed13\",\"2855\":\"2da0a86a\",\"2869\":\"122b65e1\",\"2919\":\"5a7da297\",\"3165\":\"76bb6a25\",\"3166\":\"067ac4f1\",\"3221\":\"a34a4762\",\"3249\":\"8768e225\",\"3271\":\"5a5d98ba\",\"3291\":\"a294dd66\",\"3298\":\"88b3bce8\",\"3383\":\"d94b2f5f\",\"3504\":\"22567424\",\"3549\":\"212045fa\",\"3592\":\"ef09860c\",\"3800\":\"4319672c\",\"3876\":\"50abede2\",\"4011\":\"7c8bfd07\",\"4016\":\"7fd9cf7f\",\"4054\":\"e7b8b9c7\",\"4066\":\"8cdb91a9\",\"4111\":\"38310551\",\"4120\":\"c763dc51\",\"4152\":\"62572df3\",\"4279\":\"b012468e\",\"4285\":\"90f10343\",\"4375\":\"13fc5959\",\"4387\":\"6a9d95fe\",\"4389\":\"a0cc26a8\",\"4394\":\"f147b645\",\"4432\":\"d3d8c74c\",\"4475\":\"2d81f41f\",\"4477\":\"accede65\",\"4625\":\"fdcb0b05\",\"4638\":\"086ea810\",\"4710\":\"5c91b0d3\",\"4818\":\"544d77b8\",\"5121\":\"3d0716e1\",\"5213\":\"f5f2cae9\",\"5237\":\"8caff225\",\"5262\":\"d2b1dab9\",\"5601\":\"4ed36f04\",\"5624\":\"56a54c83\",\"5630\":\"6c8fe1c8\",\"5640\":\"f63e0ac2\",\"5677\":\"32e52a2e\",\"5742\":\"6ee57240\",\"5771\":\"e0cf67f9\",\"5865\":\"ba589820\",\"5981\":\"bde59e8d\",\"5983\":\"b8efedd3\",\"6036\":\"ac16f8d5\",\"6126\":\"c5d874fe\",\"6192\":\"a7d24100\",\"6238\":\"6cb2e842\",\"6457\":\"0b71882d\",\"6568\":\"66ede871\",\"6617\":\"548c5e31\",\"6660\":\"5db6ed47\",\"6689\":\"0404eca3\",\"6709\":\"9bbce368\",\"6846\":\"d8f3c03b\",\"6885\":\"e5fa8c84\",\"7123\":\"e7255bc1\",\"7186\":\"f9d85ef1\",\"7237\":\"c8c92bc7\",\"7261\":\"cec7eb87\",\"7336\":\"f9de7ab6\",\"7349\":\"58ee9351\",\"7745\":\"43fb5188\",\"7759\":\"f248fb9a\",\"8053\":\"d1bcf10d\",\"8080\":\"2fc3db24\",\"8141\":\"f85ed200\",\"8152\":\"02c6d375\",\"8324\":\"9f2b9735\",\"8354\":\"9d3cdc3f\",\"8363\":\"10f92a37\",\"8370\":\"006d7cf8\",\"8396\":\"80d94f20\",\"8580\":\"f55cb38d\",\"8645\":\"257fe523\",\"9047\":\"9e2b4217\",\"9066\":\"429507d1\",\"9201\":\"16e2764c\",\"9237\":\"b0457669\",\"9238\":\"1ce8f980\",\"9403\":\"36ca6740\",\"9409\":\"9dc12ac6\",\"9546\":\"03a9f682\",\"9873\":\"0533e950\",\"9882\":\"aa162fda\",\"9989\":\"fe90c1ea\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"434\":\"48f88ab7\",\"552\":\"b9ad6d11\",\"768\":\"9a253916\",\"847\":\"5e455ed7\",\"887\":\"8c892279\",\"897\":\"9a7c4e56\",\"1026\":\"ee56a981\",\"1194\":\"5e953040\",\"1203\":\"1291b8f6\",\"1279\":\"6559def7\",\"1485\":\"09203724\",\"1533\":\"ee70e6ee\",\"1694\":\"948a160d\",\"1765\":\"be9db0fd\",\"2053\":\"591e8359\",\"2116\":\"a263a3ee\",\"2327\":\"43969cb2\",\"2388\":\"b2b0c7da\",\"2604\":\"68de8223\",\"2668\":\"28ec2f2d\",\"2722\":\"13fcb001\",\"2810\":\"bb165d6b\",\"2855\":\"9be81686\",\"2869\":\"f3cd8e29\",\"3165\":\"cedc5992\",\"3166\":\"2f6e3d85\",\"3221\":\"f6c5b858\",\"3249\":\"b1500b27\",\"3271\":\"6244371c\",\"3298\":\"be08d5c1\",\"3383\":\"70bcc47a\",\"3504\":\"bb165d6b\",\"3549\":\"a1ec7ab5\",\"3592\":\"2a21fdfd\",\"4016\":\"209ecd26\",\"4066\":\"c792bb6a\",\"4111\":\"8dfcdf6d\",\"4120\":\"1490740e\",\"4152\":\"6d1bdf91\",\"4279\":\"a22f3053\",\"4285\":\"b812a1c3\",\"4375\":\"8cbfaf98\",\"4387\":\"4f91105e\",\"4389\":\"cd27822f\",\"4475\":\"3532f099\",\"4710\":\"db40c9d8\",\"4741\":\"f6d430d3\",\"4818\":\"a7c04fab\",\"5213\":\"84e10245\",\"5630\":\"b1500b27\",\"5677\":\"35500620\",\"5742\":\"d62d95a4\",\"5771\":\"f5601ccf\",\"5865\":\"951674bc\",\"5981\":\"662a7223\",\"6036\":\"84e10245\",\"6126\":\"3a51c14b\",\"6192\":\"5fb184c3\",\"6238\":\"c4731012\",\"6660\":\"a22f3053\",\"6689\":\"b4a63b64\",\"6709\":\"de23863b\",\"6846\":\"4e980861\",\"7123\":\"a8f318bf\",\"7186\":\"1abe4ef8\",\"7336\":\"788ebcdc\",\"7745\":\"70bcc47a\",\"7759\":\"052469b3\",\"8053\":\"48f88ab7\",\"8080\":\"f6d430d3\",\"8141\":\"f3930676\",\"8152\":\"281aa3b1\",\"8324\":\"257d9fa6\",\"8354\":\"8f8ad761\",\"8370\":\"f0b49cc1\",\"8396\":\"a5e993af\",\"8580\":\"9e19226e\",\"8645\":\"ee56a981\",\"9047\":\"13422022\",\"9066\":\"84e10245\",\"9201\":\"19b52578\",\"9238\":\"70bcc47a\",\"9403\":\"3c3c478b\",\"9409\":\"dd741b46\",\"9873\":\"bb165d6b\"}[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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"@openeo/web-editor:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (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 = (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((fn) => (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 = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (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;\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(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\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\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 = (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 = (chunkId) => {\n\treturn new Promise((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\t3524: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"434\":1,\"552\":1,\"768\":1,\"847\":1,\"887\":1,\"897\":1,\"1026\":1,\"1194\":1,\"1203\":1,\"1279\":1,\"1485\":1,\"1533\":1,\"1694\":1,\"1765\":1,\"2053\":1,\"2116\":1,\"2327\":1,\"2388\":1,\"2604\":1,\"2668\":1,\"2722\":1,\"2810\":1,\"2855\":1,\"2869\":1,\"3165\":1,\"3166\":1,\"3221\":1,\"3249\":1,\"3271\":1,\"3298\":1,\"3383\":1,\"3504\":1,\"3549\":1,\"3592\":1,\"4016\":1,\"4066\":1,\"4111\":1,\"4120\":1,\"4152\":1,\"4279\":1,\"4285\":1,\"4375\":1,\"4387\":1,\"4389\":1,\"4475\":1,\"4710\":1,\"4741\":1,\"4818\":1,\"5213\":1,\"5630\":1,\"5677\":1,\"5742\":1,\"5771\":1,\"5865\":1,\"5981\":1,\"6036\":1,\"6126\":1,\"6192\":1,\"6238\":1,\"6660\":1,\"6689\":1,\"6709\":1,\"6846\":1,\"7123\":1,\"7186\":1,\"7336\":1,\"7745\":1,\"7759\":1,\"8053\":1,\"8080\":1,\"8141\":1,\"8152\":1,\"8324\":1,\"8354\":1,\"8370\":1,\"8396\":1,\"8580\":1,\"8645\":1,\"9047\":1,\"9066\":1,\"9201\":1,\"9238\":1,\"9403\":1,\"9409\":1,\"9873\":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(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// 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\t3524: 0\n};\n\n__webpack_require__.f.j = (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(!/^(1194|2722|4741)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((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 = (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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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((id) => (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 = globalThis[\"webpackChunk_openeo_web_editor\"] = globalThis[\"webpackChunk_openeo_web_editor\"] || [];\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, [6905,3684,2475,950,2660,4881,7900,6296,7274,1834,6337,9456,6937,7256,6964], () => (__webpack_require__(15424)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","staticClass","$config","logo","attrs","serviceName","_e","_v","_s","appName","on","showWebEditorInfo","version","staticRenderFns","name","mixins","EventBusMixin","data","Package","methods","broadcast","component","serverUrl","skipLogin","mapLocation","mapZoom","geocoder","loginMessage","snotifyDefaults","timeout","titleMaxLength","bodyMaxLength","showProgressBar","closeOnClick","pauseOnHover","supportedMapServices","supportedBatchJobSharingServices","supportedWebServiceSharingServices","supportedWizards","title","description","requiredProcesses","basemaps","url","attributions","maxZoom","importCommunityExamples","processNamespaces","oidcClientIds","showHttpWarning","dataRefreshInterval","showExperimentalByDefault","showDeprecatedByDefault","pageLimit","eventBusListeners","beforeDestroy","eventName","$root","$off","hasListener","listen","callback","unlisten","$on","$emit","arguments","ProjManager","get","Projection","_load","add","code","meta","extent","proj4","defs","register","projection","getProjection","Array","isArray","transformExtent","setExtent","includes","basemap","error","console","addFromStac","stac","Utils","isObject","properties","id","crs","match","toUpperCase","substr","Number","isInteger","String","epsg","CSV","SupportedFormat","constructor","asset","delim","super","parseData","array","parseCSV","trim","map","row","col","length","NaN","isNaN","parseFloat","str","arr","quote","c","cc","nc","Format","Object","assign","context","setContext","getContext","getUrl","href","canGroup","isBinary","download","filename","tempLink","document","createElement","style","display","setAttribute","makeFileName","type","body","appendChild","click","removeChild","loadData","connection","loaded","fetchData","getData","Error","blob","startsWith","response","fetch","auth","apiUrl","URL","requestUrl","origin","promise","Promise","resolve","reject","reader","FileReader","onload","event","target","result","onerror","readAsBinaryString","readAsText","icon","props","events","UnsupportedFormat","GDAL_MIN","GDAL_MAX","GDAL_NAME","GeoTIFF","removableLayers","_bands","_nodata","img","convertToRGB","parseMetadata","tiff","stacHasExtent","geometry","parseNodata","bands","forEach","band","i","setBandInfo","statistics","min","minimum","max","maximum","nodata","push","getBlob","tiffFromBlob","tiffFromUrl","getImage","getSamplesPerPixel","dummy","getArrayForSample","isFinite","getMinForDataType","getMaxForDataType","getGDALMetadata","getGDALNoData","geoKeys","ProjectedCSTypeGeoKey","GeographicTypeGeoKey","ProjLinearUnitsGeoKey","GeogAngularUnitsGeoKey","units","unitsFromCode","bbox","getBoundingBox","toUserExtent","warn","fileDirectory","ColorMap","from","greenOffset","blueOffset","colorMap","Math","trunc","PhotometricInterpretation","_","CMYK","YCbCr","CIELab","getNoData","getBands","getExtent","getColorMap","Int8Array","Int16Array","Int32Array","Float32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","JSON_","isGeoJson","JSON","parse","log","detectGeoJson","isTable","size","values","keys","some","equals","mathProcesses","getMathProcesses","all","filter","Process","isMathProcess","isMath","process","ProcessGraph","process_graph","mathProcessIds","p","concat","Formula","operatorMapping","arrayOperatorMapping","unsupportedFuncs","find","node","process_id","BrowserImage","Image","crossOrigin","fetchPriotity","decoding","src","NativeType","TSV","FormatRegistry","createFilesFromSTAC","resource","files","assets","roles","createFileFromAsset","file","createFilesFromBlob","Blob","stac_version","links","createObjectURL","mime","contentType","toLowerCase","extension","split","pop","serverStorage","getDefaultState","appMode","storedServers","localStorage","getItem","discoverySearchTerm","hightestModalZIndex","epsgCodes","initialProcess","initialNode","openWizard","openWizardProps","collectionPreview","viewerOptions","modelDnD","formatRegistry","namespaced","state","getters","hasProcess","getModelNodeFromDnD","rootState","rootGetters","getterFn","collectionDefaults","namespace","format","options","loading","setInterval","clearInterval","actions","loadEpsgCodes","cx","res","commit","default","loadInitialProcess","isUrl","axios","pg","extractUDPParams","dispatch","root","loadForAppMode","resultType","resultUrl","mutations","setModelDnD","obj","setDiscoverySearchTerm","searchTerm","setInitialProcess","setInitialNode","setAppMode","expires","setAppModeData","StacMigrate","Vue","getProcessingExpression","summaries","setViewerOptions","setOpenWizard","setCollectionPreview","collectionID","openModal","closeModal","addServer","indexOf","setItem","stringify","removeServer","splice","Job","Service","UserProcess","toJSON","setProcess","reset","listFn","paginateFn","createFn","updateFn","deleteFn","readFn","readFnById","customizations","primaryKey","pages","hasMore","definition","supportsList","supports","supportsCreate","supportsUpdate","supportsDelete","supportsRead","getById","x","create","parameters","apply","delete","update","updated","read","list","count","nextPage","d","hasNextPage","upsert","index","findIndex","observableData","observable","key","storeFactory","supportsQueue","supportsCancel","queue","startJob","cancel","stopJob","userProcesses","sort","sortById","use","Vuex","reverseOperatorMapping","mapping","op","activeRequests","discoveryCompleted","isAuthenticated","userInfo","connectionError","beforeLogoutListener","authProviders","fileFormats","serviceTypes","udfRuntimes","processesUpdated","collections","Config","modules","editor","jobs","services","capabilities","feature","hasFeature","currency","isConnected","isDiscovered","supportsBilling","supportsBillingPlans","listPlans","apiVersion","FileTypes","input","output","collection","spatial_extent","extentToBBox","spatial","temporal_extent","temporal","interval","processes","registry","ProcessRegistry","ProcessRegistryExtension","supportsMath","processId","has","connect","OpenEO","addNamespaceToProcess","message","providers","listAuthProviders","async","provider","discover","refresh","promises","errors","listCollections","then","catch","listProcesses","listFileTypes","listServiceTypes","listUdfRuntimes","describeAccount","describeCollection","_loaded","loadProcess","describeProcess","beforeLogout","listener","logout","disconnect","off","authProvider","getAuthProvider","completed","info","updateProcesses","addProcessNamespacesToRequest","namespaces","fillCollection","setConnectionError","authenticated","keepConnection","startActiveRequest","endActiveRequest","class","connecting","_l","modals","modal","_g","_b","tag","$event","hideModal","tourType","model","value","$$v","expression","directives","rawName","showHelp","httpsUrl","domProps","initProviders","showConnectForm","preventDefault","submitForm","modifiers","autoConnect","$forceUpdate","allowOtherServers","showServerSelector","showLoginForm","ref","providerSelected","scopedSlots","_u","fn","tab","initDiscovery","hasPredefinedOidcClientId","userOidcClientId","composing","oidcRedirectUrl","basicProvider","username","password","proxy","switchServer","show","terms","privacy","computed","mapGetters","getLinkForRel","rel","l","components","Logo","Tabs","Tab","TermsOfServiceConsent","Boolean","mapState","isLocalUrl","window","location","protocol","toString","replace","getType","defaultClient","oidcClientId","oidcProviders","watch","newVal","w","h","t","screen","availWidth","availHeight","oidcOptions","automaticSilentRenew","popupWindowFeatures","OidcProvider","redirectUrl","created","serverFromQuery","param","prompt","uiMethod","signinCallback","exception","mounted","onpopstate","evt","historyNavigate","history","replaceState","mapActions","mapMutations","hostname","initConnection","pushState","makeUrl","$refs","tabs","addProviders","addTab","getTitle","getId","$nextTick","resetActiveTab","programmatically","authType","login","offlineScope","setClientId","client","detectDefaultClient","grant_types","addListener","error_description","discoveryErrors","server","params","URLSearchParams","search","set","query","ConnectForm","IDE","AddMapDataModal","CollectionModal","DataModal","DownloadAssetsModal","ErrorModal","ExportCodeModal","ExpressionModal","FileFormatModal","ImportProcessModal","JobEstimateModal","JobInfoModal","ListModal","ParameterModal","ProcessModal","ProcessParameterModal","ServerInfoModal","ServiceInfoModal","ShareModal","Tour","UdfRuntimeModal","WebEditorModal","WizardModal","paramsForPrefix","interceptors","request","config","showError","showData","showModal","showListModal","showCollection","showProcess","showProcessParameter","setTitle","where","stopTour","newTitle","subtitle","Date","now","other","listActions","parameter","Snotify","Clipboard","prototype","$snotify","singleError","lastMessage","setTimeout","productionTip","errorHandler","err","vm","filters","app","store","Page","$mount","addEventListener","reason","stopPropagation","operatorProcesses","returns","schema","allowedTypes","ProcessSchema","nativeDataType","optional","arrayOf","datatype","ProcessDataType","items","subtype","dataType","VueUtils","Environment","saveToFile","content","getPreviewLinkFromSTAC","link","isMapServiceSupported","mapType","isActiveJobStatusCode","status","alt","buttons","text","action","toast","success","$clipboard","button","btn","typeDefaults","warning","ok","confirm","isChildOfModal","that","$parent","$options","getFileNameFromURL","substring","lastIndexOf","ext","replaceParam","paramName","paramValue","urlObj","prefix","sep","urlParams","isBboxInWebMercator","bboxes","maxBounds","south","north","hasZ","west","east","base","height","a","b","compareStringCaseInsensitive","range","start","end","newArray","defaultValue","fitArray","slice","sortByPath","getUniqueId","random","formatIdOrTitle","getResourceTitle","showType","isObj","UserFile","path","resolveJsonRefs","resolver","$ref","parts","propertyName","shift","pos","undefined","confirmOpenAll","L","e","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","n","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","mode","ns","def","current","getOwnPropertyNames","o","defineProperty","enumerable","f","chunkId","reduce","u","miniCssF","g","globalThis","Function","prop","hasOwnProperty","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","onScriptComplete","prev","clearTimeout","doneFns","parentNode","bind","head","Symbol","toStringTag","nmd","paths","children","createStylesheet","fullhref","oldTag","linkTag","nonce","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","test","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/app.c3a32488.js","mappings":"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","sources":["webpack://@openeo/web-editor/./src/components/Logo.vue","webpack://@openeo/web-editor/src/components/Logo.vue","webpack://@openeo/web-editor/./src/components/Logo.vue?c0bc","webpack://@openeo/web-editor/./src/components/Logo.vue?0cc9","webpack://@openeo/web-editor/./config.js","webpack://@openeo/web-editor/./src/components/EventBusMixin.js","webpack://@openeo/web-editor/./src/components/maps/projManager.js","webpack://@openeo/web-editor/./src/formats/csv.js","webpack://@openeo/web-editor/./src/formats/format.js","webpack://@openeo/web-editor/./src/formats/geotiff.js","webpack://@openeo/web-editor/./src/formats/json.js","webpack://@openeo/web-editor/./src/registryExtension.js","webpack://@openeo/web-editor/./src/formats/browserImage.js","webpack://@openeo/web-editor/./src/formats/native.js","webpack://@openeo/web-editor/./src/formats/tsv.js","webpack://@openeo/web-editor/./src/formats/formatRegistry.js","webpack://@openeo/web-editor/./src/store/editor.js","webpack://@openeo/web-editor/./src/store/storeFactory.js","webpack://@openeo/web-editor/./src/store/files.js","webpack://@openeo/web-editor/./src/store/jobs.js","webpack://@openeo/web-editor/./src/store/services.js","webpack://@openeo/web-editor/./src/store/userProcesses.js","webpack://@openeo/web-editor/./src/store/index.js","webpack://@openeo/web-editor/./src/Page.vue","webpack://@openeo/web-editor/./src/components/ConnectForm.vue","webpack://@openeo/web-editor/./src/components/TermsOfServiceConsent.vue","webpack://@openeo/web-editor/src/components/TermsOfServiceConsent.vue","webpack://@openeo/web-editor/./src/components/TermsOfServiceConsent.vue?ce8c","webpack://@openeo/web-editor/./src/components/TermsOfServiceConsent.vue?4902","webpack://@openeo/web-editor/src/components/ConnectForm.vue","webpack://@openeo/web-editor/./src/components/ConnectForm.vue?e1e0","webpack://@openeo/web-editor/./src/components/ConnectForm.vue?757a","webpack://@openeo/web-editor/src/Page.vue","webpack://@openeo/web-editor/./src/Page.vue?99ee","webpack://@openeo/web-editor/./src/Page.vue?0126","webpack://@openeo/web-editor/./src/filters.js","webpack://@openeo/web-editor/./src/main.js","webpack://@openeo/web-editor/./src/process.js","webpack://@openeo/web-editor/./src/utils.js","webpack://@openeo/web-editor/external var \"L\"","webpack://@openeo/web-editor/webpack/bootstrap","webpack://@openeo/web-editor/webpack/runtime/chunk loaded","webpack://@openeo/web-editor/webpack/runtime/compat get default export","webpack://@openeo/web-editor/webpack/runtime/create fake namespace object","webpack://@openeo/web-editor/webpack/runtime/define property getters","webpack://@openeo/web-editor/webpack/runtime/ensure chunk","webpack://@openeo/web-editor/webpack/runtime/get javascript chunk filename","webpack://@openeo/web-editor/webpack/runtime/get mini-css chunk filename","webpack://@openeo/web-editor/webpack/runtime/global","webpack://@openeo/web-editor/webpack/runtime/hasOwnProperty shorthand","webpack://@openeo/web-editor/webpack/runtime/load script","webpack://@openeo/web-editor/webpack/runtime/make namespace object","webpack://@openeo/web-editor/webpack/runtime/node module decorator","webpack://@openeo/web-editor/webpack/runtime/publicPath","webpack://@openeo/web-editor/webpack/runtime/css loading","webpack://@openeo/web-editor/webpack/runtime/jsonp chunk loading","webpack://@openeo/web-editor/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"logo\"},[(_vm.$config.logo)?_c('img',{attrs:{\"src\":_vm.$config.logo,\"alt\":_vm.$config.serviceName}}):_vm._e(),_c('h2',[_vm._v(_vm._s(_vm.$config.appName)+\" \"),_c('span',{staticClass:\"version\",on:{\"click\":_vm.showWebEditorInfo}},[_vm._v(_vm._s(_vm.version))])])])\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!./Logo.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!./Logo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=af3cbbb2&scoped=true\"\nimport script from \"./Logo.vue?vue&type=script&lang=js\"\nexport * from \"./Logo.vue?vue&type=script&lang=js\"\nimport style0 from \"./Logo.vue?vue&type=style&index=0&id=af3cbbb2&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 \"af3cbbb2\",\n null\n \n)\n\nexport default component.exports","export default {\n\t// Set this to connect to a back-end automatically when opening the Web Editor,\n\t// so you could set this to https://example.com and then the Web Editor connects\n\t// to the corresponding back-end automatically.\n\tserverUrl: '',\n\n\t// The name of the service\n\tserviceName: 'openEO',\n\t// The name of the app\n\tappName: 'Web Editor',\n\n\t// Skip login and automatically load up the \"discovery mode\"\n\tskipLogin: false,\n\n\t// Default location for maps\n\t// Default to the center of the EU in Wuerzburg: \n\t// https://en.wikipedia.org/wiki/Geographical_midpoint_of_Europe#Geographic_centre_of_the_European_Union\n\t// The zoom level should show most of Europe\n\tmapLocation: [49.8, 9.9],\n\tmapZoom: 4,\n\n\t// OSM Nominatim compliant geocoder URL, remove to disable\n\tgeocoder: \"https://nominatim.openstreetmap.org/search\",\n\n\t// A message shown on the login page\n\tloginMessage: '',\n\n\t// The logo to show\n\tlogo: './logo.png',\n\n\t// Defaults for notifications\n\tsnotifyDefaults: {\n\t\ttimeout: 10000,\n\t\ttitleMaxLength: 30,\n\t\tbodyMaxLength: 120,\n\t\tshowProgressBar: true,\n\t\tcloseOnClick: true,\n\t\tpauseOnHover: true\n\t},\n\n\t// List of supported web map services (all lower-cased)\n\tsupportedMapServices: [\n\t\t'xyz',\n\t\t'wmts'\n\t],\n\n\t// List of supported batch job sharing services\n\tsupportedBatchJobSharingServices: [\n\t\t'ShareEditor',\n\t\t'CopyUrl',\n\t\t'BlueskyShare',\n\t\t'MastodonSocialShare',\n\t\t'XShare'\n\t],\n\n\t// List of supported web service sharing services\n\tsupportedWebServiceSharingServices: [\n\t\t'ShareEditor',\n\t\t'CopyUrl',\n\t\t'BlueskyShare',\n\t\t'MastodonSocialShare',\n\t\t'XShare'\n\t],\n\n\t// List of supported wizards\n\tsupportedWizards: [\n\t\t{\n\t\t\tcomponent: 'SpectralIndices',\n\t\t\ttitle: 'Compute Spectral Indices',\n\t\t\tdescription: 'A spectral index is a mathematical equation that is applied on the various spectral bands of an image per pixel. It is often used to highlight vegetation, urban areas, snow, burn, soil, or water/drought/moisture stress. Provided by Awesome Spectral Indices (https://github.com/awesome-spectral-indices/awesome-spectral-indices).',\n\t\t\trequiredProcesses: ['reduce_dimension']\n\t\t}\n\t],\n\n\t// Configure the (base)maps\n\tbasemaps: [\n\t\t{\n\t\t\t// Title for the basemap\n\t\t\ttitle: \"OpenStreetMap\",\n\t\t\t// Templated URI for the XYZ basemap.\n\t\t\turl: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n\t\t\t// Attributon for the basemap. HTML is allowed.\n\t\t\tattributions: '© OpenStreetMap contributors.',\n\t\t\t// Maximum zoom level\n\t\t\tmaxZoom: 19\n\t\t}\n\t],\n\n\t// Import processes from openeo-community-examples repo\n\timportCommunityExamples: true,\n\n\t// Additional process namespaces to load by default\n\tprocessNamespaces: [],\n\n\t// Key is the OIDC provider id, value is the client ID\n\toidcClientIds: {},\n\n\t// Show a warning if HTTP is used instead of HTTPS\n\tshowHttpWarning: true,\n\n\t// refresh interval for jobs/user data/services etc. in minutes - doesn't apply to logs.\n\t// It's recommended to use a value between 1 and 5 minutes.\n\tdataRefreshInterval: 2,\n\n\t// Show or hide experimental and/or deprecated entites by default (e.g. processes, collections)\n\tshowExperimentalByDefault: false,\n\tshowDeprecatedByDefault: false,\n\n\t// number of items to show per page in the UI (jobs, services, files, UDPs) - null to disable pagination\n\tpageLimit: 50,\n\t\n};","export default {\n\tdata() {\n\t\treturn {\n\t\t\teventBusListeners: {}\n\t\t};\n\t},\n\tbeforeDestroy() {\n\t\tfor (var eventName in this.eventBusListeners) {\n\t\t\tthis.$root.$off(eventName, this.eventBusListeners[eventName]);\n\t\t}\n\t},\n\tmethods: {\n\t\thasListener(eventName) {\n\t\t\treturn !!this.eventBusListeners[eventName];\n\t\t},\n\t\tlisten(eventName, callback) {\n\t\t\tthis.unlisten(eventName);\n\t\t\tthis.$root.$on(eventName, callback);\n\t\t\tthis.eventBusListeners[eventName] = callback;\n\t\t},\n\t\tunlisten(eventName) {\n\t\t\tif (this.hasListener(eventName)) {\n\t\t\t\tthis.$root.$off(eventName, this.eventBusListeners[eventName]);\n\t\t\t\tdelete this.eventBusListeners[eventName];\n\t\t\t}\n\t\t},\n\t\tbroadcast() {\n\t\t\tthis.$root.$emit(...arguments);\n\t\t}\n\t}\n}","import proj4 from 'proj4';\nimport { get as getProjection, transformExtent } from 'ol/proj';\nimport Projection from 'ol/proj/Projection';\nimport { register } from 'ol/proj/proj4';\n\nimport Utils from '../../utils';\n\nexport default class ProjManager {\n\n\tstatic async get(data) {\n\t\tif (data instanceof Projection) {\n\t\t\treturn data;\n\t\t}\n\n\t\treturn await ProjManager._load(data);\n\t}\n\n\tstatic add(code, meta, extent) {\n\t\ttry {\n\t\t\tproj4.defs(code, meta);\n\t\t\tregister(proj4);\n\t\t\tlet projection = getProjection(code);\n\t\t\tif (Array.isArray(extent)) {\n\t\t\t\textent = transformExtent(extent, 'EPSG:4326', projection);\n\t\t\t\tprojection.setExtent(extent);\n\t\t\t}\n\t\t\tif (meta.includes('+datum=WGS84')) {\n\t\t\t\tprojection.basemap = true;\n\t\t\t}\n\t\t\treturn projection;\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t// Get projection details from STAC (todo: add collection support)\n\tstatic async addFromStac(stac) {\n\t\tif (Utils.isObject(stac) && Utils.isObject(stac.properties)) {\n\t\t\tif (stac.properties['proj:code']) {\n\t\t\t\treturn await ProjManager.get(stac.properties['proj:code']);\n\t\t\t}\n\t\t\telse if (stac.properties['proj:wkt2']) {\n\t\t\t\treturn ProjManager.add(stac.id, stac.properties['proj:wkt2']);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tstatic async _load(crs) {\n\t\tlet code, id;\n\t\tif (typeof crs === 'string' && crs.match(/^EPSG:\\d+$/i)) {\n\t\t\tcode = crs.toUpperCase();\n\t\t\tid = crs.substr(5);\n\t\t}\n\t\telse if (Number.isInteger(crs)) {\n\t\t\tcode = `EPSG:${crs}`\n\t\t\tid = String(crs);\n\t\t}\n\t\telse {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Get projection from cache\n\t\tlet projection = getProjection(code);\n\t\tif (projection) {\n\t\t\treturn projection;\n\t\t}\n\n\t\t// Get projection from database\n\t\tlet epsg = await import('../../assets/epsg-proj.json');\n\t\tif (id in epsg) {\n\t\t\treturn ProjManager.add(code, epsg[id][0], epsg[id][1]);\n\t\t}\n\n\t\t// No projection found\n\t\treturn null;\n\t}\n\n}","import { SupportedFormat } from './format';\n\nclass CSV extends SupportedFormat {\n\n\tconstructor(asset, delim = [',', ';']) {\n\t\tsuper(asset, 'TableViewer', 'fa-table');\n\t\tthis.delim = delim;\n\t}\n\n\tasync parseData(data) {\n\t\tif (typeof data === 'string') {\n\t\t\t// Parse CSV\n\t\t\tlet array = this.parseCSV(data.trim());\n\t\t\t// Convert values into numbers, if possible\n\t\t\treturn array.map(row => row.map(col => {\n\t\t\t\tcol = col.trim();\n\t\t\t\tif (col.length === 0) {\n\t\t\t\t\treturn NaN;\n\t\t\t\t}\n\t\t\t\telse if (!isNaN(col)) { // https://stackoverflow.com/a/35759874/9709414\n\t\t\t\t\treturn parseFloat(col);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn col;\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\t\treturn data;\n\t}\n\n\t// From https://stackoverflow.com/questions/1293147/example-javascript-code-to-parse-csv-data\n\tparseCSV(str) {\n\t\tvar arr = [];\n\t\tvar quote = false; // 'true' means we're inside a quoted field\n\t\n\t\t// Iterate over each character, keep track of current row and column (of the returned array)\n\t\tfor (var row = 0, col = 0, c = 0; c < str.length; c++) {\n\t\t\tvar cc = str[c], nc = str[c+1]; // Current character, next character\n\t\t\tarr[row] = arr[row] || []; // Create a new row if necessary\n\t\t\tarr[row][col] = arr[row][col] || ''; // Create a new column (start with empty string) if necessary\n\t\n\t\t\t// If the current character is a quotation mark, and we're inside a\n\t\t\t// quoted field, and the next character is also a quotation mark,\n\t\t\t// add a quotation mark to the current column and skip the next character\n\t\t\tif (cc == '\"' && quote && nc == '\"') {\n\t\t\t\tarr[row][col] += cc; ++c;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's just one quotation mark, begin/end quoted field\n\t\t\tif (cc == '\"') {\n\t\t\t\tquote = !quote;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's a elimiter and we're not in a quoted field, move on to the next column\n\t\t\tif (this.delim.includes(cc) && !quote) {\n\t\t\t\t++col;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's a newline (CRLF) and we're not in a quoted field, skip the next character\n\t\t\t// and move on to the next row and move to column 0 of that new row\n\t\t\tif (cc == '\\r' && nc == '\\n' && !quote) {\n\t\t\t\t++row; col = 0; ++c;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// If it's a newline (LF or CR) and we're not in a quoted field,\n\t\t\t// move on to the next row and move to column 0 of that new row\n\t\t\tif (cc == '\\n' && !quote) {\n\t\t\t\t++row; col = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (cc == '\\r' && !quote) {\n\t\t\t\t++row; col = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\n\t\t\t// Otherwise, append the current character to the current column\n\t\t\tarr[row][col] += cc;\n\t\t}\n\t\treturn arr;\n\t}\n\n}\n\nexport default CSV;","import Utils from '../utils.js';\n\nexport class Format {\n\n\tconstructor(asset) {\n\t\tObject.assign(this, asset);\n\t\tthis.context = null;\n\t}\n\n\tsetContext(context) {\n\t\tthis.context = context;\n\t}\n\n\tgetContext() {\n\t\treturn this.context;\n\t}\n\n\tgetUrl() {\n\t\treturn this.href;\n\t}\n\n\tcanGroup() {\n\t\treturn false;\n\t}\n\n\tisBinary() {\n\t\treturn true;\n\t}\n\n\tdownload(filename = null) {\n\t\tlet tempLink = document.createElement('a');\n\t\ttempLink.style.display = 'none';\n\t\ttempLink.href = this.getUrl();\n\t\ttempLink.setAttribute('download', filename ? filename : Utils.makeFileName(\"result\", this.type));\n\t\ttempLink.setAttribute('target', '_blank');\n\t\tdocument.body.appendChild(tempLink);\n\t\ttempLink.click();\n\t\tdocument.body.removeChild(tempLink);\n\t}\n\n\tasync loadData(connection) {\n\t\tif (!this.loaded) {\n\t\t\tthis.data = await this.fetchData(connection);\n\t\t\tthis.loaded = true;\n\t\t}\n\t}\n\n\tgetData() {\n\t\tif (!this.loaded) {\n\t\t\tthrow new Error('Data must be loaded before');\n\t\t}\n\t\treturn this.data;\n\t}\n\n\tasync fetchData(connection) {\n\t\tlet blob;\n\t\tlet url = this.getUrl();\n\t\tif (url.startsWith('blob:')) {\n\t\t\tlet response = await fetch(url);\n\t\t\tblob = await response.blob();\n\t\t}\n\t\telse {\n\t\t\tlet auth = false;\n\t\t\ttry {\n\t\t\t\tlet apiUrl = new URL(connection.getUrl());\n\t\t\t\tlet requestUrl = new URL(url);\n\t\t\t\tauth = apiUrl.origin === requestUrl.origin;\n\t\t\t} catch (error) {}\n\n\t\t\tblob = await connection.download(url, auth);\n\t\t}\n\t\tlet promise = new Promise((resolve, reject) => {\n\t\t\tlet reader = new FileReader();\n\t\t\treader.onload = event => resolve(event.target.result);\n\t\t\treader.onerror = reject;\n\t\t\tif (this.isBinary()) {\n\t\t\t\treader.readAsBinaryString(blob);\n\t\t\t}\n\t\t\telse {\n\t\t\t\treader.readAsText(blob);\n\t\t\t}\n\t\t});\n\t\tlet data = await promise;\n\t\treturn await this.parseData(data);\n\t}\n\n\tasync parseData(data) {\n\t\treturn data;\n\t}\n\n}\n\nexport class SupportedFormat extends Format {\n\n\tconstructor(asset, component = null, icon = 'fa-database', props = {}, events = {}) {\n\t\tsuper(asset);\n\t\tthis.loaded = false;\n\t\tthis.component = component;\n\t\tthis.props = props;\n\t\tif (!this.props.data) {\n\t\t\tthis.props.data = this;\n\t\t}\n\t\tthis.icon = icon;\n\t\tthis.events = events;\n\t}\n\n\tisBinary() {\n\t\treturn false;\n\t}\n\n}\n\nexport class UnsupportedFormat extends Format {\n\n\tconstructor(asset) {\n\t\tsuper(asset);\n\t}\n\n}\n\nexport class FormatCollection extends SupportedFormat {\n\n}","import { SupportedFormat } from './format';\nimport Utils from '../utils';\nimport ProjManager from '../components/maps/projManager';\n\nimport { fromUrl as tiffFromUrl, fromBlob as tiffFromBlob, globals as _ } from 'geotiff';\n\nimport { toUserExtent } from 'ol/proj';\nimport Projection from 'ol/proj/Projection';\nimport { fromCode as unitsFromCode } from 'ol/proj/Units';\n\nconst GDAL_MIN = 'STATISTICS_MINIMUM';\nconst GDAL_MAX = 'STATISTICS_MAXIMUM';\nconst GDAL_NAME = 'DESCRIPTION';\n\nclass GeoTIFF extends SupportedFormat {\n\n\tconstructor(asset, stac) {\n\t\tsuper(asset, \"MapViewer\", 'fa-map', { removableLayers: true });\n\t\tthis._bands = [];\n\t\tthis._nodata = [];\n\t\tthis.img = null;\n\t\tthis.projection = null;\n\t\tthis.extent = null;\n\t\tthis.convertToRGB = false;\n\t\tthis.stac = stac;\n\t}\n\n\tisBinary() {\n\t\treturn true;\n\t}\n\n\tcanGroup() {\n\t\treturn true;\n\t}\n\n\tasync loadData(connection) {\n\t\tif (!this.loaded) {\n\t\t\tawait this.parseMetadata();\n\t\t\tthis.loaded = true;\n\t\t}\n\t\treturn this;\n\t}\n\n\tgetData() {\n\t\treturn this;\n\t}\n\n\tasync parseMetadata() {\n\t\tlet stacHasExtent = this.stac && (this.stac.geometry || this.stac.extent);\n\n\t\t// Get projection from STAC\n\t\tthis.projection = await ProjManager.addFromStac(this.stac);\n\n\t\t// Get nodata from STAC file:nodata\n\t\tif (Array.isArray(this['file:nodata']) && this['file:nodata'].length > 0) {\n\t\t\tthis._nodata = Utils.parseNodata(this['file:nodata']);\n\t\t}\n\n\t\t// Get min/max/nodata from STAC bands\n\t\tif (Array.isArray(this.bands) && this.bands.length > 0) {\n\t\t\tthis.bands.forEach((band, i) => {\n\t\t\t\t// Get name from band\n\t\t\t\tif (band.name) {\n\t\t\t\t\tthis.setBandInfo(i, {\n\t\t\t\t\t\tname: band.name\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Set min/max from statistics\n\t\t\t\tif (Utils.isObject(band.statistics)) {\n\t\t\t\t\tthis.setBandInfo(i, {\n\t\t\t\t\t\tmin: band.statistics.minimum,\n\t\t\t\t\t\tmax: band.statistics.maximum\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// per-band no-data values are not supported, simply read the no-data from the first occurance if not defined yet\n\t\t\t\tif (this._nodata.length === 0 && typeof band.nodata !== 'undefined') {\n\t\t\t\t\tthis._nodata.push(Utils.parseNodata(band.nodata));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Load example tiff image\n\t\tlet tiff;\n\t\tif (this.getBlob()) {\n\t\t\ttiff = await tiffFromBlob(this.getBlob());\n\t\t}\n\t\telse {\n\t\t\ttiff = await tiffFromUrl(this.getUrl());\n\t\t}\n\t\tthis.img = await tiff.getImage();\n\n\t\t// Get data for each band / sample\n\t\tfor (let i = 0; i < this.img.getSamplesPerPixel(); i++) {\n\t\t\tlet data = {};\n\n\t\t\t// Use min/max for data type (as fallback)\n\t\t\ttry {\n\t\t\t\tlet dummy = this.img.getArrayForSample(i);\n\t\t\t\tif (!Number.isFinite(this._bands[i].min)) {\n\t\t\t\t\tdata.min = this.getMinForDataType(dummy);\n\t\t\t\t}\n\t\t\t\tif (!Number.isFinite(this._bands[i].max)) {\n\t\t\t\t\tdata.max = this.getMaxForDataType(dummy);\n\t\t\t\t}\n\t\t\t} catch (error) {}\n\n\t\t\t// Set min/max/name from statistics, if available\n\t\t\tlet band = this.img.getGDALMetadata(i);\n\t\t\tif (Utils.isObject(band)) {\n\t\t\t\tif (GDAL_MIN in band) {\n\t\t\t\t\tdata.min = parseFloat(band[GDAL_MIN]);\n\t\t\t\t}\n\t\t\t\tif (GDAL_MAX in band) {\n\t\t\t\t\tdata.max = parseFloat(band[GDAL_MAX]);\n\t\t\t\t}\n\t\t\t\tif (GDAL_NAME in band) {\n\t\t\t\t\tdata.name = band[GDAL_NAME];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.setBandInfo(i, data);\n\n\t\t\t// get no-data values if needed\n\t\t\tlet nodata = this.img.getGDALNoData();\n\t\t\tif (this._nodata.length === 0 && nodata !== null) {\n\t\t\t\tthis._nodata.push(nodata);\n\t\t\t}\n\t\t}\n\n\t\t// Get projection from GeoTiff\n\t\tlet code;\n\t\tif (!this.projection && this.img.geoKeys) {\n\t\t\tlet { ProjectedCSTypeGeoKey, GeographicTypeGeoKey, ProjLinearUnitsGeoKey, GeogAngularUnitsGeoKey } = this.img.geoKeys;\n\t\t\tif (ProjectedCSTypeGeoKey) {\n\t\t\t\tcode = 'EPSG:' + ProjectedCSTypeGeoKey;\n\t\t\t\tthis.projection = await ProjManager.get(code);\n\t\t\t}\n\t\t\tif (!this.projection && GeographicTypeGeoKey) {\n\t\t\t\tcode = 'EPSG:' + GeographicTypeGeoKey;\n\t\t\t\tthis.projection = await ProjManager.get(code);\n\t\t\t}\n\n\t\t\tif (!this.projection && code) {\n\t\t\t\tconst units = (ProjLinearUnitsGeoKey && unitsFromCode(ProjLinearUnitsGeoKey)) || (GeogAngularUnitsGeoKey && unitsFromCode(GeogAngularUnitsGeoKey));\n\t\t\t\tif (units) {\n\t\t\t\t\tthis.projection = new Projection({ code, units });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Get extent from geotiff\n\t\tif (!stacHasExtent) {\n\t\t\ttry {\n\t\t\t\tlet bbox = this.img.getBoundingBox();\n\t\t\t\tthis.extent = toUserExtent(bbox, this.projection);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn(error);\n\t\t\t}\n\t\t}\n\n\t\t// Store color map as RGB\n\t\tif (this.img.fileDirectory.ColorMap) {\n\t\t\tconst map = Array.from(this.img.fileDirectory.ColorMap);\n\t\t\tconst greenOffset = map.length / 3;\n\t\t\tconst blueOffset = map.length / 3 * 2;\n\t\t\tthis.colorMap = [];\n\t\t\tfor (let i = 0; i < greenOffset; i++) {\n\t\t\t\tthis.colorMap.push([\n\t\t\t\t\tMath.trunc(map[i] / 65536 * 256),\n\t\t\t\t\tMath.trunc(map[i + greenOffset] / 65536 * 256),\n\t\t\t\t\tMath.trunc(map[i + blueOffset] / 65536 * 256),\n\t\t\t\t\tthis._nodata.includes(i) ? 0 : 1\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\n\t\t// Get photometric interpretation\n\t\tswitch (this.img.fileDirectory.PhotometricInterpretation) {\n\t\t\tcase _.photometricInterpretations.CMYK:\n\t\t\tcase _.photometricInterpretations.YCbCr:\n\t\t\tcase _.photometricInterpretations.CIELab:\n\t\t\t\tthis.convertToRGB = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// RGB and (Black/White)IsZero are handled via user control\n\t\t\t\t// Palette is handled directly by our styling\n\t\t\t\tthis.convertToRGB = false;\n\t\t}\n\t}\n\n\tsetBandInfo(i, data) {\n\t\tif (this._bands[i]) {\n\t\t\tObject.assign(this._bands[i], data);\n\t\t}\n\t\telse {\n\t\t\tthis._bands.push(Object.assign({ id: i + 1 }, data));\n\t\t}\n\t}\n\n\tgetBlob() {\n\t\treturn this.blob;\n\t}\n\n\tgetNoData() {\n\t\treturn this._nodata;\n\t}\n\n\tgetContext() {\n\t\treturn this.stac;\n\t}\n\n\tgetBands() {\n\t\treturn this._bands;\n\t}\n\n\tgetProjection() {\n\t\treturn this.projection;\n\t}\n\n\tgetExtent() {\n\t\treturn this.extent;\n\t}\n\n\tgetColorMap() {\n\t\treturn this.colorMap;\n\t}\n\n\tgetMinForDataType(array) {\n\t\tif (array instanceof Int8Array) {\n\t\t\treturn -128;\n\t\t}\n\t\tif (array instanceof Int16Array) {\n\t\t\treturn -32768;\n\t\t}\n\t\tif (array instanceof Int32Array) {\n\t\t\treturn -2147483648;\n\t\t}\n\t\tif (array instanceof Float32Array) {\n\t\t\treturn 1.2e-38;\n\t\t}\n\t\treturn 0;\n\t}\n\t\n\tgetMaxForDataType(array) {\n\t\tif (array instanceof Int8Array) {\n\t\t\treturn 127;\n\t\t}\n\t\tif (array instanceof Uint8Array) {\n\t\t\treturn 255;\n\t\t}\n\t\tif (array instanceof Uint8ClampedArray) {\n\t\t\treturn 255;\n\t\t}\n\t\tif (array instanceof Int16Array) {\n\t\t\treturn 32767;\n\t\t}\n\t\tif (array instanceof Uint16Array) {\n\t\t\treturn 65535;\n\t\t}\n\t\tif (array instanceof Int32Array) {\n\t\t\treturn 2147483647;\n\t\t}\n\t\tif (array instanceof Uint32Array) {\n\t\t\treturn 4294967295;\n\t\t}\n\t\tif (array instanceof Float32Array) {\n\t\t\treturn 3.4e38;\n\t\t}\n\t\treturn 255;\n\t}\n\n}\n\nexport default GeoTIFF;","import Utils from '../utils';\nimport { SupportedFormat } from './format';\n\nclass JSON_ extends SupportedFormat {\n\n\tconstructor(asset, component = \"DataViewer\") {\n\t\tsuper(asset, component);\n\n\t\tthis.isGeoJson = false;\n\t\t// this.isCovJson = false;\n\t}\n\n\tasync parseData(data) {\n\t\tif (typeof data === 'string') {\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse(data);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t}\n\t\tif (Utils.detectGeoJson(data)) {\n\t\t\tthis.isGeoJson = true;\n\t\t\tthis.component = 'MapViewer';\n\t\t\tthis.icon = 'fa-map';\n\t\t}\n\t\telse if (this.isTable(data)) {\n\t\t\tthis.component = 'TableViewer';\n\t\t\tthis.icon = 'fa-table';\n\t\t}\n\t\treturn data;\n\t}\n\n\tisTable(data) {\n\t\tif (!data || typeof data !== 'object' || Utils.size(data) === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tlet values = Object.values(data);\n\t\tlet keys = Object.keys(values[0]);\n\t\treturn !values.some(row => !row || typeof row !== 'object' || !Utils.equals(Object.keys(row), keys));\n\t}\n}\n\nexport default JSON_;","import Utils from './utils';\nimport Process from './process';\nimport { Formula } from '@openeo/js-client';\nimport { ProcessGraph } from '@openeo/js-processgraphs';\n\nexport default {\n\tmathProcesses: null,\n\tgetMathProcesses() {\n\t\tif (!this.mathProcesses) {\n\t\t\tthis.mathProcesses = this.all().filter(Process.isMathProcess);\n\t\t}\n\t\treturn this.mathProcesses;\n\t},\n\tisMath(process) {\n\t\tif (process instanceof ProcessGraph) {\n\t\t\tprocess = process.process;\n\t\t}\n\t\tif (!Utils.isObject(process) || Utils.size(process.process_graph) === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet mathProcessIds = this.getMathProcesses().map(p => p.id)\n\t\t\t.concat(Object.values(Formula.operatorMapping))\n\t\t\t.concat(Object.keys(Formula.arrayOperatorMapping))\n\t\t\t.concat(['array_element']);\n\t\tlet unsupportedFuncs = Object.values(process.process_graph).find(node => !mathProcessIds.includes(node.process_id));\n\t\treturn (typeof unsupportedFuncs === 'undefined');\n\t}\n};","import { SupportedFormat } from './format';\n\nclass BrowserImage extends SupportedFormat {\n\n\tconstructor(asset) {\n\t\tsuper(asset, 'ImageViewer', 'fa-image');\n\t}\n\n\tisBinary() {\n\t\treturn true;\n\t}\n\n\tasync fetchData() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet img = new Image();\n\t\t\timg.crossOrigin = 'anonymous';\n\t\t\timg.onerror = () => reject(new Error('Failed to load the image'));\n\t\t\timg.onload = () => resolve(img);\n\t\t\timg.fetchPriotity = 'high';\n\t\t\timg.decoding = 'sync';\n\t\t\timg.src = this.getUrl();\n\t\t});\n\t}\n\n}\n\nexport default BrowserImage;","import { SupportedFormat } from './format';\n\nclass NativeType extends SupportedFormat {\n\n\tconstructor(asset) {\n\t\tsuper(asset, \"DataViewer\");\n\t}\n\n}\n\nexport default NativeType;","import CSV from './csv';\n\nclass TSV extends CSV {\n\n\tconstructor(asset) {\n\t\tsuper(asset, [\"\\t\"]);\n\t}\n\n}\n\nexport default TSV;","import contentType from 'content-type';\n\nimport BrowserImage from '../formats/browserImage';\nimport CSV from '../formats/csv';\nimport GeoTIFF from '../formats/geotiff';\nimport JSON_ from '../formats/json';\nimport NativeType from './native';\nimport TSV from '../formats/tsv';\nimport { UnsupportedFormat } from './format';\n\nexport default class FormatRegistry {\n\n\tconstructor() {\n\t}\n\n\tcreateFilesFromSTAC(stac, resource = null) {\n\t\tlet files = Object.values(stac.assets)\n\t\t\t.filter(asset => !Array.isArray(asset.roles) || !asset.roles.includes(\"metadata\"))\n\t\t\t.map(asset => this.createFileFromAsset(asset, stac));\n\t\tif (resource) {\n\t\t\tfiles.forEach(file => file.setContext(resource));\n\t\t}\n\t\treturn files;\n\t}\n\n\tcreateFilesFromBlob(data) {\n\t\tif (!(data instanceof Blob)) {\n\t\t\tthrow new Error(\"Given data is not a valid Blob\");\n\t\t}\n\t\treturn this.createFilesFromSTAC({\n\t\t\tstac_version: \"1.0.0\",\n\t\t\ttype: \"Feature\",\n\t\t\tgeometry: null,\n\t\t\tproperties: {},\n\t\t\tlinks: [],\n\t\t\tassets: {\n\t\t\t\tresult: {\n\t\t\t\t\thref: URL.createObjectURL(data),\n\t\t\t\t\tblob: data,\n\t\t\t\t\ttype: data.type\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tcreateFileFromAsset(asset, stac) {\n\t\ttry {\n\t\t\t// Detect by media type\n\t\t\tif (typeof asset.type === 'string') {\n\t\t\t\tlet mime = contentType.parse(asset.type.toLowerCase());\n\t\t\t\tswitch(mime.type) {\n\t\t\t\t\tcase 'image/png':\n\t\t\t\t\tcase 'image/jpg':\n\t\t\t\t\tcase 'image/jpeg':\n\t\t\t\t\tcase 'image/gif':\n\t\t\t\t\tcase 'image/webp':\n\t\t\t\t\t\treturn new BrowserImage(asset);\n\t\t\t\t\tcase 'application/json':\n\t\t\t\t\tcase 'text/json':\n\t\t\t\t\tcase 'application/geo+json':\n\t\t\t\t\t\treturn new JSON_(asset);\n\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\treturn new NativeType(asset);\n\t\t\t\t\tcase 'text/csv':\n\t\t\t\t\t\treturn new CSV(asset);\n\t\t\t\t\tcase 'text/tab-separated-values':\n\t\t\t\t\t\treturn new TSV(asset);\n\t\t\t\t\tcase 'image/tiff':\n\t\t\t\t\t\treturn new GeoTIFF(asset, stac);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Fallback: Detect by file extension\n\t\t\tif (typeof asset.href === 'string') {\n\t\t\t\tlet extension = asset.href.split(/[#?]/)[0].split('.').pop().trim().toLowerCase();\n\t\t\t\tswitch(extension) {\n\t\t\t\t\tcase 'png':\n\t\t\t\t\tcase 'jpg':\n\t\t\t\t\tcase 'jpeg':\n\t\t\t\t\tcase 'gif':\n\t\t\t\t\tcase 'webp':\n\t\t\t\t\t\treturn new BrowserImage(asset);\n\t\t\t\t\tcase 'json':\n\t\t\t\t\tcase 'geojson':\n\t\t\t\t\t\treturn new JSON_(asset);\n\t\t\t\t\tcase 'txt':\n\t\t\t\t\t\treturn new NativeType(asset);\n\t\t\t\t\tcase 'csv':\n\t\t\t\t\t\treturn new CSV(asset);\n\t\t\t\t\tcase 'tsv':\n\t\t\t\t\t\treturn new TSV(asset);\n\t\t\t\t\tcase 'tif':\n\t\t\t\t\tcase 'tiff':\n\t\t\t\t\t\treturn new GeoTIFF(asset, stac);\n\t\t\t\t}\n\t\t\t}\n\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\n\t\treturn new UnsupportedFormat(asset);\n\t}\n\n}","import Vue from 'vue';\nimport Utils from '../utils';\nimport { Job, Service, UserProcess } from '@openeo/js-client';\nimport { ProcessGraph } from '@openeo/js-processgraphs';\nimport FormatRegistry from '../formats/formatRegistry.js';\nimport StacMigrate from '@radiantearth/stac-migrate';\n\nconst serverStorage = \"serverUrls\";\n\nconst getDefaultState = () => {\n\treturn {\n\t\tappMode: null,\n\t\tstoredServers: JSON.parse(localStorage.getItem(serverStorage) || \"[]\"),\n\t\tcontext: null,\n\t\tprocess: null,\n\t\tdiscoverySearchTerm: '',\n\t\thightestModalZIndex: 1000,\n\t\tepsgCodes: [],\n\t\tinitialProcess: null,\n\t\tinitialNode: null,\n\t\topenWizard: null,\n\t\topenWizardProps: {},\n\t\tcollectionPreview: null,\n\t\tviewerOptions: {},\n\t\tmodelDnD: null,\n\t\tformatRegistry: new FormatRegistry(),\n\t};\n};\n\nexport default {\n\tnamespaced: true,\n\tstate: getDefaultState(),\n\tgetters: {\n\t\thasProcess: state => Utils.isObject(state.process) && Utils.size(state.process) > 0 && Utils.size(state.process.process_graph),\n\t\tgetModelNodeFromDnD: (state, getters, rootState, rootGetters) => () => {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (!state.modelDnD) {\n\t\t\t\t\tresolve(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst getterFn = () => {\n\t\t\t\t\tswitch(state.modelDnD.type) {\n\t\t\t\t\t\tcase 'collection':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: 'load_collection',\n\t\t\t\t\t\t\t\targuments: rootGetters.collectionDefaults(state.modelDnD.data.id)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'process':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: state.modelDnD.data.id,\n\t\t\t\t\t\t\t\tnamespace: state.modelDnD.data.namespace,\n\t\t\t\t\t\t\t\targuments: {}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'udf':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: 'run_udf',\n\t\t\t\t\t\t\t\targuments: state.modelDnD.data\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'fileformat':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tprocess_id: 'save_result',\n\t\t\t\t\t\t\t\targuments: {format: state.modelDnD.data.name, options: {}}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tif (state.modelDnD.loading) {\n\t\t\t\t\tlet id = setInterval(() => {\n\t\t\t\t\t\tif (!state.modelDnD || state.modelDnD.loading) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclearInterval(id);\n\t\t\t\t\t\tresolve(getterFn());\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresolve(getterFn());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tactions: {\n\t\tasync loadEpsgCodes(cx) {\n\t\t\tif (cx.state.epsgCodes.length === 0) {\n\t\t\t\tlet res = await import('../assets/epsg-names.json');\n\t\t\t\tcx.commit('epsgCodes', res.default);\n\t\t\t}\n\t\t},\n\t\tasync loadInitialProcess(cx) {\n\t\t\tif (cx.state.process) {\n\t\t\t\treturn; // Process already loaded (usually during a later login)\n\t\t\t}\n\t\t\tif (Utils.isUrl(cx.state.initialProcess)) {\n\t\t\t\tlet response = await Utils.axios().get(cx.state.initialProcess);\n\t\t\t\tif (Utils.isObject(response.data)) {\n\t\t\t\t\tvar pg = new ProcessGraph(response.data);\n\t\t\t\t\tpg.parse();\n\t\t\t\t\tcx.commit('setProcess', response.data);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (typeof cx.state.initialProcess === 'string' && cx.state.initialProcess.length > 0) {\n\t\t\t\tlet [id, namespace] = Utils.extractUDPParams(cx.state.initialProcess);\n\t\t\t\ttry {\n\t\t\t\t\tawait cx.dispatch('loadProcess', {id, namespace}, {root: true});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn(error);\n\t\t\t\t}\n\t\t\t\tcx.commit('setProcess', {\n\t\t\t\t\tprocess_graph: {\n\t\t\t\t\t\t[id]: {\n\t\t\t\t\t\t\tprocess_id: id,\n\t\t\t\t\t\t\tnamespace,\n\t\t\t\t\t\t\targuments: {},\n\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tasync loadForAppMode(cx) {\n\t\t\tif (!cx.state.appMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (cx.state.appMode.resultType !== 'service') {\n\t\t\t\ttry {\n\t\t\t\t\tlet response = await Utils.axios().get(cx.state.appMode.resultUrl);\n\t\t\t\t\tif (Utils.isObject(response.data)) {\n\t\t\t\t\t\tcx.commit('setAppModeData', response.data);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t\tthrow new Error(\"Sorry, the shared data is not available anymore!\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tmutations: {\n\t\tsetModelDnD(state, obj = null) {\n\t\t\tstate.modelDnD = obj;\n\t\t},\n\t\tsetDiscoverySearchTerm(state, searchTerm) {\n\t\t\tstate.discoverySearchTerm = typeof searchTerm === 'string' ? searchTerm : '';\n\t\t},\n\t\tsetInitialProcess(state, process) {\n\t\t\tstate.initialProcess = process;\n\t\t},\n\t\tsetInitialNode(state, node) {\n\t\t\tstate.initialNode = node;\n\t\t},\n\t\tsetAppMode(state, appMode) {\n\t\t\tstate.appMode = {\n\t\t\t\t...appMode,\n\t\t\t\ttitle: 'Results',\n\t\t\t\tdata: null,\n\t\t\t\texpires: null\n\t\t\t};\n\t\t},\n\t\tsetAppModeData(state, data) {\n\t\t\tif (data.type) {\n\t\t\t\tdata = StacMigrate.stac(data, false);\n\t\t\t}\n\n\t\t\tVue.set(state.appMode, 'data', data);\n\n\t\t\tlet process, title, expires;\n\t\t\tif (data.type === 'Collection') {\n\t\t\t\tprocess = Utils.getProcessingExpression(data) || Utils.getProcessingExpression(data.summaries);\n\t\t\t\ttitle = data.title;\n\t\t\t\texpires = data.expires;\n\t\t\t}\n\t\t\telse if (data.type === 'Feature') {\n\t\t\t\tprocess = Utils.getProcessingExpression(data.properties);\n\t\t\t\ttitle = data.properties?.title;\n\t\t\t\texpires = data.properties?.expires;\n\t\t\t}\n\t\t\tif (process) {\n\t\t\t\tstate.process = process;\n\t\t\t}\n\t\t\tif (title) {\n\t\t\t\tVue.set(state.appMode, 'title', title);\n\t\t\t\tVue.set(state.appMode, 'expires', expires);\n\t\t\t\tstate.context = title;\n\t\t\t}\n\t\t},\n\t\tsetViewerOptions(state, options) {\n\t\t\tstate.viewerOptions = options || {};\n\t\t},\n\t\tsetOpenWizard(state, {component, options}) {\n\t\t\tstate.openWizard = component;\n\t\t\tif (component) {\n\t\t\t\tstate.openWizardProps = options;\n\t\t\t}\n\t\t},\n\t\tsetCollectionPreview(state, collectionID) {\n\t\t\tstate.collectionPreview = collectionID;\n\t\t\tif (!state.discoverySearchTerm) {\n\t\t\t\tstate.discoverySearchTerm = typeof collectionID === 'string' ? collectionID : '';\n\t\t\t}\n\t\t},\n\t\topenModal(state) {\n\t\t\tstate.hightestModalZIndex = state.hightestModalZIndex + 1;\n\t\t},\n\t\tcloseModal(state) {\n\t\t\tstate.hightestModalZIndex = state.hightestModalZIndex - 1;\n\t\t},\n\t\taddServer(state, url) {\n\t\t\tif (state.storedServers.indexOf(url) === -1) {\n\t\t\t\tstate.storedServers.push(url);\n\t\t\t}\n\t\t\tlocalStorage.setItem(serverStorage, JSON.stringify(state.storedServers));\n\t\t},\n\t\tremoveServer(state, url) {\n\t\t\tstate.storedServers.splice(state.storedServers.indexOf(url), 1);\n\t\t\tlocalStorage.setItem(serverStorage, JSON.stringify(state.storedServers));\n\t\t},\n\t\tsetContext(state, obj) {\n\t\t\tstate.context = obj;\n\t\t\tif (obj instanceof Job || obj instanceof Service) {\n\t\t\t\tstate.process = obj.process;\n\t\t\t}\n\t\t\telse if (obj instanceof UserProcess) {\n\t\t\t\tstate.process = obj.toJSON();\n\t\t\t}\n\t\t\telse if (Utils.isObject(obj) && obj.process) {\n\t\t\t\tstate.process = obj.process;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstate.process = obj;\n\t\t\t}\n\t\t},\n\t\tsetProcess(state, process) {\n\t\t\tstate.process = process;\n\t\t},\n\t\tepsgCodes(state, epsgCodes) {\n\t\t\tstate.epsgCodes = epsgCodes;\n\t\t},\n\t\treset(state) {\n\t\t\tObject.assign(state, getDefaultState());\n\t\t}\n\t}\n};\n","import { UserProcess } from '@openeo/js-client';\nimport { Utils } from '@openeo/js-commons';\nimport Vue from 'vue';\n\nexport default ({namespace, listFn, paginateFn, createFn, updateFn, deleteFn, readFn, readFnById, customizations, primaryKey}) => {\n\tif (!primaryKey) {\n\t\tprimaryKey = 'id';\n\t}\n\tconst getDefaultState = () => {\n\t\treturn {\n\t\t\tpages: null,\n\t\t\thasMore: false,\n\t\t\t[namespace]: []\n\t\t};\n\t};\n\tlet definition = {\n\t\tnamespaced: true,\n\t\tstate: getDefaultState(),\n\t\tgetters: {\n\t\t\tsupportsList: (state, getters, rootState, rootGetters) => rootGetters.supports(listFn),\n\t\t\tsupportsCreate: (state, getters, rootState, rootGetters) => rootGetters.supports(createFn),\n\t\t\tsupportsUpdate: (state, getters, rootState, rootGetters) => rootGetters.supports(updateFn),\n\t\t\tsupportsDelete: (state, getters, rootState, rootGetters) => rootGetters.supports(deleteFn),\n\t\t\tsupportsRead: (state, getters, rootState, rootGetters) => rootGetters.supports(readFn),\n\t\t\tgetById: (state) => (id) => {\n\t\t\t\tlet data = state[namespace].find(x => x[primaryKey] === id);\n\t\t\t\treturn typeof data !== 'undefined' ? data : null;\n\t\t\t}\n\t\t},\n\t\tactions: {\n\t\t\tasync create(cx, parameters) {\n\t\t\t\tif (cx.getters.supportsCreate) {\n\t\t\t\t\tlet connection = cx.rootState.connection;\n\t\t\t\t\tlet data = await connection[createFn].apply(connection, parameters);\n\t\t\t\t\tcx.commit('upsert', data);\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Adding is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync delete(cx, {data}) {\n\t\t\t\tif (cx.getters.supportsDelete) {\n\t\t\t\t\tawait data[deleteFn]();\n\t\t\t\t\tcx.commit('delete', data);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Deleting is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync update(cx, {data, parameters}) {\n\t\t\t\tif (cx.getters.supportsUpdate) {\n\t\t\t\t\tlet updated = await data[updateFn](parameters);\n\t\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\t\treturn updated;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Updating is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync read(cx, {data}) {\n\t\t\t\tlet updated = null;\n\t\t\t\tif (!(data instanceof UserProcess)) {\n\t\t\t\t\tlet id = Utils.isObject(data) ? data[primaryKey] : data;\n\t\t\t\t\t// Try to get UserProcess from store\n\t\t\t\t\tdata = cx.getters.getById(id);\n\t\t\t\t\tif (!data) {\n\t\t\t\t\t\t// Try to load UserProcess from Connection\n\t\t\t\t\t\tupdated = await cx.rootState.connection[readFnById](data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!updated) {\n\t\t\t\t\t// Try to update UserProcess\n\t\t\t\t\tupdated = await data[readFn]();\n\t\t\t\t}\n\t\t\t\t// Update or insert, depending on previous state\n\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\treturn updated;\n\t\t\t},\n\t\t\tasync list(cx) {\n\t\t\t\tconst count = cx.state[namespace].length;\n\t\t\t\tif (cx.getters.supportsList) {\n\t\t\t\t\t// Pass over existing data so that it can be updated (for all complete entities, only update fields that exist in the new object)\n\t\t\t\t\t// instead of getting replaced, see https://github.com/Open-EO/openeo-web-editor/issues/234\n\t\t\t\t\tlet pageLimit = Math.max(cx.rootState.pageLimit, count);\n\t\t\t\t\tif (paginateFn) {\n\t\t\t\t\t\tconst pages = cx.rootState.connection[paginateFn](pageLimit, cx.state[namespace]);\n\t\t\t\t\t\tconst data = await pages.nextPage();\n\t\t\t\t\t\tcx.commit('reset'); // Keep close to the update to avoid flickering\n\t\t\t\t\t\tcx.commit('pages', pages);\n\t\t\t\t\t\tcx.commit('data', data);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst data = await cx.rootState.connection[listFn](cx.state[namespace]);\n\t\t\t\t\t\tcx.commit('reset'); // Keep close to the update to avoid flickering\n\t\t\t\t\t\tcx.commit('data', data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn cx.state[namespace];\n\t\t\t},\n\t\t\tasync nextPage(cx) {\n\t\t\t\tif (!cx.state.pages || !cx.state.hasMore) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcx.commit('data', await cx.state.pages.nextPage());\n\t\t\t\treturn cx.state[namespace];\n\t\t\t}\n\t\t},\n\t\tmutations: {\n\t\t\tdata(state, data) {\n\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\tfor (let d of data) {\n\t\t\t\t\t\tstate[namespace].push(d);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.hasMore = state.pages ? state.pages.hasNextPage() : false;\n\t\t\t},\n\t\t\tpages(state, pages) {\n\t\t\t\tstate.pages = pages;\n\t\t\t},\n\t\t\tupsert(state, data) {\n\t\t\t\tlet id = data[primaryKey];\n\t\t\t\tlet index = state[namespace].findIndex(x => x[primaryKey] === id);\n\t\t\t\tlet observableData = Vue.observable(data);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\tVue.set(state[namespace], index, observableData);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tstate[namespace].push(observableData);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete(state, data) {\n\t\t\t\tlet id = data[primaryKey];\n\t\t\t\tlet index = state[namespace].findIndex(x => x[primaryKey] === id);\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\tVue.delete(state[namespace], index);\n\t\t\t\t}\n\t\t\t},\n\t\t\treset(state) {\n\t\t\t\tObject.assign(state, getDefaultState());\n\t\t\t}\n\t\t}\n\t};\n\t// Override with custom definitions\n\tfor(let key in customizations) {\n\t\tObject.assign(definition[key], customizations[key]);\n\t}\n\treturn definition;\n};","import storeFactory from './storeFactory';\n\nexport default storeFactory({\n\tnamespace: 'files',\n\tlistFn: 'listFiles',\n\tpaginateFn: 'paginateFiles',\n\tcreateFn: 'uploadFile',\n\tupdateFn: 'uploadFile',\n\tdeleteFn: 'deleteFile',\n\treadFn: 'downloadFile',\n\treadFnById: 'getFile',\n\tprimaryKey: 'path',\n\tcustomizations: {\n\t\tgetters: {\n\t\t},\n\t\tactions: {\n\t\t},\n\t\tmutations: {\n\t\t}\n\t}\n});","import storeFactory from './storeFactory';\n\nexport default storeFactory({\n\tnamespace: 'jobs',\n\tlistFn: 'listJobs',\n\tpaginateFn: 'paginateJobs',\n\tcreateFn: 'createJob',\n\tupdateFn: 'updateJob',\n\tdeleteFn: 'deleteJob',\n\treadFn: 'describeJob',\n\treadFnById: 'getJob',\n\tcustomizations: {\n\t\tgetters: {\n\t\t\tsupportsQueue: (state, getters, rootState, rootGetters) => rootGetters.supports('startJob'),\n\t\t\tsupportsCancel: (state, getters, rootState, rootGetters) => rootGetters.supports('stopJob')\n\t\t},\n\t\tactions: {\n\t\t\tasync queue(cx, {data}) {\n\t\t\t\tif (cx.getters.supportsQueue) {\n\t\t\t\t\tlet updated = await data.startJob();\n\t\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\t\treturn updated;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Queueing a batch job is not supported by the server.\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync cancel(cx, {data}) {\n\t\t\t\tif (cx.getters.supportsCancel) {\n\t\t\t\t\tlet updated = await data.stopJob();\n\t\t\t\t\tcx.commit('upsert', updated);\n\t\t\t\t\treturn updated;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error(\"Canceling a batch job is not supported by the server.\");\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmutations: {\n\t\t}\n\t}\n});","import storeFactory from './storeFactory';\n\nexport default storeFactory({\n\tnamespace: 'services',\n\tlistFn: 'listServices',\n\tpaginateFn: 'paginateServices',\n\tcreateFn: 'createService',\n\tupdateFn: 'updateService',\n\tdeleteFn: 'deleteService',\n\treadFn: 'describeService',\n\treadFnById: 'getService',\n\tcustomizations: {\n\t\tgetters: {\n\t\t},\n\t\tactions: {\n\t\t},\n\t\tmutations: {\n\t\t}\n\t}\n});","import storeFactory from './storeFactory';\nimport Utils from '../utils';\n\nexport default storeFactory({\n\tnamespace: 'userProcesses',\n\tlistFn: 'listUserProcesses',\n\tpaginateFn: null,\n\tcreateFn: 'setUserProcess',\n\tupdateFn: 'replaceUserProcess',\n\tdeleteFn: 'deleteUserProcess',\n\treadFn: 'describeUserProcess',\n\treadFnById: 'getUserProcess',\n\tcustomizations: {\n\t\tgetters: {\n\t\t},\n\t\tactions: {\n\t\t},\n\t\tmutations: {\n\t\t\tdata(state, data) {\n\t\t\t\tstate.userProcesses = data\n\t\t\t\t\t.map(p => Object.assign(p, {namespace: 'user'}))\n\t\t\t\t\t.filter(p => (typeof p.id === 'string'))\n\t\t\t\t\t.sort(Utils.sortById);\n\t\t\t}\n\t\t}\n\t}\n});","import Vue from 'vue';\nimport Vuex from 'vuex';\n\nimport { OpenEO, FileTypes, Formula } from '@openeo/js-client';\nimport { ProcessRegistry } from '@openeo/js-commons';\nimport StacMigrate from '@radiantearth/stac-migrate';\nimport Utils from '../utils.js';\nimport ProcessRegistryExtension from '../registryExtension.js';\nimport Config from '../../config';\n// Sub-modules\nimport editor from './editor';\nimport files from './files';\nimport jobs from './jobs';\nimport services from './services';\nimport userProcesses from './userProcesses';\n\nVue.use(Vuex);\n\nFormula.arrayOperatorMapping = {\n\t'product': '*',\n\t'sum': '+'\n};\nFormula.reverseOperatorMapping = (() => {\n\tconst mapping = {};\n\tfor(const op in Formula.operatorMapping) {\n\t\tmapping[Formula.operatorMapping[op]] = op;\n\t}\n\treturn Object.assign(mapping, Formula.arrayOperatorMapping);\n})();\n\nconst getDefaultState = () => {\n\treturn {\n\t\tconnection: null,\n\t\tactiveRequests: 0,\n\t\tdiscoveryCompleted: false,\n\t\tisAuthenticated: false,\n\t\tuserInfo: {},\n\t\tconnectionError: null,\n\t\tbeforeLogoutListener: {},\n\t\tauthProviders: [],\n\t\tfileFormats: {},\n\t\tserviceTypes: {},\n\t\tudfRuntimes: {},\n\t\tprocessesUpdated: 0,\n\t\tcollections: [],\n\t\tprocessNamespaces: Config.processNamespaces || [],\n\t\tpageLimit: Config.pageLimit,\n\t};\n};\n\nexport default new Vuex.Store({\n//\tstrict: true, // Can't enable, js-client gets mutated externally\n\tmodules: {\n\t\teditor,\n\t\tfiles,\n\t\tjobs,\n\t\tservices,\n\t\tuserProcesses\n\t},\n\tstate: getDefaultState(),\n\tgetters: {\n\t\ttitle: (state) => {\n\t\t\tif (state.connection !== null && state.connection.capabilities() !== null) {\n\t\t\t\tconst title = state.connection.capabilities().title();\n\t\t\t\treturn title ? title : state.connection.getUrl();\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tcapabilities: (state) => state.connection !== null ? state.connection.capabilities() : null,\n\t\tsupports: (state) => (feature) => state.connection !== null && state.connection.capabilities() !== null && state.connection.capabilities().hasFeature(feature),\n\t\tcurrency: (state) => {\n\t\t\tlet currency = '';\n\t\t\tif (state.connection && state.connection.capabilities().currency() !== null) {\n\t\t\t\tcurrency = state.connection.capabilities().currency();\n\t\t\t}\n\t\t\treturn currency;\n\t\t},\n\t\tisConnected: (state) => state.connection !== null && state.connection.capabilities() !== null,\n\t\tisDiscovered: (state) => state.connection !== null && state.discoveryCompleted,\n\t\tsupportsBilling: (state) => state.connection !== null && state.connection.capabilities().currency() !== null,\n\t\tsupportsBillingPlans: (state) => state.connection !== null && state.connection.capabilities().currency() !== null && state.connection.capabilities().listPlans().length > 0,\n\t\tapiVersion: (state) => state.connection !== null ? state.connection.capabilities().apiVersion() : null,\n\t\tfileFormats: (state) => state.fileFormats instanceof FileTypes ? state.fileFormats.toJSON() : {input: {}, output: {}},\n\t\tcollectionDefaults: (state) => (id) => {\n\t\t\tconst collection = state.collections.find(c => c.id === id);\n\t\t\tif (!Utils.isObject(collection)) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tlet spatial_extent = null;\n\t\t\ttry {\n\t\t\t\tspatial_extent = Utils.extentToBBox(collection.extent.spatial.bbox[0]);\n\t\t\t} catch (error) {}\n\n\t\t\tlet temporal_extent = null;\n\t\t\ttry {\n\t\t\t\ttemporal_extent = collection.extent.temporal.interval[0];\n\t\t\t\tif (temporal_extent[0] === null && temporal_extent[1] === null) {\n\t\t\t\t\ttemporal_extent = null;\n\t\t\t\t}\n\t\t\t\telse if (temporal_extent[0] == temporal_extent[1]) {\n\t\t\t\t\ttemporal_extent[1] = null;\n\t\t\t\t}\n\t\t\t} catch (error) {}\n\t\n\t\t\tlet bands = null;\n\t\t\treturn {id, spatial_extent, temporal_extent, bands};\n\t\t},\n\t\tprocesses: (state) => {\n\t\t\tlet registry\n\t\t\tif (state.processesUpdated && state.connection !== null) {\n\t\t\t\tregistry = state.connection.processes;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tregistry = new ProcessRegistry();\n\t\t\t}\n\t\t\treturn Object.assign(registry, ProcessRegistryExtension);\n\t\t},\n\t\tsupportsMath: (state, getters) => {\n\t\t\tif (!state.processesUpdated) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor(let i in Formula.operatorMapping) {\n\t\t\t\tlet processId = Formula.operatorMapping[i];\n\t\t\t\tif (!getters.processes.has(processId)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t},\n\tactions: {\n\t\tasync connect(cx, url) {\n\t\t\tawait cx.dispatch('logout');\n\n\t\t\t// Connect and request capabilities\n\t\t\tlet connection = null;\n\t\t\ttry {\n\t\t\t\tconnection = await OpenEO.connect(url, {addNamespaceToProcess: true});\n\t\t\t} catch (error) {\n\t\t\t\tif(error.message == 'Network Error' || error.name == 'NetworkError') {\n\t\t\t\t\terror = new Error(\"Server is not available.\");\n\t\t\t\t}\n\t\t\t\tcx.commit('setConnectionError', error);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Request auth provider list\n\t\t\ttry {\n\t\t\t\tconst providers = await connection.listAuthProviders();\n\t\t\t\tcx.commit('authProviders', providers);\n\t\t\t} catch (error) {\n\t\t\t\tcx.commit('setConnectionError', error);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconnection.on('authProviderChanged', async (provider) => {\n\t\t\t\tcx.commit('authenticated', provider !== null);\n\t\t\t\tif (cx.state.discoveryCompleted) {\n\t\t\t\t\tawait cx.dispatch('discover', true);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconnection.on('processesChanged', () => cx.commit('updateProcesses'));\n\n\t\t\t// Only commit the connection change after requesting the auth providers\n\t\t\t// as this indicates that the connection procedure has finished.\n\t\t\tcx.commit('connection', connection);\n\n\t\t\treturn true;\n\t\t},\n\n\t\tasync discover(cx, refresh = false) {\n\t\t\tlet promises = [];\n\t\t\tlet errors = [];\n\t\t\tlet capabilities = cx.state.connection.capabilities();\n\n\t\t\t// Request collections\n\t\t\tif (capabilities.hasFeature('listCollections')) {\n\t\t\t\tpromises.push(cx.state.connection.listCollections()\n\t\t\t\t\t.then(response => cx.commit('collections', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\t\t\telse {\n\t\t\t\terrors.push(new Error(\"Collections not supported by the server.\"));\n\t\t\t}\n\n\t\t\tif (!refresh) { // Only load on first discovery, otherwise the JS client already refreshes the data\n\t\t\t\t// Request processes\n\t\t\t\tif (capabilities.hasFeature('listProcesses')) {\n\t\t\t\t\tpromises.push(cx.state.connection.listProcesses()\n\t\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\terrors.push(new Error(\"Pre-defined processes not supported by the server.\"));\n\t\t\t\t}\n\n\t\t\t\t// Request processes from namespaces\n\t\t\t\tif (cx.state.processNamespaces.length > 0) {\n\t\t\t\t\tfor(let namespace of cx.state.processNamespaces) {\n\t\t\t\t\t\tpromises.push(cx.state.connection.listProcesses(namespace)\n\t\t\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Request custom processes\n\t\t\t\tif (capabilities.hasFeature('listUserProcesses') && cx.state.connection.isAuthenticated()) {\n\t\t\t\t\tpromises.push(cx.dispatch('userProcesses/list')\n\t\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Request supported output formats\n\t\t\tif (capabilities.hasFeature('listFileTypes')) {\n\t\t\t\tpromises.push(cx.state.connection.listFileTypes()\n\t\t\t\t\t.then(response => cx.commit('fileFormats', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\n\t\t\t// Request supported service types\n\t\t\tif (capabilities.hasFeature('listServiceTypes')) {\n\t\t\t\tpromises.push(cx.state.connection.listServiceTypes()\n\t\t\t\t\t.then(response => cx.commit('serviceTypes', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\n\t\t\t// Request supported UDF runtimes\n\t\t\tif (capabilities.hasFeature('listUdfRuntimes')) {\n\t\t\t\tpromises.push(cx.state.connection.listUdfRuntimes()\n\t\t\t\t\t.then(response => cx.commit('udfRuntimes', response))\n\t\t\t\t\t.catch(error => errors.push(error)));\n\t\t\t}\n\n\t\t\t// Request user account information\n\t\t\tconst promise = cx.dispatch('describeAccount')\n\t\t\t\t.catch(error => errors.push(error));\n\t\t\tpromises.push(promise);\n\n\t\t\tawait Promise.all(promises);\n\n\t\t\t// Request initial process\n\t\t\tif (!refresh) {\n\t\t\t\ttry {\n\t\t\t\t\tawait cx.dispatch('editor/loadInitialProcess');\n\t\t\t\t} catch (error) {\n\t\t\t\t\terrors.push(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Request results for app mode\n\t\t\tif (!refresh) {\n\t\t\t\ttry {\n\t\t\t\t\tawait cx.dispatch('editor/loadForAppMode');\n\t\t\t\t} catch (error) {\n\t\t\t\t\terrors.push(error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcx.commit('discoveryCompleted');\n\t\t\treturn errors;\n\t\t},\n\n\t\t// Request user account info\n\t\tasync describeAccount(cx) {\n\t\t\tif (cx.getters.supports('describeAccount') && cx.state.isAuthenticated) {\n\t\t\t\tconst response = await cx.state.connection.describeAccount();\n\t\t\t\tcx.commit('userInfo', response);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcx.commit('userInfo');\n\t\t\t}\n\t\t},\n\n\t\tasync describeCollection(cx, id) {\n\t\t\tlet collection = cx.state.collections.find(c => c.id === id);\n\t\t\tif (!collection || !collection._loaded) {\n\t\t\t\tcollection = await cx.state.connection.describeCollection(id);\n\t\t\t\tcollection = StacMigrate.collection(collection, false);\n\t\t\t\tcx.commit('fillCollection', collection);\n\t\t\t}\n\t\t\treturn collection;\n\t\t},\n\n\t\tasync loadProcess(cx, {id, namespace}) {\n\t\t\tconst process = cx.getters.processes.get(id, namespace);\n\t\t\tif (!Utils.isObject(process)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (process.namespace !== 'backend') {\n\t\t\t\tif (process.namespace === 'user') {\n\t\t\t\t\tawait cx.dispatch('userProcesses/read', {data: process});\n\t\t\t\t}\n\t\t\t\telse if (process.namespace && namespace !== 'backend') {\n\t\t\t\t\tawait cx.state.connection.describeProcess(id, process.namespace);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cx.getters.processes.get(id, namespace);\n\t\t},\n\n\t\tasync beforeLogout(cx) {\n\t\t\tawait Promise.all(Object.values(cx.state.beforeLogoutListener).map(listener => listener()));\n\t\t},\n\n\t\tasync logout(cx, disconnect = false) {\n\t\t\tawait cx.dispatch('beforeLogout');\n\n\t\t\tif (disconnect) {\n\t\t\t\t// Remove listeners, we don't need them anymore if we connect anyway\n\t\t\t\tcx.state.connection.off('authProviderChanged');\n\t\t\t\tcx.state.connection.off('processesChanged');\n\t\t\t}\n\n\t\t\tif (cx.state.isAuthenticated) {\n\t\t\t\t// Logout (mostly for OIDC)\n\t\t\t\tconst authProvider = cx.state.connection.getAuthProvider();\n\t\t\t\tif (authProvider !== null) {\n\t\t\t\t\tawait authProvider.logout();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (disconnect) {\n\t\t\t\t// Reset values\n\t\t\t\tcx.commit('reset', this.isAuthenticated);\n\t\t\t\tcx.commit('jobs/reset');\n\t\t\t\tcx.commit('files/reset');\n\t\t\t\tcx.commit('services/reset');\n\t\t\t\tcx.commit('userProcesses/reset');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcx.commit('authenticated', false);\n\t\t\t}\n\t\t}\n\t},\n\tmutations: {\n\t\tdiscoveryCompleted(state, completed = true) {\n\t\t\tstate.discoveryCompleted = completed;\n\t\t},\n\t\tconnection(state, connection) {\n\t\t\tstate.connection = connection;\n\t\t},\n\t\tauthProviders(state, authProviders) {\n\t\t\tstate.authProviders = authProviders;\n\t\t},\n\t\tuserInfo(state, info) {\n\t\t\tstate.userInfo = Utils.isObject(info) ? info : {};\n\t\t},\n\t\tfileFormats(state, fileFormats) {\n\t\t\tstate.fileFormats = fileFormats;\n\t\t},\n\t\tserviceTypes(state, serviceTypes) {\n\t\t\t// Make keys uppercase for simplicity\n\t\t\tif (Utils.isObject(serviceTypes)) {\n\t\t\t\tconst obj = {};\n\t\t\t\tfor(const key in serviceTypes) {\n\t\t\t\t\tobj[key.toUpperCase()] = serviceTypes[key];\n\t\t\t\t}\n\t\t\t\tstate.serviceTypes = obj;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstate.serviceTypes = serviceTypes;\n\t\t\t}\n\t\t},\n\t\tudfRuntimes(state, udfRuntimes) {\n\t\t\tstate.udfRuntimes = udfRuntimes;\n\t\t},\n\t\tupdateProcesses(state) {\n\t\t\tstate.processesUpdated++;\n\t\t},\n\t\taddProcessNamespacesToRequest(state, namespaces) {\n\t\t\tif (typeof namespaces === 'string') {\n\t\t\t\tnamespaces = namespaces.split(',');\n\t\t\t}\n\t\t\tif (!Array.isArray(namespaces)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor(let namespace of namespaces) {\n\t\t\t\tif (namespace && !state.processNamespaces.includes(namespace)) {\n\t\t\t\t\tstate.processNamespaces.push(namespace);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfillCollection(state, data) {\n\t\t\tlet index = state.collections.findIndex(c => c.id === data.id);\n\t\t\tif (index !== -1) {\n\t\t\t\tdata._loaded = true;\n\t\t\t\tVue.set(state.collections, index, data);\n\t\t\t}\n\t\t},\n\t\tcollections(state, data) {\n\t\t\tstate.collections = data.collections\n\t\t\t\t.map(c => StacMigrate.collection(c, false))\n\t\t\t\t.filter(c => (typeof c.id === 'string'))\n\t\t\t\t.sort(Utils.sortById);\n\t\t},\n\t\tsetConnectionError(state, error) {\n\t\t\tstate.connectionError = error;\n\t\t},\n\t\tauthenticated(state, isAuthenticated) {\n\t\t\tstate.isAuthenticated = isAuthenticated;\n\t\t\tif (!isAuthenticated) {\n\t\t\t\tstate.userInfo = {};\n\t\t\t}\n\t\t},\n\t\treset(state, keepConnection = false) {\n\t\t\tObject.assign(state, getDefaultState(), {\n\t\t\t\tconnection: keepConnection ? state.connection : null\n\t\t\t});\n\t\t},\n\t\tstartActiveRequest(state) {\n\t\t\tstate.activeRequests += 1;\n\t\t},\n\t\tendActiveRequest(state) {\n\t\t\tstate.activeRequests -= 1;\n\t\t},\n\t\tbeforeLogoutListener(state, {key, listener}) {\n\t\t\tif (typeof listener === 'function') {\n\t\t\t\tstate.beforeLogoutListener[key] = listener;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tVue.delete(state.beforeLogoutListener, key);\n\t\t\t}\n\t\t}\n\t}\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container\",class:{connecting: !_vm.isDiscovered}},[_c('transition',{attrs:{\"name\":\"connect-fade\",\"mode\":\"out-in\"}},[(!_vm.isDiscovered)?_c('ConnectForm',{key:\"1\",attrs:{\"skipLogin\":_vm.skipLogin}}):_c('IDE',{key:\"2\"})],1),_vm._l((_vm.modals),function(modal){return [_c(modal.component,_vm._g(_vm._b({key:modal.id,tag:\"component\",on:{\"closed\":function($event){return _vm.hideModal(modal)}}},'component',modal.props,false),modal.events))]}),_c('vue-snotify'),(_vm.tourType)?_c('Tour',{model:{value:(_vm.tourType),callback:function ($$v) {_vm.tourType=$$v},expression:\"tourType\"}}):_vm._e(),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.activeRequests > 0),expression:\"activeRequests > 0\"}],attrs:{\"id\":\"activeRequests\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-2x\"})])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"connectPage\"},[_c('Logo'),_c('div',{staticClass:\"connectContainer\"},[_c('div',{staticClass:\"helpBtn\",attrs:{\"title\":\"Show help\"},on:{\"click\":_vm.showHelp}},[_c('i',{staticClass:\"fas fa-question fa-fw\"}),_vm._v(\" Help\")]),(_vm.httpsUrl)?_c('div',{staticClass:\"message error\"},[_c('i',{staticClass:\"fas fa-shield-alt\"}),_c('span',[_vm._v(\"You are using an \"),_c('strong',[_vm._v(\"insecure\")]),_vm._v(\" HTTP connection, which is not encrypted. Please use HTTPS if possible.\"),_c('br'),_c('a',{attrs:{\"href\":_vm.httpsUrl}},[_vm._v(\"Click here to switch to a secured HTTPS connection.\")])])]):_vm._e(),(_vm.message)?_c('div',{staticClass:\"message warning\"},[_c('i',{staticClass:\"fas fa-bullhorn\"}),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})]):_vm._e(),_c('transition',{attrs:{\"name\":\"connect-fade\",\"mode\":\"out-in\"},on:{\"before-enter\":_vm.initProviders}},[(_vm.showConnectForm)?_c('form',{staticClass:\"connect\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm.apply(null, arguments)}}},[_c('h3',[_vm._v(\"Connect to server\")]),_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"serverUrl\"}},[_vm._v(\"URL:\")]),_c('div',{staticClass:\"input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy.trim\",value:(_vm.serverUrl),expression:\"serverUrl\",modifiers:{\"lazy\":true,\"trim\":true}}],staticClass:\"tour-connect-url\",attrs:{\"type\":\"text\",\"id\":\"serverUrl\",\"disabled\":_vm.autoConnect},domProps:{\"value\":(_vm.serverUrl)},on:{\"change\":function($event){_vm.serverUrl=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.allowOtherServers)?_c('button',{staticClass:\"tour-connect-history\",attrs:{\"type\":\"button\",\"title\":\"Select previously used server\"},on:{\"click\":_vm.showServerSelector}},[_c('i',{staticClass:\"fas fa-book\"})]):_vm._e()])]),_c('div',{staticClass:\"row\"},[_c('button',{staticClass:\"connectBtn tour-connect-retry\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_vm._v(\" Connect\")])])]):(_vm.showLoginForm)?_c('div',{staticClass:\"login\"},[_c('h3',[_vm._v(\"Log in to \"+_vm._s(_vm.title))]),_c('Tabs',{ref:\"providers\",attrs:{\"id\":\"credentials\",\"pills\":true,\"pillsMultiline\":true},on:{\"selected\":_vm.providerSelected},scopedSlots:_vm._u([{key:\"dynamic\",fn:function({ tab }){return [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.initDiscovery(tab.data)}}},[(tab.data.description)?_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('span',[_vm._v(_vm._s(tab.data.description))])]):_vm._e(),(!_vm.hasPredefinedOidcClientId)?[_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"password\"}},[_vm._v(\"Client ID:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.userOidcClientId),expression:\"userOidcClientId\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"type\":\"text\",\"required\":\"required\"},domProps:{\"value\":(_vm.userOidcClientId)},on:{\"input\":function($event){if($event.target.composing)return;_vm.userOidcClientId=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-exclamation-circle\"}),_c('span',[_vm._v(\"You need to specify the \"),_c('em',[_vm._v(\"Client ID\")]),_vm._v(\" provided to you by the provider. You need to allow the \"),_c('a',{attrs:{\"href\":_vm.oidcRedirectUrl,\"target\":\"_blank\",\"title\":_vm.oidcRedirectUrl}},[_vm._v(\"URL of this service\")]),_vm._v(\" as redirect URL with the authentication service.\")])])]:_vm._e(),_c('div',{staticClass:\"row bottom\"},[_c('TermsOfServiceConsent'),_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-window-restore\"}),_c('span',[_vm._v(\"Clicking the button below may open a new window for login.\")])]),_c('button',{staticClass:\"connectBtn\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_c('i',{staticClass:\"fab fa-openid\"}),_vm._v(\" Log in with \"+_vm._s(tab.name))])],1)],2)]}},(_vm.basicProvider)?{key:\"basic\",fn:function({ tab }){return [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.initDiscovery(tab.data)}}},[_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('span',[_vm._v(\"The \"),_c('tt',[_vm._v(\"HTTP Basic\")]),_vm._v(\" authentication method is mostly used for development and testing purposes.\")],1)]),_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"username\"}},[_vm._v(\"Username:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.username),expression:\"username\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"id\":\"username\",\"type\":\"text\",\"required\":\"required\"},domProps:{\"value\":(_vm.username)},on:{\"input\":function($event){if($event.target.composing)return;_vm.username=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('div',{staticClass:\"row\"},[_c('label',{attrs:{\"for\":\"password\"}},[_vm._v(\"Password:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.password),expression:\"password\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"id\":\"password\",\"type\":\"password\",\"required\":\"required\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing)return;_vm.password=$event.target.value.trim()},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_c('div',{staticClass:\"row bottom\"},[_c('TermsOfServiceConsent'),_c('button',{staticClass:\"connectBtn\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_vm._v(\" Log in\")])],1)])]}}:null,{key:\"noauth\",fn:function(){return [_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.initDiscovery()}}},[_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-info-circle\"}),_c('span',[_vm._v(\"Choose this if you don't have credentials for the service provider and just want to explore the service with its available data and processes. You may not be able to process any data.\")])]),_c('div',{staticClass:\"row bottom\"},[_c('TermsOfServiceConsent'),_c('button',{staticClass:\"connectBtn\",class:{loading: _vm.loading},attrs:{\"type\":\"submit\"}},[_c('i',{staticClass:\"fas fa-spinner fa-spin fa-lg\"}),_c('i',{staticClass:\"fas fa-user-slash\"}),_vm._v(\" Proceed without logging in\")])],1)])]},proxy:true}],null,true)}),(_vm.allowOtherServers)?_c('div',{staticClass:\"switch tour-login-switch\"},[_c('a',{on:{\"click\":function($event){return _vm.switchServer()}}},[_vm._v(\"Switch server\")])]):_vm._e()],1):_vm._e()])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.show)?_c('div',{staticClass:\"row help\"},[_c('i',{staticClass:\"fas fa-check-circle\"}),(_vm.terms && _vm.privacy)?_c('span',[_vm._v(\"By clicking the button below, you agree to our \"),_c('a',{attrs:{\"href\":_vm.terms.href,\"title\":_vm.terms.title,\"target\":\"_blank\"}},[_vm._v(\"Terms of Service\")]),_vm._v(\" and that you have read our \"),_c('a',{attrs:{\"href\":_vm.privacy.href,\"title\":_vm.privacy.title,\"target\":\"_blank\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\".\")]):(_vm.terms)?_c('span',[_vm._v(\"By clicking the button below, you agree to our \"),_c('a',{attrs:{\"href\":_vm.terms.href,\"title\":_vm.terms.title,\"target\":\"_blank\"}},[_vm._v(\"Terms of Service\")]),_vm._v(\".\")]):(_vm.privacy)?_c('span',[_vm._v(\"By clicking the button below, you agree that you have read our \"),_c('a',{attrs:{\"href\":_vm.privacy.href,\"title\":_vm.privacy.title,\"target\":\"_blank\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\".\")]):_vm._e()]):_vm._e()\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!./TermsOfServiceConsent.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!./TermsOfServiceConsent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TermsOfServiceConsent.vue?vue&type=template&id=52726e94\"\nimport script from \"./TermsOfServiceConsent.vue?vue&type=script&lang=js\"\nexport * from \"./TermsOfServiceConsent.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","\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!./ConnectForm.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!./ConnectForm.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ConnectForm.vue?vue&type=template&id=714226be&scoped=true\"\nimport script from \"./ConnectForm.vue?vue&type=script&lang=js\"\nexport * from \"./ConnectForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./ConnectForm.vue?vue&type=style&index=0&id=714226be&prod&lang=scss&scoped=true\"\nimport style1 from \"./ConnectForm.vue?vue&type=style&index=1&id=714226be&prod&lang=css\"\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 \"714226be\",\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!./Page.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!./Page.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Page.vue?vue&type=template&id=5b68e2ee\"\nimport script from \"./Page.vue?vue&type=script&lang=js\"\nexport * from \"./Page.vue?vue&type=script&lang=js\"\nimport style0 from \"./Page.vue?vue&type=style&index=0&id=5b68e2ee&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","export default {\n\n}","import Vue from 'vue';\nimport Snotify from 'vue-snotify';\nimport 'vue-snotify/styles/simple.css';\nimport store from './store/index';\nimport Config from '../config';\nimport Page from './Page.vue';\nimport filters from './filters';\nimport Clipboard from 'v-clipboard';\n\nVue.use(Snotify);\nVue.use(Clipboard);\n\n// Don't show too many repetitive error messages\nVue.prototype.$snotify.singleError = function () {\n\tlet message = arguments[0];\n\tif (message !== this.lastMessage) {\n\t\tthis.lastMessage = message;\n\t\tthis.error(...arguments);\n\t\tsetTimeout(() => this.lastMessage = null, 1000);\n\t}\n};\n\nVue.config.productionTip = false;\nVue.config.errorHandler = function (err, vm, info) {\n\tconsole.error(err, info);\n\tif (!vm || !vm.$snotify) {\n\t\treturn;\n\t}\n\n\tlet message;\n\tif (err instanceof Error) {\n\t\tmessage = err.message;\n\t}\n\telse if (typeof err === 'string') {\n\t\tmessage = err;\n\t}\n\n\tif (message) {\n\t\tvm.$snotify.singleError(message, 'Error', Config.snotifyDefaults);\n\t}\n};\nVue.prototype.$config = Config;\n\nfor(var name in filters) {\n\tVue.filter(name, filters[name]);\n}\n\nconst app = new Vue({\n\tstore,\n\trender: h => h(Page)\n}).$mount('#app');\n\nwindow.addEventListener(\"unhandledrejection\", function(event) {\n\tconsole.warn(event);\n\tif (typeof event.reason === 'String' || event.reason instanceof Error) {\n\t\tapp.$snotify.singleError(event.reason, 'Error', Config.snotifyDefaults);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n});\n","import Utils from './utils';\nimport { ProcessSchema, ProcessDataType } from '@openeo/js-commons';\n\nexport default class Process {\n\n\tstatic isMathProcess(p, operatorMapping = {}) {\n\t\tif (!Utils.isObject(p)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Skip processes handled by operators, if given\n\t\tlet operatorProcesses = Object.values(operatorMapping);\n\t\tif (operatorProcesses.includes(p.id)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Process must return a numerical value\n\t\tif (!Utils.isObject(p.returns) || !p.returns.schema) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet allowedTypes = ['number', 'integer', 'any'];\n\t\tlet returns = new ProcessSchema(p.returns.schema);\n\t\tif (!allowedTypes.includes(returns.nativeDataType())) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Required Process parameters must accept numerical values\n\t\tif (Array.isArray(p.parameters)) {\n\t\t\tfor(var i in p.parameters) {\n\t\t\t\tlet param = p.parameters[i];\n\t\t\t\tif (param.optional) {\n\t\t\t\t\tcontinue; // Skip optional parameters\n\t\t\t\t}\n\t\t\t\tif (!param.schema) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tlet schema = new ProcessSchema(param.schema);\n\t\t\t\tif (!allowedTypes.includes(schema.nativeDataType())) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t// ToDo: Parameters with a dash (and other operators) in them are a problem\n\n\t\treturn true;\n\t}\n\n\tstatic arrayOf(datatype) {\n\t\tif (!(datatype instanceof ProcessDataType)) {\n\t\t\tdatatype = new ProcessDataType(datatype);\n\t\t}\n\t\tif (datatype.nativeDataType() === 'array' && Utils.isObject(datatype.schema.items)) {\n\t\t\tlet subtype = new ProcessDataType(datatype.schema.items);\n\t\t\treturn subtype.dataType();\n\t\t}\n\t\treturn undefined;\n\t}\n}","import VueUtils from '@openeo/vue-components/utils';\nimport { Job, OpenEO, Service, UserFile, UserProcess } from '@openeo/js-client';\nimport { mapState, mapActions, mapMutations, mapGetters } from 'vuex';\nimport contentType from 'content-type';\nimport Config from '../config';\nimport axios from 'axios';\n\nclass Utils extends VueUtils {\n\n\tstatic axios() {\n\t\treturn OpenEO.Environment.axios;\n\t}\n\n\tstatic saveToFile(content, filename) {\n\t\treturn OpenEO.Environment.saveToFile(content, filename);\n\t}\n\n\tstatic getPreviewLinkFromSTAC(stac) {\n\t\tif (Utils.isObject(stac) && Array.isArray(stac.links)) {\n\t\t\tlet link = stac.links.find(link => Utils.isObject(link) && typeof link.rel === 'string' && Config.supportedMapServices.includes(link.rel.toLowerCase()));\n\t\t\tif (link) {\n\t\t\t\treturn link;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tstatic isMapServiceSupported(mapType) {\n\t\tif (typeof mapType !== 'string') {\n\t\t\treturn false;\n\t\t}\n\t\treturn Config.supportedMapServices.includes(mapType.toLowerCase());\n\t}\n\n\tstatic parseNodata(value) {\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value.map(nodata => Utils.parseNodata(nodata));\n\t\t}\n\t\telse {\n\t\t\treturn typeof value === \"string\" && value.toLowerCase() === \"nan\" ? Number.NaN : value;\n\t\t}\n\t}\n\n\tstatic isActiveJobStatusCode(status) {\n\t\tif (typeof status !== 'string') {\n\t\t\treturn null;\n\t\t}\n\t\tswitch (status.toLowerCase()) {\n\t\t\tcase 'running':\n\t\t\tcase 'queued':\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tstatic exception(vm, error, alt) {\n\t\tconsole.error(error);\n\t\tvar buttons = [];\n\t\tvar title = null; \n\t\tvar message = alt;\n\t\tif (Utils.isObject(error) && typeof error.message === 'string') {\n\t\t\tif (error.code > 0) {\n\t\t\t\ttitle = \"Error #\" + error.code; \n\t\t\t}\n\t\t\telse {\n\t\t\t\ttitle = alt; \n\t\t\t}\n\t\t\tmessage = error.message;\n\n\t\t\tbuttons.push({\n\t\t\t\ttext: 'Show Details',\n\t\t\t\taction: () => vm.$root.$emit('showError', error)\n\t\t\t});\n\t\t}\n\t\telse if (typeof error === 'string') {\n\t\t\tmessage = error; \n\t\t\ttitle = alt; \n\t\t}\n\t\tbuttons.push({\n\t\t\ttext: 'Copy',\n\t\t\taction: toast => {\n\t\t\t\tlet success = vm.$clipboard(message);\n\t\t\t\tlet button = toast.config.buttons.find(btn => btn.text === 'Copy');\n\t\t\t\tif (button) {\n\t\t\t\t\tbutton.text = success ? \"✔️ Copied\" : \"❌ Failed\";\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tvar typeDefaults = {\n\t\t\tbuttons\n\t\t}; \n\t\tvm.$snotify.singleError(message, title, Object.assign({}, vm.$config.snotifyDefaults, typeDefaults)); \n\t} \n\tstatic error(vm, message, title = null) {\n\t\tvm.$snotify.singleError(message, title, vm.$config.snotifyDefaults); \n\t}\n\tstatic warn(vm, message, title = null) {\n\t\tvm.$snotify.warning(message, title, vm.$config.snotifyDefaults);\n\t}\n\tstatic info(vm, message, title = null) {\n\t\tvm.$snotify.info(message, title, vm.$config.snotifyDefaults); \n\t}\n\tstatic ok(vm, message, title = null) {\n\t\tvm.$snotify.success(message, title, vm.$config.snotifyDefaults); \n\t}\n\tstatic confirm(vm, message, buttons = []) {\n\t\tvar typeDefaults = {\n\t\t\tbuttons: buttons\n\t\t}; \n\t\tvm.$snotify.confirm(message, null, Object.assign({}, vm.$config.snotifyDefaults, typeDefaults)); \n\t}\n\t\n\tstatic isChildOfModal(that) {\n\t\treturn that.$parent && that.$parent.$options.name == 'Modal'; \n\t}\n\n\tstatic getFileNameFromURL(url) {\n\t\t//this removes the anchor at the end, if there is one\n\t\turl = url.substring(0, (url.indexOf(\"#\") == -1)?url.length:url.indexOf(\"#\")); \n\t\t//this removes the query after the file name, if there is one\n\t\turl = url.substring(0, (url.indexOf(\"?\") == -1)?url.length:url.indexOf(\"?\")); \n\t\t//this removes everything before the last slash in the path\n\t\turl = url.substring(url.lastIndexOf(\"/\") + 1, url.length); \n\t\treturn url; \n\t}\n\n\tstatic makeFileName(filename, type) {\n\t\tif (filename.includes('.') || typeof type !== 'string') {\n\t\t\treturn filename;\n\t\t}\n\t\tif (!type.includes('/')) {\n\t\t\treturn filename + '.' + type;\n\t\t}\n\n\t\tlet ext = null;\n\t\ttry {\n\t\t\tlet mime = contentType.parse(type);\n\t\t\tswitch(mime.type.toLowerCase()) {\n\t\t\t\tcase 'application/json':\n\t\t\t\tcase 'application/zip':\n\t\t\t\tcase 'image/png':\n\t\t\t\tcase 'image/jpg':\n\t\t\t\tcase 'image/jpeg':\n\t\t\t\tcase 'image/gif':\n\t\t\t\tcase 'image/tiff':\n\t\t\t\tcase 'text/csv':\n\t\t\t\tcase 'text/html':\n\t\t\t\t\text = type.split('/')[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'text/plain':\n\t\t\t\t\text = 'txt';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'application/netcdf':\n\t\t\t\tcase 'application/x-netcdf':\n\t\t\t\t\text = 'nc'\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t} catch (error) {}\n\n\t\tif (ext !== null) {\n\t\t\treturn filename + '.' + ext;\n\t\t}\n\t\telse {\n\t\t\treturn filename;\n\t\t}\n\t}\n\n\tstatic replaceParam(url, paramName, paramValue) {\n\t\tvar urlObj = new URL(url);\n\t\tvar query = new URLSearchParams(urlObj.search); \n\t\tquery.set(paramName, paramValue);\n\t\turlObj.search = query.toString();\n\t\treturn urlObj.toString();\n\t}\n\n\tstatic paramsForPrefix(prefix, sep = '~') {\n\t\tprefix += sep;\n\t\tconst urlParams = new URLSearchParams(window.location.search);\n\t\tlet params = {};\n\t\tfor(let [key, value] of urlParams) {\n\t\t\tif (key.startsWith(prefix)) {\n\t\t\t\tparams[key.substring(prefix.length)] = value;\n\t\t\t}\n\t\t}\n\t\treturn params; \n\t}\n\n\tstatic param(name) {\n\t\tconst urlParams = new URLSearchParams(window.location.search);\n\t\tif (urlParams.has(name)) {\n\t\t\treturn urlParams.get(name);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic isBboxInWebMercator(bboxes) {\n\t\tif (!bboxes) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!Array.isArray(bboxes)) {\n\t\t\tbboxes = [bboxes];\n\t\t}\n\t\tlet maxBounds = {south: -85.06, north: 85.06}; // Max. south/north bounds for Web Mercator\n\t\treturn !bboxes.find(bbox => bbox.south < maxBounds.south || bbox.north > maxBounds.north);\n\t}\n\tstatic extentToBBox(extent) {\n\t\tif (!Array.isArray(extent)) {\n\t\t\treturn null;\n\t\t}\n\t\tvar hasZ = extent.length >= 6;\n let obj = {\n\t\t\twest: extent[0],\n\t\t\teast: extent[hasZ ? 3 : 2],\n\t\t\tsouth: extent[1],\n\t\t\tnorth: extent[hasZ ? 4 : 3]\n\t\t};\n\t\tif (hasZ) {\n\t\t\tobj.base = extent[2];\n\t\t\tobj.height = extent[5];\n\t\t}\n\t\treturn obj;\n\t}\n\tstatic sortById(a, b) {\n\t\treturn VueUtils.compareStringCaseInsensitive(a.id, b.id);\n\t}\n\n\tstatic range(start, end) {\n\t\tif (end < start) {\n\t\t\treturn [];\n\t\t}\n\t\treturn Array.from({length: 1 + end - start}, (_, i) => start + i);\n\t}\n\n\tstatic newArray(length, defaultValue = 0) {\n\t\tif (length < 1) {\n\t\t\treturn [];\n\t\t}\n\t\treturn Array.from({length}, () => defaultValue);\n\t}\n\n\tstatic fitArray(arr, length, defaultValue = 0) {\n\t\tif (length < 1) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (length > arr.length) {\n\t\t\treturn arr.concat(Utils.newArray(length - arr.length, defaultValue));\n\t\t}\n\t\telse if (length < arr.length) {\n\t\t\treturn arr.slice(0, length);\n\t\t}\n\t\telse {\n\t\t\treturn arr;\n\t\t}\n\t}\n\n\t// Based on https://github.com/hughsk/path-sort\n\tstatic sortByPath(a, b) {\n\t\ta = a.split('/');\n\t\tb = b.split('/');\n\t\tvar l = Math.max(a.length, b.length);\n\t\tfor (var i = 0; i < l; i += 1) {\n\t\t\tif (!(i in a)) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\telse if (!(i in b)) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (a[i].toUpperCase() > b[i].toUpperCase()) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (a[i].toUpperCase() < b[i].toUpperCase()) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t\tif (a.length < b.length) {\n\t\t\treturn -1;\n\t\t}\n\t\telse if (a.length > b.length) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tstatic getUniqueId() {\n\t\treturn Math.random().toString(36).substr(2, 9);\n\t}\n\n\tstatic formatIdOrTitle(value) {\n\t\tif (typeof value !== 'string') {\n\t\t\treturn value;\n\t\t}\n\t\telse if (value.startsWith('#')) {\n\t\t\treturn `${value}`;\n\t}\n\t\telse if (value === 'Unnamed') {\n\t\t\treturn `${value}`;\n\t\t}\n\t\telse {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tstatic getResourceTitle(obj, showType = false) {\n\t\tlet title;\n\t\tlet isObj = Utils.isObject(obj);\n\t\tif (typeof obj === 'string') {\n\t\t\ttitle = obj;\n\t\t}\n\t\telse if (obj instanceof UserProcess) {\n\t\t\ttitle = obj.id;\n\t\t}\n\t\telse if (obj instanceof UserFile) {\n\t\t\ttitle = obj.path;\n\t\t}\n\t\telse if (isObj && typeof obj.stac_version === 'string') {\n\t\t\ttitle = obj.id;\n\t\t}\n\t\telse if (isObj && obj.title) {\n\t\t\ttitle = obj.title;\n\t\t}\n\t\telse if (isObj && obj.id) {\n\t\t\tlet id = new String(obj.id);\n\t\t\tif (id.length > 10) {\n\t\t\t\ttitle = obj.id.substr(0, 5) + '…' + obj.id.substr(-5);\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttitle = obj.id\n\t\t\t}\n\t\t\ttitle = '#' + title;\n\t\t}\n\t\telse {\n\t\t\ttitle = 'Unnamed';\n\t\t}\n\t\tif (showType) {\n\t\t\tlet type;\n\t\t\tif (typeof showType === 'string') {\n\t\t\t\ttype = showType;\n\t\t\t}\n\t\t\telse if (obj instanceof Job) {\n\t\t\t\ttype = 'Job';\n\t\t\t}\n\t\t\telse if (obj instanceof Service) {\n\t\t\t\ttype = 'Service';\n\t\t\t}\n\t\t\telse if (obj instanceof UserProcess) {\n\t\t\t\ttype = 'Process';\n\t\t\t}\n\t\t\telse if (obj instanceof UserFile) {\n\t\t\t\ttype = 'File';\n\t\t\t}\n\t\t\telse if (isObj && typeof obj.stac_version === 'string' && obj.type === 'Collection') {\n\t\t\t\ttype = obj.type;\n\t\t\t}\n\n\t\t\tif (type) {\n\t\t\t\ttitle = `${title} (${type})`;\n\t\t\t}\n\t\t}\n\t\treturn title;\n\t}\n\n\tstatic resolveJsonRefs(schema) {\n\t\tvar resolver = obj => {\n\t\t\tif (!obj || typeof obj !== 'object') {\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tfor(var key in obj) {\n\t\t\t\tvar value = obj[key];\n\t\t\t\tif (Utils.isObject(value) && typeof value.$ref === 'string' && value.$ref.match(/^#(\\/[^\\/]+)+$/i)) {\n\t\t\t\t\tvar parts = value.$ref.split('/').slice(1);\n\t\t\t\t\tvar result = schema;\n\t\t\t\t\twhile (parts.length) {\n\t\t\t\t\t\tlet propertyName = parts.shift();\n\t\t\t\t\t\tresult = result[propertyName];\n\t\t\t\t\t\tif (typeof result === 'undefined') {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tobj[key] = result;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tobj[key] = resolver(value);\n\t\t\t}\n\t\t\treturn obj;\n\t\t};\n\t\treturn resolver(schema);\n\t}\n\tstatic extractUDPParams(process) {\n\t\tconst pos = process.indexOf('@');\n\t\tif (pos < 0) {\n\t\t\treturn [process, undefined];\n\t\t}\n\t\telse {\n\t\t\tconst id = process.substring(0, pos);\n\t\t\tconst namespace = process.substring(pos + 1);\n\t\t\treturn [id, namespace];\n\t\t}\n\t}\n\tstatic getProcessingExpression(stac) {\n\t\tlet key = 'processing:expression';\n\t\tif (!Utils.isObject(stac) || !stac[key]) {\n\t\t\treturn null;\n\t\t}\n\t\tlet obj = stac[key];\n\t\tif (Array.isArray(obj)) {\n\t\t\tif (obj.length > 0) {\n\t\t\t\tobj = obj[0];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tif (Utils.isObject(obj) && obj.format === 'openeo' && Utils.isObject(obj.expression)) {\n\t\t\treturn obj.expression;\n\t\t}\n\t\telse {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tstatic confirmOpenAll(files) {\n\t\treturn confirm(`You are about to open ${files.length} individual files / tabs, which could slow down the web browser. Are you sure you want to open all of them?`);\n\t}\n\n};\n\nUtils.mapState = mapState;\nUtils.mapGetters = mapGetters;\nUtils.mapMutations = mapMutations;\nUtils.mapActions = mapActions;\n\nexport default Utils;\n","if(typeof L === 'undefined') { var e = new Error(\"Cannot find module 'L'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = L;","// 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 = (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, fn, priority] = deferred[i];\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((key) => (__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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"424\":\"1e8cc4a5\",\"434\":\"3db284dc\",\"510\":\"5a6e3195\",\"552\":\"03d86df0\",\"600\":\"03d27645\",\"768\":\"e71c0931\",\"847\":\"e24b2127\",\"887\":\"10ec50ff\",\"897\":\"896d6d76\",\"1026\":\"cb48ffc0\",\"1030\":\"040e5eea\",\"1160\":\"f8da4afe\",\"1189\":\"a32f94fa\",\"1203\":\"f48ebf4f\",\"1237\":\"b0e48530\",\"1279\":\"8878690a\",\"1323\":\"c2b88a54\",\"1358\":\"4dae7370\",\"1485\":\"fbaeda97\",\"1533\":\"2170945e\",\"1694\":\"90f8f8e9\",\"1765\":\"4f30e3e9\",\"2053\":\"8f3b63df\",\"2116\":\"d2482968\",\"2195\":\"c25082b0\",\"2263\":\"c2d4312b\",\"2327\":\"6048d1aa\",\"2365\":\"674df960\",\"2388\":\"1f1f942e\",\"2559\":\"06b84f86\",\"2604\":\"9be79866\",\"2668\":\"5aac89cc\",\"2764\":\"34f8c39a\",\"2810\":\"e968ed13\",\"2855\":\"2da0a86a\",\"2869\":\"122b65e1\",\"2919\":\"5a7da297\",\"3165\":\"76bb6a25\",\"3166\":\"067ac4f1\",\"3221\":\"a34a4762\",\"3249\":\"8768e225\",\"3271\":\"5a5d98ba\",\"3291\":\"a294dd66\",\"3298\":\"57f5c4ef\",\"3383\":\"d94b2f5f\",\"3504\":\"22567424\",\"3549\":\"212045fa\",\"3592\":\"6df6431f\",\"3800\":\"4319672c\",\"3876\":\"50abede2\",\"4011\":\"7c8bfd07\",\"4016\":\"7fd9cf7f\",\"4054\":\"e7b8b9c7\",\"4066\":\"8cdb91a9\",\"4111\":\"ce83ebbc\",\"4120\":\"c763dc51\",\"4152\":\"62572df3\",\"4279\":\"b012468e\",\"4285\":\"dac135b5\",\"4375\":\"13fc5959\",\"4387\":\"6a9d95fe\",\"4389\":\"a0cc26a8\",\"4394\":\"d94fc855\",\"4432\":\"d3d8c74c\",\"4475\":\"2d81f41f\",\"4477\":\"accede65\",\"4625\":\"fdcb0b05\",\"4638\":\"086ea810\",\"4710\":\"b471ae93\",\"4818\":\"544d77b8\",\"5121\":\"3d0716e1\",\"5213\":\"f5f2cae9\",\"5237\":\"8caff225\",\"5262\":\"d2b1dab9\",\"5601\":\"4ed36f04\",\"5624\":\"56a54c83\",\"5630\":\"6c8fe1c8\",\"5640\":\"f63e0ac2\",\"5677\":\"32e52a2e\",\"5742\":\"6ee57240\",\"5771\":\"e0cf67f9\",\"5865\":\"ba589820\",\"5981\":\"bde59e8d\",\"5983\":\"b8efedd3\",\"6036\":\"ac16f8d5\",\"6126\":\"c5d874fe\",\"6192\":\"a7d24100\",\"6238\":\"6cb2e842\",\"6457\":\"0b71882d\",\"6568\":\"66ede871\",\"6617\":\"548c5e31\",\"6660\":\"5db6ed47\",\"6689\":\"0404eca3\",\"6709\":\"9bbce368\",\"6846\":\"d8f3c03b\",\"6885\":\"e5fa8c84\",\"7123\":\"e7255bc1\",\"7186\":\"f9d85ef1\",\"7237\":\"c8c92bc7\",\"7261\":\"cec7eb87\",\"7336\":\"f9de7ab6\",\"7349\":\"58ee9351\",\"7745\":\"43fb5188\",\"7759\":\"f248fb9a\",\"8053\":\"d1bcf10d\",\"8080\":\"2fc3db24\",\"8141\":\"f85ed200\",\"8152\":\"02c6d375\",\"8324\":\"9f2b9735\",\"8354\":\"9d3cdc3f\",\"8363\":\"10f92a37\",\"8370\":\"006d7cf8\",\"8396\":\"6387c5ef\",\"8580\":\"f55cb38d\",\"8645\":\"257fe523\",\"9047\":\"9e2b4217\",\"9066\":\"429507d1\",\"9201\":\"16e2764c\",\"9237\":\"b0457669\",\"9238\":\"1ce8f980\",\"9403\":\"36ca6740\",\"9409\":\"9dc12ac6\",\"9546\":\"03a9f682\",\"9873\":\"0533e950\",\"9882\":\"0cfed7b6\",\"9989\":\"fe90c1ea\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"434\":\"48f88ab7\",\"552\":\"b9ad6d11\",\"768\":\"9a253916\",\"847\":\"5e455ed7\",\"887\":\"8c892279\",\"897\":\"9a7c4e56\",\"1026\":\"ee56a981\",\"1194\":\"5e953040\",\"1203\":\"1291b8f6\",\"1279\":\"6559def7\",\"1485\":\"e0b5a390\",\"1533\":\"ee70e6ee\",\"1694\":\"cb3d0aea\",\"1765\":\"df87f4cd\",\"2053\":\"591e8359\",\"2116\":\"a263a3ee\",\"2327\":\"43969cb2\",\"2388\":\"16242cfc\",\"2604\":\"68de8223\",\"2668\":\"28ec2f2d\",\"2722\":\"13fcb001\",\"2810\":\"bb165d6b\",\"2855\":\"9be81686\",\"2869\":\"f3cd8e29\",\"3165\":\"cedc5992\",\"3166\":\"2f6e3d85\",\"3221\":\"f6c5b858\",\"3249\":\"b1500b27\",\"3271\":\"6244371c\",\"3298\":\"be08d5c1\",\"3383\":\"70bcc47a\",\"3504\":\"bb165d6b\",\"3549\":\"a1ec7ab5\",\"3592\":\"2a21fdfd\",\"4016\":\"209ecd26\",\"4066\":\"c792bb6a\",\"4111\":\"8dfcdf6d\",\"4120\":\"1490740e\",\"4152\":\"6d1bdf91\",\"4279\":\"a22f3053\",\"4285\":\"b812a1c3\",\"4375\":\"8cbfaf98\",\"4387\":\"4f91105e\",\"4389\":\"cd27822f\",\"4475\":\"3532f099\",\"4710\":\"db40c9d8\",\"4741\":\"f6d430d3\",\"4818\":\"a7c04fab\",\"5213\":\"84e10245\",\"5630\":\"b1500b27\",\"5677\":\"35500620\",\"5742\":\"d62d95a4\",\"5771\":\"f5601ccf\",\"5865\":\"951674bc\",\"5981\":\"662a7223\",\"6036\":\"84e10245\",\"6126\":\"3a51c14b\",\"6192\":\"5fb184c3\",\"6238\":\"c4731012\",\"6660\":\"a22f3053\",\"6689\":\"b4a63b64\",\"6709\":\"def3a5a5\",\"6846\":\"4e980861\",\"7123\":\"a8f318bf\",\"7186\":\"1abe4ef8\",\"7336\":\"788ebcdc\",\"7745\":\"70bcc47a\",\"7759\":\"052469b3\",\"8053\":\"48f88ab7\",\"8080\":\"f6d430d3\",\"8141\":\"f3930676\",\"8152\":\"281aa3b1\",\"8324\":\"257d9fa6\",\"8354\":\"8f8ad761\",\"8370\":\"f0b49cc1\",\"8396\":\"a5e993af\",\"8580\":\"9e19226e\",\"8645\":\"ee56a981\",\"9047\":\"13422022\",\"9066\":\"84e10245\",\"9201\":\"19b52578\",\"9238\":\"70bcc47a\",\"9403\":\"10c1c477\",\"9409\":\"dd741b46\",\"9873\":\"bb165d6b\"}[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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"@openeo/web-editor:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (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 = (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((fn) => (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 = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (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;\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(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\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\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 = (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 = (chunkId) => {\n\treturn new Promise((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\t3524: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"434\":1,\"552\":1,\"768\":1,\"847\":1,\"887\":1,\"897\":1,\"1026\":1,\"1194\":1,\"1203\":1,\"1279\":1,\"1485\":1,\"1533\":1,\"1694\":1,\"1765\":1,\"2053\":1,\"2116\":1,\"2327\":1,\"2388\":1,\"2604\":1,\"2668\":1,\"2722\":1,\"2810\":1,\"2855\":1,\"2869\":1,\"3165\":1,\"3166\":1,\"3221\":1,\"3249\":1,\"3271\":1,\"3298\":1,\"3383\":1,\"3504\":1,\"3549\":1,\"3592\":1,\"4016\":1,\"4066\":1,\"4111\":1,\"4120\":1,\"4152\":1,\"4279\":1,\"4285\":1,\"4375\":1,\"4387\":1,\"4389\":1,\"4475\":1,\"4710\":1,\"4741\":1,\"4818\":1,\"5213\":1,\"5630\":1,\"5677\":1,\"5742\":1,\"5771\":1,\"5865\":1,\"5981\":1,\"6036\":1,\"6126\":1,\"6192\":1,\"6238\":1,\"6660\":1,\"6689\":1,\"6709\":1,\"6846\":1,\"7123\":1,\"7186\":1,\"7336\":1,\"7745\":1,\"7759\":1,\"8053\":1,\"8080\":1,\"8141\":1,\"8152\":1,\"8324\":1,\"8354\":1,\"8370\":1,\"8396\":1,\"8580\":1,\"8645\":1,\"9047\":1,\"9066\":1,\"9201\":1,\"9238\":1,\"9403\":1,\"9409\":1,\"9873\":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(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// 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\t3524: 0\n};\n\n__webpack_require__.f.j = (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(!/^(1194|2722|4741)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((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 = (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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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((id) => (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 = globalThis[\"webpackChunk_openeo_web_editor\"] = globalThis[\"webpackChunk_openeo_web_editor\"] || [];\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, [6905,3684,2475,950,2660,4881,7900,6296,7274,1834,6337,9456,6937,7256,6964], () => (__webpack_require__(15424)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","staticClass","$config","logo","attrs","serviceName","_e","_v","_s","appName","on","showWebEditorInfo","version","staticRenderFns","name","mixins","EventBusMixin","data","Package","methods","broadcast","component","serverUrl","skipLogin","mapLocation","mapZoom","geocoder","loginMessage","snotifyDefaults","timeout","titleMaxLength","bodyMaxLength","showProgressBar","closeOnClick","pauseOnHover","supportedMapServices","supportedBatchJobSharingServices","supportedWebServiceSharingServices","supportedWizards","title","description","requiredProcesses","basemaps","url","attributions","maxZoom","importCommunityExamples","processNamespaces","oidcClientIds","showHttpWarning","dataRefreshInterval","showExperimentalByDefault","showDeprecatedByDefault","pageLimit","eventBusListeners","beforeDestroy","eventName","$root","$off","hasListener","listen","callback","unlisten","$on","$emit","arguments","ProjManager","get","Projection","_load","add","code","meta","extent","proj4","defs","register","projection","getProjection","Array","isArray","transformExtent","setExtent","includes","basemap","error","console","addFromStac","stac","Utils","isObject","properties","id","crs","match","toUpperCase","substr","Number","isInteger","String","epsg","CSV","SupportedFormat","constructor","asset","delim","super","parseData","array","parseCSV","trim","map","row","col","length","NaN","isNaN","parseFloat","str","arr","quote","c","cc","nc","Format","Object","assign","context","setContext","getContext","getUrl","href","canGroup","isBinary","download","filename","tempLink","document","createElement","style","display","setAttribute","makeFileName","type","body","appendChild","click","removeChild","loadData","connection","loaded","fetchData","getData","Error","blob","startsWith","response","fetch","auth","apiUrl","URL","requestUrl","origin","promise","Promise","resolve","reject","reader","FileReader","onload","event","target","result","onerror","readAsBinaryString","readAsText","icon","props","events","UnsupportedFormat","GDAL_MIN","GDAL_MAX","GDAL_NAME","GeoTIFF","removableLayers","_bands","_nodata","img","convertToRGB","parseMetadata","tiff","stacHasExtent","geometry","parseNodata","bands","forEach","band","i","setBandInfo","statistics","min","minimum","max","maximum","nodata","push","getBlob","tiffFromBlob","tiffFromUrl","getImage","getSamplesPerPixel","dummy","getArrayForSample","isFinite","getMinForDataType","getMaxForDataType","getGDALMetadata","getGDALNoData","geoKeys","ProjectedCSTypeGeoKey","GeographicTypeGeoKey","ProjLinearUnitsGeoKey","GeogAngularUnitsGeoKey","units","unitsFromCode","bbox","getBoundingBox","toUserExtent","warn","fileDirectory","ColorMap","from","greenOffset","blueOffset","colorMap","Math","trunc","PhotometricInterpretation","_","CMYK","YCbCr","CIELab","getNoData","getBands","getExtent","getColorMap","Int8Array","Int16Array","Int32Array","Float32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","JSON_","isGeoJson","JSON","parse","log","detectGeoJson","isTable","size","values","keys","some","equals","mathProcesses","getMathProcesses","all","filter","Process","isMathProcess","isMath","process","ProcessGraph","process_graph","mathProcessIds","p","concat","Formula","operatorMapping","arrayOperatorMapping","unsupportedFuncs","find","node","process_id","BrowserImage","Image","crossOrigin","fetchPriotity","decoding","src","NativeType","TSV","FormatRegistry","createFilesFromSTAC","resource","files","assets","roles","createFileFromAsset","file","createFilesFromBlob","Blob","stac_version","links","createObjectURL","mime","contentType","toLowerCase","extension","split","pop","serverStorage","getDefaultState","appMode","storedServers","localStorage","getItem","discoverySearchTerm","hightestModalZIndex","epsgCodes","initialProcess","initialNode","openWizard","openWizardProps","collectionPreview","viewerOptions","modelDnD","formatRegistry","namespaced","state","getters","hasProcess","getModelNodeFromDnD","rootState","rootGetters","getterFn","collectionDefaults","namespace","format","options","loading","setInterval","clearInterval","actions","loadEpsgCodes","cx","res","commit","default","loadInitialProcess","isUrl","axios","pg","extractUDPParams","dispatch","root","loadForAppMode","resultType","resultUrl","mutations","setModelDnD","obj","setDiscoverySearchTerm","searchTerm","setInitialProcess","setInitialNode","setAppMode","expires","setAppModeData","StacMigrate","Vue","getProcessingExpression","summaries","setViewerOptions","setOpenWizard","setCollectionPreview","collectionID","openModal","closeModal","addServer","indexOf","setItem","stringify","removeServer","splice","Job","Service","UserProcess","toJSON","setProcess","reset","listFn","paginateFn","createFn","updateFn","deleteFn","readFn","readFnById","customizations","primaryKey","pages","hasMore","definition","supportsList","supports","supportsCreate","supportsUpdate","supportsDelete","supportsRead","getById","x","create","parameters","apply","delete","update","updated","read","list","count","nextPage","d","hasNextPage","upsert","index","findIndex","observableData","observable","key","storeFactory","supportsQueue","supportsCancel","queue","startJob","cancel","stopJob","userProcesses","sort","sortById","use","Vuex","reverseOperatorMapping","mapping","op","activeRequests","discoveryCompleted","isAuthenticated","userInfo","connectionError","beforeLogoutListener","authProviders","fileFormats","serviceTypes","udfRuntimes","processesUpdated","collections","Config","modules","editor","jobs","services","capabilities","feature","hasFeature","currency","isConnected","isDiscovered","supportsBilling","supportsBillingPlans","listPlans","apiVersion","FileTypes","input","output","collection","spatial_extent","extentToBBox","spatial","temporal_extent","temporal","interval","processes","registry","ProcessRegistry","ProcessRegistryExtension","supportsMath","processId","has","connect","OpenEO","addNamespaceToProcess","message","providers","listAuthProviders","async","provider","discover","refresh","promises","errors","listCollections","then","catch","listProcesses","listFileTypes","listServiceTypes","listUdfRuntimes","describeAccount","describeCollection","_loaded","loadProcess","describeProcess","beforeLogout","listener","logout","disconnect","off","authProvider","getAuthProvider","completed","info","updateProcesses","addProcessNamespacesToRequest","namespaces","fillCollection","setConnectionError","authenticated","keepConnection","startActiveRequest","endActiveRequest","class","connecting","_l","modals","modal","_g","_b","tag","$event","hideModal","tourType","model","value","$$v","expression","directives","rawName","showHelp","httpsUrl","domProps","initProviders","showConnectForm","preventDefault","submitForm","modifiers","autoConnect","$forceUpdate","allowOtherServers","showServerSelector","showLoginForm","ref","providerSelected","scopedSlots","_u","fn","tab","initDiscovery","hasPredefinedOidcClientId","userOidcClientId","composing","oidcRedirectUrl","basicProvider","username","password","proxy","switchServer","show","terms","privacy","computed","mapGetters","getLinkForRel","rel","l","components","Logo","Tabs","Tab","TermsOfServiceConsent","Boolean","mapState","isLocalUrl","window","location","protocol","toString","replace","getType","defaultClient","oidcClientId","oidcProviders","watch","newVal","w","h","t","screen","availWidth","availHeight","oidcOptions","automaticSilentRenew","popupWindowFeatures","OidcProvider","redirectUrl","created","serverFromQuery","param","prompt","uiMethod","signinCallback","exception","mounted","onpopstate","evt","historyNavigate","history","replaceState","mapActions","mapMutations","hostname","initConnection","pushState","makeUrl","$refs","tabs","addProviders","addTab","getTitle","getId","$nextTick","resetActiveTab","programmatically","authType","login","offlineScope","setClientId","client","detectDefaultClient","grant_types","addListener","error_description","discoveryErrors","server","params","URLSearchParams","search","set","query","ConnectForm","IDE","AddMapDataModal","CollectionModal","DataModal","DownloadAssetsModal","ErrorModal","ExportCodeModal","ExpressionModal","FileFormatModal","ImportProcessModal","JobEstimateModal","JobInfoModal","ListModal","ParameterModal","ProcessModal","ProcessParameterModal","ServerInfoModal","ServiceInfoModal","ShareModal","Tour","UdfRuntimeModal","WebEditorModal","WizardModal","paramsForPrefix","interceptors","request","config","showError","showData","showModal","showListModal","showCollection","showProcess","showProcessParameter","setTitle","where","stopTour","newTitle","subtitle","Date","now","other","listActions","parameter","Snotify","Clipboard","prototype","$snotify","singleError","lastMessage","setTimeout","productionTip","errorHandler","err","vm","filters","app","store","Page","$mount","addEventListener","reason","stopPropagation","operatorProcesses","returns","schema","allowedTypes","ProcessSchema","nativeDataType","optional","arrayOf","datatype","ProcessDataType","items","subtype","dataType","VueUtils","Environment","saveToFile","content","getPreviewLinkFromSTAC","link","isMapServiceSupported","mapType","isActiveJobStatusCode","status","alt","buttons","text","action","toast","success","$clipboard","button","btn","typeDefaults","warning","ok","confirm","isChildOfModal","that","$parent","$options","getFileNameFromURL","substring","lastIndexOf","ext","replaceParam","paramName","paramValue","urlObj","prefix","sep","urlParams","isBboxInWebMercator","bboxes","maxBounds","south","north","hasZ","west","east","base","height","a","b","compareStringCaseInsensitive","range","start","end","newArray","defaultValue","fitArray","slice","sortByPath","getUniqueId","random","formatIdOrTitle","getResourceTitle","showType","isObj","UserFile","path","resolveJsonRefs","resolver","$ref","parts","propertyName","shift","pos","undefined","confirmOpenAll","L","e","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","n","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","mode","ns","def","current","getOwnPropertyNames","o","defineProperty","enumerable","f","chunkId","reduce","u","miniCssF","g","globalThis","Function","prop","hasOwnProperty","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","onScriptComplete","prev","clearTimeout","doneFns","parentNode","bind","head","Symbol","toStringTag","nmd","paths","children","createStylesheet","fullhref","oldTag","linkTag","nonce","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","test","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-vendors-8cbd2506.ad3b4085.js b/js/chunk-vendors-8cbd2506.ad3b4085.js new file mode 100644 index 00000000..a18ba693 --- /dev/null +++ b/js/chunk-vendors-8cbd2506.ad3b4085.js @@ -0,0 +1,6 @@ +(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[6937],{71321:(e,t,r)=>{var n=r(79139);const i="1.1.0",a={classification:"https://stac-extensions.github.io/classification/v2.0.0/schema.json",datacube:"https://stac-extensions.github.io/datacube/v2.2.0/schema.json",eo:"https://stac-extensions.github.io/eo/v2.0.0/schema.json",file:"https://stac-extensions.github.io/file/v2.1.0/schema.json","item-assets":"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json",label:"https://stac-extensions.github.io/label/v1.0.1/schema.json",pointcloud:"https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json",processing:"https://stac-extensions.github.io/processing/v1.2.0/schema.json",projection:"https://stac-extensions.github.io/projection/v2.0.0/schema.json",raster:"https://stac-extensions.github.io/raster/v2.0.0/schema.json",sar:"https://stac-extensions.github.io/sar/v1.0.0/schema.json",sat:"https://stac-extensions.github.io/sat/v1.0.0/schema.json",scientific:"https://stac-extensions.github.io/scientific/v1.0.0/schema.json",table:"https://stac-extensions.github.io/table/v1.2.0/schema.json",timestamps:"https://stac-extensions.github.io/timestamps/v1.1.0/schema.json",version:"https://stac-extensions.github.io/version/v1.2.0/schema.json",view:"https://stac-extensions.github.io/view/v1.0.0/schema.json"},o={itemAndCollection:{"classification:":a.classification,"cube:":a.datacube,"eo:":a.eo,"file:":a.file,"label:":a.label,"pc:":a.pointcloud,"processing:":a.processing,"proj:":a.projection,"raster:":a.raster,"sar:":a.sar,"sat:":a.sat,"sci:":a.scientific,"view:":a.view,version:a.version,deprecated:a.version,published:a.timestamps,expires:a.timestamps,unpublished:a.timestamps},catalog:{},collection:{},item:{}};o.collection=Object.assign(o.collection,o.itemAndCollection),o.item=Object.assign(o.item,o.itemAndCollection);var s={parseExtension(e){let t=e.match(/^https?:\/\/stac-extensions.github.io\/([^\/]+)\/v([^\/]+)\/[^.]+.json$/i);if(t)return{id:t[1],version:t[2]};let r=e.match(/(\d+\.\d+(\.\d+)([a-z_.-][\w.-]+)?)/i);return r?{id:e,version:r[1]}:e in a?{id:e,version:"0.0.0"}:void 0}},l={version:i,extensions:{},set(e){if("string"!==typeof e.stac_version?l.version="0.6.0":l.version=e.stac_version,Array.isArray(e.stac_extensions))for(let t of e.stac_extensions){let e=s.parseExtension(t);e&&(l.extensions[e.id]=e.version)}},before(e,t=null){return l.compare("<",e,t)},compare(e,t,r=null){let i=r?l.extensions[r]:l.version;return"undefined"!==typeof i&&n.compare(i,t,e)}},u={type(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(Array.isArray(e))return"array"}return t},is(e,t){return Array.isArray(t)?t.includes(u.type(e)):u.type(e)===t},isDefined(e){return"undefined"!==typeof e},isObject(e){return"object"===typeof e&&e===Object(e)&&!Array.isArray(e)},rename(e,t,r){return"undefined"!==typeof e[t]&&"undefined"===typeof e[r]&&(e[r]=e[t],delete e[t],!0)},copy(e,t,r){return"undefined"!==typeof e[t]&&"undefined"===typeof e[r]&&(e[r]=e[t],!0)},forAll(e,t,r){if(e[t]&&"object"===typeof e[t])for(let n in e[t])r(e[t][n])},toArray(e,t){return"undefined"!==typeof e[t]&&!Array.isArray(e[t])&&(e[t]=[e[t]],!0)},flattenArray(e,t,r,n=!1){if(Array.isArray(e[t])){for(let i in e[t])if("string"===typeof r[i]){let a=e[t][i];e[r[i]]=n?[a]:a}return delete e[t],!0}return!1},flattenOneElementArray(e,t,r=!1){return!(!r&&Array.isArray(e[t]))||1===e[t].length&&(e[t]=e[t][0],!0)},removeFromArray(e,t,r){if(Array.isArray(e[t])){let n=e[t].indexOf(r);return n>-1&&e[t].splice(n,1),!0}return!1},pickFirst(e,t){return Array.isArray(e[t])&&e[t].length>0?(e[t]=e[t][0],!0):(delete e[t],!1)},ensure(e,t,r){return u.type(r)!==u.type(e[t])&&(e[t]=r),!0},upgradeExtension(e,t){let{id:r,version:i}=s.parseExtension(t),a=e.stac_extensions.findIndex((e=>{let t=s.parseExtension(e);return t&&t.id===r&&n.compare(t.version,i,"<")}));return-1!==a&&(e.stac_extensions[a]=t,!0)},addExtension(e,t){let{id:r,version:i}=s.parseExtension(t),a=e.stac_extensions.findIndex((e=>{if(e===t)return!0;let a=s.parseExtension(e);return!(!a||a.id!==r||!n.compare(a.version,i,"<"))}));return-1===a?e.stac_extensions.push(t):e.stac_extensions[a]=t,e.stac_extensions.sort(),!0},removeExtension(e,t){return u.removeFromArray(e,"stac_extensions",t)},migrateExtensionShortnames(e){let t=Object.keys(a),r=Object.values(a);return u.mapValues(e,"stac_extensions",t,r)},populateExtensions(e,t){let r,n=[];"catalog"!=t&&"collection"!=t||n.push(e),"item"!=t&&"collection"!=t||!u.isObject(e.assets)||(n=n.concat(Object.values(e.assets))),"collection"==t&&u.isObject(e.item_assets)&&(n=n.concat(Object.values(e.item_assets))),"collection"==t&&u.isObject(e.summaries)&&n.push(e.summaries),"item"==t&&u.isObject(e.properties)&&n.push(e.properties),n.push(e.links);while(r=n.pop())Object.keys(r).forEach((i=>{Array.isArray(r.bands)&&(n=n.concat(r.bands));let a=i.match(/^(\w+:|[^:]+$)/i);if(Array.isArray(a)){let r=o[t][a[0]];u.is(r,"string")&&u.addExtension(e,r)}}))},mapValues(e,t,r,n){let i=e=>{let t=r.indexOf(e);return t>=0?n[t]:e};return Array.isArray(e[t])?e[t]=e[t].map(i):"undefined"!==typeof e[t]&&(e[t]=i(e[t])),!0},mapObject(e,t){for(let r in e)e[r]=t(e[r],r)},moveTo(e,t,r,n=!1,i=!1){let a;return a=n?i?e=>Array.isArray(e):e=>Array.isArray(e)&&1===e.length:u.isDefined,!!a(e[t])&&(r[t]=n&&!i?e[t][0]:e[t],delete e[t],!0)},runAll(e,t,r,n){for(let i in e)i.startsWith("migrate")||e[i](t,r,n)},toUTC(e,t){if(u.is(e[t],"string"))try{return e[t]=this.toISOString(e[t]),!0}catch(r){}return delete e[t],!1},toISOString(e){return e instanceof Date||(e=new Date(e)),e.toISOString().replace(/\.0+/,"")},formatString(e,t,r){const n=e=>u.is(e,["string","number"])?r.replaceAll("{}",e):e;Array.isArray(e[t])?e[t]=e[t].map(n):e[t]=n(e[t])}},h={multihash:null,hexToUint8(e){if(0===e.length||e.length%2!==0)throw new Error(`The string "${e}" is not valid hex.`);return new Uint8Array(e.match(/.{1,2}/g).map((e=>parseInt(e,16))))},uint8ToHex(e){return e.reduce(((e,t)=>e+t.toString(16).padStart(2,"0")),"")},toMultihash(e,t,r){if(!h.multihash||!u.is(e[t],"string"))return!1;try{const n=h.multihash.encode(h.hexToUint8(e[t]),r);return e[t]=h.uint8ToHex(n),!0}catch(n){return console.warn(n),!1}}},c={migrate(e,t=!0){return l.set(e),t&&(e.stac_version=i),e.type="Catalog",u.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&u.migrateExtensionShortnames(e),u.ensure(e,"id",""),u.ensure(e,"description",""),u.ensure(e,"links",[]),u.runAll(c,e,e),l.before("0.8.0")&&u.populateExtensions(e,"catalog"),e}},f={migrate(e,t=!0){return c.migrate(e,t),e.type="Collection",l.before("1.0.0-rc.1")&&u.migrateExtensionShortnames(e),u.ensure(e,"license","other"),u.ensure(e,"extent",{spatial:{bbox:[]},temporal:{interval:[]}}),u.runAll(f,e,e),u.isObject(e.properties)&&(u.removeFromArray(e,"stac_extensions","commons"),delete e.properties),l.before("0.8.0")&&u.populateExtensions(e,"collection"),l.before("1.0.0-beta.1")&&u.mapValues(e,"stac_extensions",["assets"],["item-assets"]),e},extent(e){if(u.ensure(e,"extent",{}),l.before("0.8.0")&&(Array.isArray(e.extent.spatial)&&(e.extent.spatial={bbox:[e.extent.spatial]}),Array.isArray(e.extent.temporal)&&(e.extent.temporal={interval:[e.extent.temporal]})),u.ensure(e.extent,"spatial",{}),u.ensure(e.extent.spatial,"bbox",[]),u.ensure(e.extent,"temporal",{}),u.ensure(e.extent.temporal,"interval",[]),l.before("1.0.0-rc.3")){if(e.extent.temporal.interval.length>1){let r,n;for(let i of e.extent.temporal.interval){if(null===i[0])r=null;else if("string"===typeof i[0]&&null!==r)try{let e=new Date(i[0]);("undefined"===typeof r||en)&&(n=e)}catch(t){}}e.extent.temporal.interval.unshift([r?u.toISOString(r):null,n?u.toISOString(n):null])}if(e.extent.spatial.bbox.length>1){let t=e.extent.spatial.bbox.reduce(((e,t)=>Array.isArray(t)?Math.max(t.length,e):e),4);if(t>=4){let r=new Array(t).fill(null),n=t/2;for(let t of e.extent.spatial.bbox){if(!Array.isArray(t)||t.length<4)break;for(let e in t){let i=t[e];null===r[e]?r[e]=i:r[e]=enull===e))&&e.extent.spatial.bbox.unshift(r)}}}},collectionAssets(e){l.before("1.0.0-rc.1")&&u.removeExtension(e,"collection-assets"),g.migrateAll(e)},itemAsset(e){l.before("1.0.0-beta.2")&&u.rename(e,"item_assets","assets"),u.removeExtension(e,a["item-assets"]),g.migrateAll(e,"item_assets")},summaries(e){if(u.ensure(e,"summaries",{}),l.before("0.8.0")&&u.isObject(e.other_properties)){for(let t in e.other_properties){let r=e.other_properties[t];Array.isArray(r.extent)&&2===r.extent.length?e.summaries[t]={minimum:r.extent[0],maximum:r.extent[1]}:Array.isArray(r.values)&&(r.values.filter((e=>Array.isArray(e))).length===r.values.length?e.summaries[t]=r.values.reduce(((e,t)=>e.concat(t)),[]):e.summaries[t]=r.values)}delete e.other_properties}if(l.before("1.0.0-beta.1")&&u.isObject(e.properties)&&!e.links.find((e=>["child","item"].includes(e.rel))))for(let t in e.properties){let r=e.properties[t];Array.isArray(r)||(r=[r]),e.summaries[t]=r}l.before("1.0.0-rc.1")&&u.mapObject(e.summaries,(e=>(u.rename(e,"min","minimum"),u.rename(e,"max","maximum"),e))),v.migrate(e.summaries,e,!0),u.moveTo(e.summaries,"sci:doi",e,!0)&&u.addExtension(e,a.scientific),u.moveTo(e.summaries,"sci:publications",e,!0,!0)&&u.addExtension(e,a.scientific),u.moveTo(e.summaries,"sci:citation",e,!0)&&u.addExtension(e,a.scientific),u.moveTo(e.summaries,"cube:dimensions",e,!0)&&u.addExtension(e,a.datacube),0===Object.keys(e.summaries).length&&delete e.summaries}},d={migrate(e,t=null,r=!0){l.set(e),r&&(e.stac_version=i),u.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&u.migrateExtensionShortnames(e),u.ensure(e,"id",""),u.ensure(e,"type","Feature"),u.isObject(e.geometry)||(e.geometry=null),null!==e.geometry&&u.ensure(e,"bbox",[]),u.ensure(e,"properties",{}),u.ensure(e,"links",[]),u.ensure(e,"assets",{});let n=!1;return u.isObject(t)&&u.isObject(t.properties)&&(u.removeFromArray(e,"stac_extensions","commons"),e.properties=Object.assign({},t.properties,e.properties),n=!0),u.runAll(d,e,e),v.migrate(e.properties,e),g.migrateAll(e),(l.before("0.8.0")||n)&&u.populateExtensions(e,"item"),e}},p={migrate(e,t=!0){return u.ensure(e,"collections",[]),u.ensure(e,"links",[]),u.runAll(p,e,e),e.collections=e.collections.map((e=>f.migrate(e,t))),e}},m={migrate(e,t=!0){return u.ensure(e,"type","FeatureCollection"),u.ensure(e,"features",[]),u.ensure(e,"links",[]),u.runAll(m,e,e),e.features=e.features.map((e=>d.migrate(e,null,t))),e}},g={migrateAll(e,t="assets"){for(let r in e[t])g.migrate(e[t][r],e)},migrate(e,t){return u.runAll(g,e,t),v.migrate(e,t),e},mediaTypes(e){u.is(e.type,"string")&&u.mapValues(e,"type",["image/vnd.stac.geotiff","image/vnd.stac.geotiff; cloud-optimized=true"],["image/tiff; application=geotiff","image/tiff; application=geotiff; profile=cloud-optimized"])}},b={migrateAll(e,t){if(l.before("1.0.0")){const r=u.isObject(t.properties)&&Array.isArray(t.properties.bands)?t.properties.bands:[];if(Array.isArray(e["eo:bands"]))for(let t in e["eo:bands"]){let n=e["eo:bands"][t];u.is(n,"number")&&u.isObject(r[n])&&(n=r[n]),u.isObject(n)||(n={}),e["eo:bands"][t]=n}}if(l.before("1.1.0-beta.1")&&(Array.isArray(e["raster:bands"])||Array.isArray(e["eo:bands"]))){u.ensure(e,"bands",[]);const r=e["raster:bands"]||[],n=e["eo:bands"]||[],i=Math.max(r.length,n.length);for(let a=0;au.rename(e,"color-hint","color_hint"))),l.before("2.0.0","classification")&&u.forAll(e,"classification:classes",(e=>u.ensure(e,"name",e.description))),u.upgradeExtension(t,a.classification)},cube(e,t){u.upgradeExtension(t,a.datacube)},dtr(e,t){l.before("0.9.0")&&(u.rename(e,"dtr:start_datetime","start_datetime"),u.rename(e,"dtr:end_datetime","end_datetime"),u.removeExtension(t,"datetime-range"))},eo(e,t){l.before("0.9.0")&&(u.rename(e,"eo:epsg","proj:epsg")&&u.addExtension(t,a.projection),u.rename(e,"eo:platform","platform"),u.rename(e,"eo:instrument","instruments")&&u.toArray(e,"instruments"),u.rename(e,"eo:constellation","constellation"),u.rename(e,"eo:off_nadir","view:off_nadir")&&u.addExtension(t,a.view),u.rename(e,"eo:azimuth","view:azimuth")&&u.addExtension(t,a.view),u.rename(e,"eo:incidence_angle","view:incidence_angle")&&u.addExtension(t,a.view),u.rename(e,"eo:sun_azimuth","view:sun_azimuth")&&u.addExtension(t,a.view),u.rename(e,"eo:sun_elevation","view:sun_elevation")&&u.addExtension(t,a.view)),l.before("1.0.0-beta.1")&&u.rename(e,"eo:gsd","gsd"),u.upgradeExtension(t,a.eo)},file(e,t,r){u.rename(e,"file:bits_per_sample","raster:bits_per_sample")&&u.addExtension(t,a.raster),u.rename(e,"file:data_type","data_type"),u.rename(e,"file:unit","unit"),Array.isArray(e["file:nodata"])&&e["file:nodata"].length>1&&u.copy(e,"file:nodata","nodata:values"),u.rename(e,"file:nodata","nodata")&&!r&&u.pickFirst(e,"nodata"),u.upgradeExtension(t,a.file)},label(e,t){l.before("0.8.0")&&(u.rename(e,"label:property","label:properties"),u.rename(e,"label:task","label:tasks"),u.rename(e,"label:overview","label:overviews")&&u.toArray(e,"label:overviews"),u.rename(e,"label:method","label:methods"),u.toArray(e,"label:classes")),u.upgradeExtension(t,a.label)},pc(e,t){l.before("0.8.0")&&u.rename(e,"pc:schema","pc:schemas"),u.upgradeExtension(t,a.pointcloud)},processing(e,t){u.upgradeExtension(t,a.processing)},proj(e,t){u.rename(e,"proj:epsg","proj:code")&&u.formatString(e,"proj:code","EPSG:{}"),u.upgradeExtension(t,a.projection)},raster(e,t){u.upgradeExtension(t,a.raster)},sar(e,t,r){u.rename(e,"sar:incidence_angle","view:incidence_angle")&&u.addExtension(t,a.view),u.rename(e,"sar:pass_direction","sat:orbit_state")&&u.mapValues(e,"sat:orbit_state",[null],["geostationary"])&&u.addExtension(t,a.sat),l.before("0.7.0")&&(u.flattenArray(e,"sar:resolution",["sar:resolution_range","sar:resolution_azimuth"],r),u.flattenArray(e,"sar:pixel_spacing",["sar:pixel_spacing_range","sar:pixel_spacing_azimuth"],r),u.flattenArray(e,"sar:looks",["sar:looks_range","sar:looks_azimuth","sar:looks_equivalent_number"],r),u.rename(e,"sar:off_nadir","view:off_nadir")&&u.addExtension(t,a.view)),l.before("0.9.0")&&(u.rename(e,"sar:platform","platform"),u.rename(e,"sar:instrument","instruments")&&u.toArray(e,"instruments"),u.rename(e,"sar:constellation","constellation"),u.rename(e,"sar:type","sar:product_type"),u.rename(e,"sar:polarization","sar:polarizations"),u.flattenOneElementArray(e,"sar:absolute_orbit",r)&&u.rename(e,"sar:absolute_orbit","sat:absolute_orbit")&&u.addExtension(t,a.sat),u.flattenOneElementArray(e,"sar:relative_orbit",r)&&u.rename(e,"sar:relative_orbit","sat:relative_orbit")&&u.addExtension(t,a.sat)),u.upgradeExtension(t,a.sar)},sat(e,t){l.before("0.9.0")&&(u.rename(e,"sat:off_nadir_angle","sat:off_nadir"),u.rename(e,"sat:azimuth_angle","sat:azimuth"),u.rename(e,"sat:sun_azimuth_angle","sat:sun_azimuth"),u.rename(e,"sat:sun_elevation_angle","sat:sun_elevation")),u.upgradeExtension(t,a.sat)},sci(e,t){u.upgradeExtension(t,a.scientific)},item(e){l.before("0.8.0")&&(u.rename(e,"item:license","license"),u.rename(e,"item:providers","providers"))},table(e,t){u.upgradeExtension(t,a.table)},view(e,t){u.upgradeExtension(t,a.view)}},y={item(e,t=null,r=!0){return d.migrate(e,t,r)},catalog(e,t=!0){return c.migrate(e,t)},collection(e,t=!0){return f.migrate(e,t)},collectionCollection(e,t=!0){return p.migrate(e,t)},itemCollection(e,t=!0){return m.migrate(e,t)},stac(e,t=!0){return"Feature"===e.type?y.item(e,null,t):"FeatureCollection"===e.type?y.itemCollection(e,t):"Collection"===e.type||!e.type&&u.isDefined(e.extent)&&u.isDefined(e.license)?y.collection(e,t):!e.type&&Array.isArray(e.collections)?y.collectionCollection(e,t):y.catalog(e,t)},enableMultihash(e){h.multihash=e}};e.exports=y},79139:function(e,t){var r,n,i;(function(a,o){n=[],r=o,i="function"===typeof r?r.apply(t,n):r,void 0===i||(e.exports=i)})(0,(function(){var e=/^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;function t(e,t){return-1===e.indexOf(t)?e.length:e.indexOf(t)}function r(e){var r=e.replace(/^v/,"").replace(/\+.*$/,""),n=t(r,"-"),i=r.substring(0,n).split(".");return i.push(r.substring(n+1)),i}function n(e){return isNaN(Number(e))?e:Number(e)}function i(t){if("string"!==typeof t)throw new TypeError("Invalid argument expected string");if(!e.test(t))throw new Error("Invalid argument not valid semver ('"+t+"' received)")}function a(e,t){[e,t].forEach(i);for(var a=r(e),o=r(t),s=0;su)return 1;if(u>l)return-1}var h=a[a.length-1],c=o[o.length-1];if(h&&c){var f=h.split(".").map(n),d=c.split(".").map(n);for(s=0;sd[s])return 1;if(d[s]>f[s])return-1}}else if(h||c)return h?-1:1;return 0}var o=[">",">=","=","<","<="],s={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};function l(e){if("string"!==typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===o.indexOf(e))throw new TypeError("Invalid operator, expected one of "+o.join("|"))}return a.validate=function(t){return"string"===typeof t&&e.test(t)},a.compare=function(e,t,r){l(r);var n=a(e,t);return s[r].indexOf(n)>-1},a}))},86048:e=>{"use strict";function t(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var r={};function n(e,n,i){function a(e,t,r){return"string"===typeof n?n:n(e,t,r)}i||(i=Error);var o=function(e){function r(t,r,n){return e.call(this,a(t,r,n))||this}return t(r,e),r}(i);o.prototype.name=i.name,o.prototype.code=e,r[e]=o}function i(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}function a(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function o(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function s(e,t,r){return"number"!==typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,r){var n,l;if("string"===typeof t&&a(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be",o(e," argument"))l="The ".concat(e," ").concat(n," ").concat(i(t,"type"));else{var u=s(e,".")?"property":"argument";l='The "'.concat(e,'" ').concat(u," ").concat(n," ").concat(i(t,"type"))}return l+=". Received type ".concat(typeof r),l}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.F=r},25382:(e,t,r)=>{"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=u;var i=r(45412),a=r(16708);r(56698)(u,i);for(var o=n(a.prototype),s=0;s{"use strict";e.exports=i;var n=r(74610);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(56698)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},45412:(e,t,r)=>{"use strict";var n;e.exports=O,O.ReadableState=C;r(37007).EventEmitter;var i=function(e,t){return e.listeners(t).length},a=r(40345),o=r(48287).Buffer,s=("undefined"!==typeof r.g?r.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function l(e){return o.from(e)}function u(e){return o.isBuffer(e)||e instanceof s}var h,c=r(79838);h=c&&c.debuglog?c.debuglog("stream"):function(){};var f,d,p,m=r(80345),g=r(75896),b=r(65291),v=b.getHighWaterMark,y=r(86048).F,w=y.ERR_INVALID_ARG_TYPE,_=y.ERR_STREAM_PUSH_AFTER_EOF,E=y.ERR_METHOD_NOT_IMPLEMENTED,S=y.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(56698)(O,a);var x=g.errorOrDestroy,A=["error","close","destroy","pause","resume"];function R(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}function C(e,t,i){n=n||r(25382),e=e||{},"boolean"!==typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=v(this,e,"readableHighWaterMark",i),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=r(83141).I),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function O(e){if(n=n||r(25382),!(this instanceof O))return new O(e);var t=this instanceof n;this._readableState=new C(e,this,t),this.readable=!0,e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function T(e,t,r,n,i){h("readableAddChunk",t);var a,s=e._readableState;if(null===t)s.reading=!1,P(e,s);else if(i||(a=k(s,t)),a)x(e,a);else if(s.objectMode||t&&t.length>0)if("string"===typeof t||s.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=l(t)),n)s.endEmitted?x(e,new S):j(e,s,t,!0);else if(s.ended)x(e,new _);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||0!==t.length?j(e,s,t,!1):F(e,s)):j(e,s,t,!1)}else n||(s.reading=!1,F(e,s));return!s.ended&&(s.length=M?e=M:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function N(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=D(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function P(e,t){if(h("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?I(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,L(e)))}}function I(e){var t=e._readableState;h("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(L,e))}function L(e){var t=e._readableState;h("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,V(e)}function F(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(q,e,t))}function q(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function W(e){h("readable nexttick read 0"),e.read(0)}function z(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(B,e,t))}function B(e,t){h("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),V(e),t.flowing&&!t.reading&&e.read(0)}function V(e){var t=e._readableState;h("flow",t.flowing);while(t.flowing&&null!==e.read());}function $(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function G(e){var t=e._readableState;h("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(Y,t,e))}function Y(e,t){if(h("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function Z(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?G(this):I(this),null;if(e=N(e,t),0===e&&t.ended)return 0===t.length&&G(this),null;var n,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?$(e,t):null,null===n?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&G(this)),null!==n&&this.emit("data",n),n},O.prototype._read=function(e){x(this,new E("_read()"))},O.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,h("pipe count=%d opts=%j",n.pipesCount,t);var a=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr,o=a?l:b;function s(e,t){h("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,f())}function l(){h("onend"),e.end()}n.endEmitted?process.nextTick(o):r.once("end",o),e.on("unpipe",s);var u=U(r);e.on("drain",u);var c=!1;function f(){h("cleanup"),e.removeListener("close",m),e.removeListener("finish",g),e.removeListener("drain",u),e.removeListener("error",p),e.removeListener("unpipe",s),r.removeListener("end",l),r.removeListener("end",b),r.removeListener("data",d),c=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||u()}function d(t){h("ondata");var i=e.write(t);h("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==Z(n.pipes,e))&&!c&&(h("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function p(t){h("onerror",t),b(),e.removeListener("error",p),0===i(e,"error")&&x(e,t)}function m(){e.removeListener("finish",g),b()}function g(){h("onfinish"),e.removeListener("close",m),b()}function b(){h("unpipe"),r.unpipe(e)}return r.on("data",d),R(e,"error",p),e.once("close",m),e.once("finish",g),e.emit("pipe",r),n.flowing||(h("pipe resume"),r.resume()),e},O.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,h("on readable",n.length,n.reading),n.length?I(this):n.reading||process.nextTick(W,this))),r},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(e,t){var r=a.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(H,this),r},O.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(H,this),t},O.prototype.resume=function(){var e=this._readableState;return e.flowing||(h("resume"),e.flowing=!e.readableListening,z(this,e)),e.paused=!1,this},O.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},O.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(h("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){if(h("wrapped data"),r.decoder&&(i=r.decoder.write(i)),(!r.objectMode||null!==i&&void 0!==i)&&(r.objectMode||i&&i.length)){var a=t.push(i);a||(n=!0,e.pause())}})),e)void 0===this[i]&&"function"===typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a{"use strict";e.exports=h;var n=r(86048).F,i=n.ERR_METHOD_NOT_IMPLEMENTED,a=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,l=r(25382);function u(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new a);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){B(t,e)}}var i;e.exports=C,C.WritableState=R;var a={deprecate:r(94643)},o=r(40345),s=r(48287).Buffer,l=("undefined"!==typeof r.g?r.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function u(e){return s.from(e)}function h(e){return s.isBuffer(e)||e instanceof l}var c,f=r(75896),d=r(65291),p=d.getHighWaterMark,m=r(86048).F,g=m.ERR_INVALID_ARG_TYPE,b=m.ERR_METHOD_NOT_IMPLEMENTED,v=m.ERR_MULTIPLE_CALLBACK,y=m.ERR_STREAM_CANNOT_PIPE,w=m.ERR_STREAM_DESTROYED,_=m.ERR_STREAM_NULL_VALUES,E=m.ERR_STREAM_WRITE_AFTER_END,S=m.ERR_UNKNOWN_ENCODING,x=f.errorOrDestroy;function A(){}function R(e,t,a){i=i||r(25382),e=e||{},"boolean"!==typeof a&&(a=t instanceof i),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=p(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){P(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function C(e){i=i||r(25382);var t=this instanceof i;if(!t&&!c.call(C,this))return new C(e);this._writableState=new R(e,this,t),this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.final&&(this._final=e.final)),o.call(this)}function O(e,t){var r=new E;x(e,r),process.nextTick(t,r)}function T(e,t,r,n){var i;return null===r?i=new _:"string"===typeof r||t.objectMode||(i=new g("chunk",["string","Buffer"],r)),!i||(x(e,i),process.nextTick(n,i),!1)}function j(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=s.from(t,r)),t}function k(e,t,r,n,i,a){if(!r){var o=j(t,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length-1))throw new S(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(C.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(C.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),C.prototype._write=function(e,t,r){r(new b("_write()"))},C.prototype._writev=null,C.prototype.end=function(e,t,r){var n=this._writableState;return"function"===typeof e?(r=e,e=null,t=null):"function"===typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||z(this,n,r),this},Object.defineProperty(C.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(C.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),C.prototype.destroy=f.destroy,C.prototype._undestroy=f.undestroy,C.prototype._destroy=function(e,t){t(e)}},2955:(e,t,r)=>{"use strict";var n;function i(e,t,r){return t=a(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){var t=o(e,"string");return"symbol"===typeof t?t:String(t)}function o(e,t){if("object"!==typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var s=r(86238),l=Symbol("lastResolve"),u=Symbol("lastReject"),h=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),d=Symbol("handlePromise"),p=Symbol("stream");function m(e,t){return{value:e,done:t}}function g(e){var t=e[l];if(null!==t){var r=e[p].read();null!==r&&(e[f]=null,e[l]=null,e[u]=null,t(m(r,!1)))}}function b(e){process.nextTick(g,e)}function v(e,t){return function(r,n){e.then((function(){t[c]?r(m(void 0,!0)):t[d](r,n)}),n)}}var y=Object.getPrototypeOf((function(){})),w=Object.setPrototypeOf((n={get stream(){return this[p]},next:function(){var e=this,t=this[h];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(m(void 0,!0));if(this[p].destroyed)return new Promise((function(t,r){process.nextTick((function(){e[h]?r(e[h]):t(m(void 0,!0))}))}));var r,n=this[f];if(n)r=new Promise(v(n,this));else{var i=this[p].read();if(null!==i)return Promise.resolve(m(i,!1));r=new Promise(this[d])}return this[f]=r,r}},i(n,Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[p].destroy(null,(function(e){e?r(e):t(m(void 0,!0))}))}))})),n),y),_=function(e){var t,r=Object.create(w,(t={},i(t,p,{value:e,writable:!0}),i(t,l,{value:null,writable:!0}),i(t,u,{value:null,writable:!0}),i(t,h,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,d,{value:function(e,t){var n=r[p].read();n?(r[f]=null,r[l]=null,r[u]=null,e(m(n,!1))):(r[l]=e,r[u]=t)},writable:!0}),t));return r[f]=null,s(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[u];return null!==t&&(r[f]=null,r[l]=null,r[u]=null,t(e)),void(r[h]=e)}var n=r[l];null!==n&&(r[f]=null,r[l]=null,r[u]=null,n(m(void 0,!0))),r[c]=!0})),e.on("readable",b.bind(null,r)),r};e.exports=_},80345:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";var t=this.head,r=""+t.data;while(t=t.next)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return f.alloc(0);var t=f.allocUnsafe(e>>>0),r=this.head,n=0;while(r)g(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(a===i.length?n+=i:n+=i.slice(0,e),e-=a,0===e){a===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=f.allocUnsafe(e),r=this.head,n=1;r.data.copy(t),e-=r.data.length;while(r=r.next){var i=r.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),e-=a,0===e){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,t}},{key:m,value:function(e,t){return p(this,i(i({},t),{},{depth:0,customInspect:!1}))}}]),e}()},75896:e=>{"use strict";function t(e,t){var i=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(a,this,e)):process.nextTick(a,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?i._writableState?i._writableState.errorEmitted?process.nextTick(n,i):(i._writableState.errorEmitted=!0,process.nextTick(r,i,e)):process.nextTick(r,i,e):t?(process.nextTick(n,i),t(e)):process.nextTick(n,i)})),this)}function r(e,t){a(e,t),n(e)}function n(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(e,t){e.emit("error",t)}function o(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}e.exports={destroy:t,undestroy:i,errorOrDestroy:o}},86238:(e,t,r)=>{"use strict";var n=r(86048).F.ERR_STREAM_PREMATURE_CLOSE;function i(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},57758:(e,t,r)=>{"use strict";var n;function i(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var a=r(86048).F,o=a.ERR_MISSING_ARGS,s=a.ERR_STREAM_DESTROYED;function l(e){if(e)throw e}function u(e){return e.setHeader&&"function"===typeof e.abort}function h(e,t,a,o){o=i(o);var l=!1;e.on("close",(function(){l=!0})),void 0===n&&(n=r(86238)),n(e,{readable:t,writable:a},(function(e){if(e)return o(e);l=!0,o()}));var h=!1;return function(t){if(!l&&!h)return h=!0,u(e)?e.abort():"function"===typeof e.destroy?e.destroy():void o(t||new s("pipe"))}}function c(e){e()}function f(e,t){return e.pipe(t)}function d(e){return e.length?"function"!==typeof e[e.length-1]?l:e.pop():l}function p(){for(var e=arguments.length,t=new Array(e),r=0;r0;return h(e,o,s,(function(e){n||(n=e),e&&a.forEach(c),o||(a.forEach(c),i(n))}))}));return t.reduce(f)}e.exports=p},65291:(e,t,r)=>{"use strict";var n=r(86048).F.ERR_INVALID_OPT_VALUE;function i(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}function a(e,t,r,a){var o=i(t,a,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0){var s=a?r:"highWaterMark";throw new n(s,o)}return Math.floor(o)}return e.objectMode?16:16384}e.exports={getHighWaterMark:a}},40345:(e,t,r)=>{e.exports=r(37007).EventEmitter},92861:(e,t,r)=>{ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +var n=r(48287),i=n.Buffer;function a(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(a(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,r){if("number"===typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!==typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"===typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},14803:(e,t,r)=>{"use strict";var n=r(58859),i=r(69675),a=function(e,t,r){for(var n,i=e;null!=(n=i.next);i=n)if(n.key===t)return i.next=n.next,r||(n.next=e.next,e.next=n),n},o=function(e,t){if(e){var r=a(e,t);return r&&r.value}},s=function(e,t,r){var n=a(e,t);n?n.value=r:e.next={key:t,next:e.next,value:r}},l=function(e,t){return!!e&&!!a(e,t)},u=function(e,t){if(e)return a(e,t,!0)};e.exports=function(){var e,t={assert:function(e){if(!t.has(e))throw new i("Side channel does not contain "+n(e))},delete:function(t){var r=e&&e.next,n=u(e,t);return n&&r&&r===n&&(e=void 0),!!n},get:function(t){return o(e,t)},has:function(t){return l(e,t)},set:function(t,r){e||(e={next:void 0}),s(e,t,r)}};return t}},80507:(e,t,r)=>{"use strict";var n=r(70453),i=r(36556),a=r(58859),o=r(69675),s=n("%Map%",!0),l=i("Map.prototype.get",!0),u=i("Map.prototype.set",!0),h=i("Map.prototype.has",!0),c=i("Map.prototype.delete",!0),f=i("Map.prototype.size",!0);e.exports=!!s&&function(){var e,t={assert:function(e){if(!t.has(e))throw new o("Side channel does not contain "+a(e))},delete:function(t){if(e){var r=c(e,t);return 0===f(e)&&(e=void 0),r}return!1},get:function(t){if(e)return l(e,t)},has:function(t){return!!e&&h(e,t)},set:function(t,r){e||(e=new s),u(e,t,r)}};return t}},72271:(e,t,r)=>{"use strict";var n=r(70453),i=r(36556),a=r(58859),o=r(80507),s=r(69675),l=n("%WeakMap%",!0),u=i("WeakMap.prototype.get",!0),h=i("WeakMap.prototype.set",!0),c=i("WeakMap.prototype.has",!0),f=i("WeakMap.prototype.delete",!0);e.exports=l?function(){var e,t,r={assert:function(e){if(!r.has(e))throw new s("Side channel does not contain "+a(e))},delete:function(r){if(l&&r&&("object"===typeof r||"function"===typeof r)){if(e)return f(e,r)}else if(o&&t)return t["delete"](r);return!1},get:function(r){return l&&r&&("object"===typeof r||"function"===typeof r)&&e?u(e,r):t&&t.get(r)},has:function(r){return l&&r&&("object"===typeof r||"function"===typeof r)&&e?c(e,r):!!t&&t.has(r)},set:function(r,n){l&&r&&("object"===typeof r||"function"===typeof r)?(e||(e=new l),h(e,r,n)):o&&(t||(t=o()),t.set(r,n))}};return r}:o},920:(e,t,r)=>{"use strict";var n=r(69675),i=r(58859),a=r(14803),o=r(80507),s=r(72271),l=s||o||a;e.exports=function(){var e,t={assert:function(e){if(!t.has(e))throw new n("Side channel does not contain "+i(e))},delete:function(t){return!!e&&e["delete"](t)},get:function(t){return e&&e.get(t)},has:function(t){return!!e&&e.has(t)},set:function(t,r){e||(e=l()),e.set(t,r)}};return t}},88310:(e,t,r)=>{e.exports=a;var n=r(37007).EventEmitter,i=r(56698);function a(){n.call(this)}i(a,n),a.Readable=r(45412),a.Writable=r(16708),a.Duplex=r(25382),a.Transform=r(74610),a.PassThrough=r(63600),a.finished=r(86238),a.pipeline=r(57758),a.Stream=a,a.prototype.pipe=function(e,t){var r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function a(){r.readable&&r.resume&&r.resume()}r.on("data",i),e.on("drain",a),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",l));var o=!1;function s(){o||(o=!0,e.end())}function l(){o||(o=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){if(h(),0===n.listenerCount(this,"error"))throw e}function h(){r.removeListener("data",i),e.removeListener("drain",a),r.removeListener("end",s),r.removeListener("close",l),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",h),r.removeListener("close",h),e.removeListener("close",h)}return r.on("error",u),e.on("error",u),r.on("end",h),r.on("close",h),e.on("close",h),e.emit("pipe",r),e}},83141:(e,t,r)=>{"use strict";var n=r(92861).Buffer,i=n.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){if(!e)return"utf8";var t;while(1)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function o(e){var t=a(e);if("string"!==typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}function s(e){var t;switch(this.encoding=o(e),this.encoding){case"utf16le":this.text=p,this.end=m,t=4;break;case"utf8":this.fillLast=c,t=4;break;case"base64":this.text=g,this.end=b,t=3;break;default:return this.write=v,void(this.end=y)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function l(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function u(e,t,r){var n=t.length-1;if(n=0?(i>0&&(e.lastNeed=i-1),i):--n=0?(i>0&&(e.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function h(e,t,r){if(128!==(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�"}}function c(e){var t=this.lastTotal-this.lastNeed,r=h(this,e,t);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function f(e,t){var r=u(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function p(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function m(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function g(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function b(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}t.I=s,s.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=d-p,R=Math.floor,C=String.fromCharCode;function O(e){throw new RangeError(x[e])}function T(e,t){var r=[],n=e.length;while(n--)r[n]=t(e[n]);return r}function j(e,t){var r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(S,".");var i=e.split("."),a=T(i,t).join(".");return n+a}function k(e){var t=[],r=0,n=e.length;while(r=55296&&i<=56319&&r>1,e+=R(e/t);e>A*m>>1;n+=d)e=R(e/A);return R(n+(A+1)*e/(e+g))},I=function(e){var t=[],r=e.length,n=0,i=y,a=v,o=e.lastIndexOf(w);o<0&&(o=0);for(var s=0;s=128&&O("not-basic"),t.push(e.charCodeAt(s));for(var l=o>0?o+1:0;l=r&&O("invalid-input");var g=D(e.charCodeAt(l++));(g>=d||g>R((f-n)/h))&&O("overflow"),n+=g*h;var b=c<=a?p:c>=a+m?m:c-a;if(gR(f/_)&&O("overflow"),h*=_}var E=t.length+1;a=P(n-u,E,0==u),R(n/E)>f-i&&O("overflow"),i+=R(n/E),n%=E,t.splice(n++,0,i)}return String.fromCodePoint.apply(String,t)},L=function(e){var t=[];e=k(e);var r=e.length,n=y,i=0,a=v,o=!0,s=!1,l=void 0;try{for(var u,h=e[Symbol.iterator]();!(o=(u=h.next()).done);o=!0){var c=u.value;c<128&&t.push(C(c))}}catch($){s=!0,l=$}finally{try{!o&&h.return&&h.return()}finally{if(s)throw l}}var g=t.length,b=g;g&&t.push(w);while(b=n&&j<_&&(_=j)}}catch($){S=!0,x=$}finally{try{!E&&T.return&&T.return()}finally{if(S)throw x}}var M=b+1;_-n>R((f-i)/M)&&O("overflow"),i+=(_-n)*M,n=_;var D=!0,I=!1,L=void 0;try{for(var F,q=e[Symbol.iterator]();!(D=(F=q.next()).done);D=!0){var U=F.value;if(Uf&&O("overflow"),U==n){for(var H=i,W=d;;W+=d){var z=W<=a?p:W>=a+m?m:W-a;if(H>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase(),r}function z(e){var t="",r=0,n=e.length;while(r=194&&i<224){if(n-r>=6){var a=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&i)<<6|63&a)}else t+=e.substr(r,6);r+=6}else if(i>=224){if(n-r>=9){var o=parseInt(e.substr(r+4,2),16),s=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function B(e,t){function r(e){var r=z(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,W).replace(t.PCT_ENCODED,i)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,W).replace(t.PCT_ENCODED,i)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,W).replace(t.PCT_ENCODED,i)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,W).replace(t.PCT_ENCODED,i)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,W).replace(t.PCT_ENCODED,i)),e}function V(e){return e.replace(/^0*(.*)/,"$1")||"0"}function $(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=h(r,2),i=n[1];return i?i.split(".").map(V).join("."):e}function G(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=h(r,3),i=n[1],a=n[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),s=h(o,2),l=s[0],u=s[1],c=u?u.split(":").map(V):[],f=l.split(":").map(V),d=t.IPV4ADDRESS.test(f[f.length-1]),p=d?7:8,m=f.length-p,g=Array(p),b=0;b1){var _=g.slice(0,y.index),E=g.slice(y.index+y.length);w=_.join(":")+"::"+E.join(":")}else w=g.join(":");return a&&(w+="%"+a),w}return e}var Y=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Z=void 0==="".match(/(){0}/)[1];function K(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?u:l;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var i=e.match(Y);if(i){Z?(r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5])):(r.scheme=i[1]||void 0,r.userinfo=-1!==e.indexOf("@")?i[3]:void 0,r.host=-1!==e.indexOf("//")?i[4]:void 0,r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=-1!==e.indexOf("?")?i[7]:void 0,r.fragment=-1!==e.indexOf("#")?i[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),r.host&&(r.host=G($(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var a=H[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||a&&a.unicodeSupport)B(r,n);else{if(r.host&&(t.domainHost||a&&a.domainHost))try{r.host=U.toASCII(r.host.replace(n.PCT_ENCODED,z).toLowerCase())}catch(o){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+o}B(r,l)}a&&a.parse&&a.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function Q(e,t){var r=!1!==t.iri?u:l,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(G($(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"!==typeof e.port&&"string"!==typeof e.port||(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}var J=/^\.\.?\//,X=/^\/\.(\/|$)/,ee=/^\/\.\.(\/|$)/,te=/^\/?(?:.|\n)*?(?=\/|$)/;function re(e){var t=[];while(e.length)if(e.match(J))e=e.replace(J,"");else if(e.match(X))e=e.replace(X,"/");else if(e.match(ee))e=e.replace(ee,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(te);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?u:l,n=[],i=H[(t.scheme||e.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||i&&i.domainHost)try{e.host=t.iri?U.toUnicode(e.host):U.toASCII(e.host.replace(r.PCT_ENCODED,z).toLowerCase())}catch(s){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+s}B(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var a=Q(e,t);if(void 0!==a&&("suffix"!==t.reference&&n.push("//"),n.push(a),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var o=e.path;t.absolutePath||i&&i.absolutePath||(o=re(o)),void 0===a&&(o=o.replace(/^\/\//,"/%2F")),n.push(o)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function ie(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3],i={};return n||(e=K(ne(e,r),r),t=K(ne(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=re(t.path||""),i.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=re(t.path||""),i.query=t.query):(t.path?("/"===t.path.charAt(0)?i.path=re(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path:i.path="/"+t.path,i.path=re(i.path)),i.query=t.query):(i.path=e.path,void 0!==t.query?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function ae(e,t,r){var n=o({scheme:"null"},r);return ne(ie(K(e,n),K(t,n),n,!0),n)}function oe(e,t){return"string"===typeof e?e=ne(K(e,t),t):"object"===n(e)&&(e=K(ne(e,t),t)),e}function se(e,t,r){return"string"===typeof e?e=ne(K(e,r),r):"object"===n(e)&&(e=ne(e,r)),"string"===typeof t?t=ne(K(t,r),r):"object"===n(t)&&(t=ne(t,r)),e===t}function le(e,t){return e&&e.toString().replace(t&&t.iri?u.ESCAPE:l.ESCAPE,W)}function ue(e,t){return e&&e.toString().replace(t&&t.iri?u.PCT_ENCODED:l.PCT_ENCODED,z)}var he={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},ce={scheme:"https",domainHost:he.domainHost,parse:he.parse,serialize:he.serialize};function fe(e){return"boolean"===typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var de={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=fe(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e,t){if(e.port!==(fe(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"===typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var r=e.resourceName.split("?"),n=h(r,2),i=n[0],a=n[1];e.path=i&&"/"!==i?i:void 0,e.query=a,e.resourceName=void 0}return e.fragment=void 0,e}},pe={scheme:"wss",domainHost:de.domainHost,parse:de.parse,serialize:de.serialize},me={},ge=!0,be="[A-Za-z0-9\\-\\.\\_\\~"+(ge?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",ve="[0-9A-Fa-f]",ye=r(r("%[EFef]"+ve+"%"+ve+ve+"%"+ve+ve)+"|"+r("%[89A-Fa-f]"+ve+"%"+ve+ve)+"|"+r("%"+ve+ve)),we="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",_e="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",Ee=t(_e,'[\\"\\\\]'),Se="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",xe=new RegExp(be,"g"),Ae=new RegExp(ye,"g"),Re=new RegExp(t("[^]",we,"[\\.]",'[\\"]',Ee),"g"),Ce=new RegExp(t("[^]",be,Se),"g"),Oe=Ce;function Te(e){var t=z(e);return t.match(xe)?t:e}var je={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var i=!1,a={},o=r.query.split("&"),s=0,l=o.length;s{"use strict";var n=r(9655);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var a=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,l=["<",">",'"',"`"," ","\r","\n","\t"],u=["{","}","|","\\","^","`"].concat(l),h=["'"].concat(u),c=["%","/","?",";","#"].concat(h),f=["/","?","#"],d=255,p=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=r(55373);function w(e,t,r){if(e&&"object"===typeof e&&e instanceof i)return e;var n=new i;return n.parse(e,t,r),n}function _(e){return"string"===typeof e&&(e=w(e)),e instanceof i?e.format():i.prototype.format.call(e)}function E(e,t){return w(e,!1,!0).resolve(t)}function S(e,t){return e?w(e,!1,!0).resolveObject(t):t}i.prototype.parse=function(e,t,r){if("string"!==typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),o=-1!==i&&i127?N+="x":N+=D[P];if(!N.match(p)){var L=k.slice(0,O),F=k.slice(O+1),q=D.match(m);q&&(L.push(q[1]),F.unshift(q[2])),F.length&&(w="/"+F.join(".")+w),this.hostname=L.join(".");break}}}this.hostname.length>d?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=n.toASCII(this.hostname));var U=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+U,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!g[S])for(O=0,M=h.length;O0)&&r.host.split("@");x&&(r.auth=x.shift(),r.hostname=x.shift(),r.host=r.hostname)}return r.search=e.search,r.query=e.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!E.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=E.slice(-1)[0],R=(r.host||e.host||E.length>1)&&("."===A||".."===A)||""===A,C=0,O=E.length;O>=0;O--)A=E[O],"."===A?E.splice(O,1):".."===A?(E.splice(O,1),C++):C&&(E.splice(O,1),C--);if(!w&&!_)for(;C--;C)E.unshift("..");!w||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),R&&"/"!==E.join("/").substr(-1)&&E.push("");var T=""===E[0]||E[0]&&"/"===E[0].charAt(0);if(S){r.hostname=T?"":E.length?E.shift():"",r.host=r.hostname;x=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");x&&(r.auth=x.shift(),r.hostname=x.shift(),r.host=r.hostname)}return w=w||r.host&&E.length,w&&!T&&E.unshift(""),E.length>0?r.pathname=E.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},i.prototype.parseHost=function(){var e=this.host,t=o.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.parse=w,t.resolve=E,t.resolveObject=S,t.format=_,t.Url=i}}]); +//# sourceMappingURL=chunk-vendors-8cbd2506.ad3b4085.js.map \ No newline at end of file diff --git a/js/chunk-vendors-8cbd2506.ad3b4085.js.map b/js/chunk-vendors-8cbd2506.ad3b4085.js.map new file mode 100644 index 00000000..0d8a1e42 --- /dev/null +++ b/js/chunk-vendors-8cbd2506.ad3b4085.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/chunk-vendors-8cbd2506.ad3b4085.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@radiantearth/stac-migrate/migrate.js","webpack://@openeo/web-editor/./node_modules/@radiantearth/stac-migrate/node_modules/compare-versions/index.js","webpack://@openeo/web-editor/./node_modules/readable-stream/errors-browser.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_readable.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_transform.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_writable.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://@openeo/web-editor/./node_modules/safe-buffer/index.js","webpack://@openeo/web-editor/./node_modules/side-channel-list/index.js","webpack://@openeo/web-editor/./node_modules/side-channel-map/index.js","webpack://@openeo/web-editor/./node_modules/side-channel-weakmap/index.js","webpack://@openeo/web-editor/./node_modules/side-channel/index.js","webpack://@openeo/web-editor/./node_modules/stream-browserify/index.js","webpack://@openeo/web-editor/./node_modules/string_decoder/lib/string_decoder.js","webpack://@openeo/web-editor/./node_modules/uri-js/dist/es5/uri.all.js","webpack://@openeo/web-editor/./node_modules/url/url.js"],"sourcesContent":["// Migration rules partly based on PySTAC and @openeo/js-commons,\n// see https://github.com/stac-utils/pystac/tree/v0.5.4/pystac/serialization/migrate.py\n// and https://github.com/Open-EO/openeo-js-commons/tree/v1.2.0/src/migrate/collections.js\n\nvar compareVersions = require('compare-versions');\n\nconst LATEST_VERSION = '1.1.0';\nconst DONE = true; // This is used to verify in code coverage whether something has been used or not\nconst SCHEMAS = {\n 'classification': 'https://stac-extensions.github.io/classification/v2.0.0/schema.json',\n 'datacube': 'https://stac-extensions.github.io/datacube/v2.2.0/schema.json',\n 'eo': 'https://stac-extensions.github.io/eo/v2.0.0/schema.json',\n 'file': 'https://stac-extensions.github.io/file/v2.1.0/schema.json',\n 'item-assets': 'https://stac-extensions.github.io/item-assets/v1.0.0/schema.json',\n 'label': 'https://stac-extensions.github.io/label/v1.0.1/schema.json',\n 'pointcloud': 'https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json',\n 'processing': 'https://stac-extensions.github.io/processing/v1.2.0/schema.json',\n 'projection': 'https://stac-extensions.github.io/projection/v2.0.0/schema.json',\n 'raster': 'https://stac-extensions.github.io/raster/v2.0.0/schema.json',\n 'sar': 'https://stac-extensions.github.io/sar/v1.0.0/schema.json',\n 'sat': 'https://stac-extensions.github.io/sat/v1.0.0/schema.json',\n 'scientific': 'https://stac-extensions.github.io/scientific/v1.0.0/schema.json',\n 'table': 'https://stac-extensions.github.io/table/v1.2.0/schema.json',\n 'timestamps': 'https://stac-extensions.github.io/timestamps/v1.1.0/schema.json',\n 'version': 'https://stac-extensions.github.io/version/v1.2.0/schema.json',\n 'view': 'https://stac-extensions.github.io/view/v1.0.0/schema.json'\n};\nconst EXTENSIONS = {\n // Add a : at the end to indicate it has a prefix, otherwise list all fields separately (see version extension for example).\n itemAndCollection: {\n // with prefix\n 'classification:': SCHEMAS.classification,\n 'cube:': SCHEMAS.datacube,\n 'eo:': SCHEMAS.eo,\n 'file:': SCHEMAS.file,\n 'label:': SCHEMAS.label,\n 'pc:': SCHEMAS.pointcloud,\n 'processing:': SCHEMAS.processing,\n 'proj:': SCHEMAS.projection,\n 'raster:': SCHEMAS.raster,\n 'sar:': SCHEMAS.sar,\n 'sat:': SCHEMAS.sat,\n 'sci:': SCHEMAS.scientific,\n 'view:': SCHEMAS.view,\n // without prefix\n 'version': SCHEMAS.version,\n 'deprecated': SCHEMAS.version,\n 'published': SCHEMAS.timestamps,\n 'expires': SCHEMAS.timestamps,\n 'unpublished': SCHEMAS.timestamps\n },\n catalog: {\n // None yet\n },\n collection: {\n // None yet\n },\n item: {\n // None yet\n },\n};\nEXTENSIONS.collection = Object.assign(EXTENSIONS.collection, EXTENSIONS.itemAndCollection);\nEXTENSIONS.item = Object.assign(EXTENSIONS.item, EXTENSIONS.itemAndCollection);\n\nvar Ext = {\n parseExtension(url) {\n // Try to match name and version from official extensions\n let match = url.match(/^https?:\\/\\/stac-extensions.github.io\\/([^\\/]+)\\/v([^\\/]+)\\/[^.]+.json$/i);\n if (match) {\n return {\n id: match[1],\n version: match[2]\n };\n }\n // Try to match version from URIs\n let match2 = url.match(/(\\d+\\.\\d+(\\.\\d+)([a-z_.-][\\w.-]+)?)/i);\n if (match2) {\n return {\n id: url,\n version: match2[1]\n };\n }\n // Handle schortnames\n if (url in SCHEMAS) {\n return {\n id: url,\n version: '0.0.0'\n };\n }\n }\n};\n\nvar V = {\n version: LATEST_VERSION,\n extensions: {},\n\n set(stac) {\n if (typeof stac.stac_version !== 'string') {\n V.version = '0.6.0'; // Assume the worst case, it doesn't seem there's a clear indicator for 0.7.0\n }\n else {\n V.version = stac.stac_version;\n }\n\n if (Array.isArray(stac.stac_extensions)) {\n for (let ext of stac.stac_extensions) {\n let e = Ext.parseExtension(ext);\n if (e) {\n V.extensions[e.id] = e.version;\n }\n }\n }\n },\n\n before(version, ext = null) {\n return V.compare('<', version, ext);\n },\n\n compare(comparator, version, ext = null) {\n let compareTo = ext ? V.extensions[ext] : V.version;\n if (typeof compareTo === 'undefined') {\n return false;\n }\n else {\n return compareVersions.compare(compareTo, version, comparator);\n }\n }\n\n};\n\nvar _ = {\n\n type(val) {\n let type = typeof val;\n if (type === 'object') {\n if (val === null) {\n return 'null';\n }\n else if (Array.isArray(val)) {\n return 'array';\n }\n }\n return type;\n },\n\n is(val, type) {\n if (Array.isArray(type)) {\n return type.includes(_.type(val));\n }\n else {\n return _.type(val) === type;\n }\n },\n\n isDefined(val) {\n return (typeof val !== 'undefined');\n },\n\n isObject(obj) {\n return (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n },\n\n rename(obj, oldKey, newKey) {\n if (typeof obj[oldKey] !== 'undefined' && typeof obj[newKey] === 'undefined') {\n obj[newKey] = obj[oldKey];\n delete obj[oldKey];\n return true;\n }\n return false;\n },\n\n copy(obj, oldKey, newKey) {\n if (typeof obj[oldKey] !== 'undefined' && typeof obj[newKey] === 'undefined') {\n obj[newKey] = obj[oldKey];\n return true;\n }\n return false;\n },\n\n forAll(obj, key, fn) {\n if (obj[key] && typeof obj[key] === 'object') {\n for (let i in obj[key]) {\n fn(obj[key][i]);\n }\n }\n },\n\n toArray(obj, key) {\n if (typeof obj[key] !== 'undefined' && !Array.isArray(obj[key])) {\n obj[key] = [obj[key]];\n return true;\n }\n return false;\n },\n\n flattenArray(obj, key, newKeys, summary = false) {\n if (Array.isArray(obj[key])) {\n for (let i in obj[key]) {\n if (typeof newKeys[i] === 'string') {\n let value = obj[key][i];\n obj[newKeys[i]] = summary ? [value] : value;\n }\n }\n delete obj[key];\n return true;\n }\n return false;\n },\n\n flattenOneElementArray(obj, key, summary = false) {\n if (!summary && Array.isArray(obj[key])) {\n if (obj[key].length === 1) {\n obj[key] = obj[key][0];\n return true;\n }\n else {\n return false; // It's still an array and we don't know which element to choose\n }\n }\n return true; // It's already a single element\n },\n\n removeFromArray(obj, key, valueToRemove) {\n if (Array.isArray(obj[key])) {\n let index = obj[key].indexOf(valueToRemove);\n if (index > -1) {\n obj[key].splice(index, 1);\n }\n return true;\n }\n return false;\n },\n\n pickFirst(obj, key) {\n if (Array.isArray(obj[key]) && obj[key].length > 0) {\n obj[key] = obj[key][0];\n return true;\n }\n else {\n delete obj[key];\n return false;\n }\n },\n\n ensure(obj, key, defaultValue) {\n if (_.type(defaultValue) !== _.type(obj[key])) {\n obj[key] = defaultValue;\n }\n return true;\n },\n\n upgradeExtension(context, extension) {\n let { id, version } = Ext.parseExtension(extension);\n let index = context.stac_extensions.findIndex(url => {\n let old = Ext.parseExtension(url);\n return (old && old.id === id && compareVersions.compare(old.version, version, '<'));\n });\n if (index !== -1) {\n context.stac_extensions[index] = extension;\n return true;\n }\n else {\n return false;\n }\n },\n\n addExtension(context, newExtension) {\n let { id, version } = Ext.parseExtension(newExtension);\n let index = context.stac_extensions.findIndex(url => {\n if (url === newExtension) {\n return true;\n }\n let old = Ext.parseExtension(url);\n if (old && old.id === id && compareVersions.compare(old.version, version, '<')) {\n return true;\n }\n return false;\n });\n if (index === -1) {\n context.stac_extensions.push(newExtension);\n }\n else {\n context.stac_extensions[index] = newExtension;\n }\n\n context.stac_extensions.sort();\n return true;\n },\n\n removeExtension(context, oldExtension) {\n return _.removeFromArray(context, 'stac_extensions', oldExtension);\n },\n\n migrateExtensionShortnames(context) {\n let oldShortnames = Object.keys(SCHEMAS);\n let newSchemas = Object.values(SCHEMAS);\n return _.mapValues(context, 'stac_extensions', oldShortnames, newSchemas);\n },\n\n populateExtensions(context, type) {\n let objectsToCheck = [];\n if (type == 'catalog' || type == 'collection') {\n objectsToCheck.push(context);\n }\n if ((type == 'item' || type == 'collection') && _.isObject(context.assets)) {\n objectsToCheck = objectsToCheck.concat(Object.values(context.assets));\n }\n if (type == 'collection' && _.isObject(context.item_assets)) {\n objectsToCheck = objectsToCheck.concat(Object.values(context.item_assets));\n }\n if (type == 'collection' && _.isObject(context.summaries)) {\n objectsToCheck.push(context.summaries);\n }\n if (type == 'item' && _.isObject(context.properties)) {\n objectsToCheck.push(context.properties);\n }\n objectsToCheck.push(context.links);\n\n let obj;\n while(obj = objectsToCheck.pop()) {\n Object.keys(obj).forEach(key => {\n // Add additional objects to check\n if (Array.isArray(obj.bands)) {\n objectsToCheck = objectsToCheck.concat(obj.bands);\n }\n\n // Check for fields with extension prefixes\n let prefix = key.match(/^(\\w+:|[^:]+$)/i);\n if (Array.isArray(prefix)) {\n let ext = EXTENSIONS[type][prefix[0]];\n _.is(ext, 'string') && _.addExtension(context, ext) && DONE;\n }\n });\n }\n },\n\n mapValues(obj, key, oldValues, newValues) {\n let fn = value => {\n let index = oldValues.indexOf(value);\n if (index >= 0) {\n return newValues[index];\n }\n return value;\n };\n if (Array.isArray(obj[key])) {\n obj[key] = obj[key].map(fn);\n }\n else if (typeof obj[key] !== 'undefined') {\n obj[key] = fn(obj[key]);\n }\n return true;\n },\n\n mapObject(obj, fn) {\n for (let key in obj) {\n obj[key] = fn(obj[key], key);\n }\n },\n\n moveTo(obj, key, context, fromSummary = false, mergedSummary = false) {\n let condition;\n if (fromSummary) {\n if (mergedSummary) {\n condition = val => Array.isArray(val);\n }\n else {\n condition = val => Array.isArray(val) && val.length === 1;\n }\n }\n else {\n condition = _.isDefined\n }\n if (condition(obj[key])) {\n context[key] = fromSummary && !mergedSummary ? obj[key][0] : obj[key];\n delete obj[key];\n return true;\n }\n return false;\n },\n\n runAll(migrations, obj, context, summaries) {\n for (let fn in migrations) {\n if (!fn.startsWith('migrate')) {\n migrations[fn](obj, context, summaries);\n }\n }\n },\n\n toUTC(obj, key) {\n if (_.is(obj[key], 'string')) {\n try {\n obj[key] = this.toISOString(obj[key]);\n return true;\n } catch (error) { }\n }\n delete obj[key];\n return false;\n },\n\n toISOString(date) {\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n return date.toISOString().replace(/\\.0+/, ''); // Don't export milliseconds if not needed\n },\n\n formatString(obj, key, format) {\n const formatter = value => {\n if (_.is(value, ['string', 'number'])) {\n return format.replaceAll('{}', value);\n }\n return value;\n };\n if (Array.isArray(obj[key])) {\n obj[key] = obj[key].map(formatter);\n }\n else {\n obj[key] = formatter(obj[key]);\n }\n }\n\n};\n\nvar Checksum = {\n\n multihash: null,\n\n hexToUint8(hexString) {\n if (hexString.length === 0 || hexString.length % 2 !== 0) {\n throw new Error(`The string \"${hexString}\" is not valid hex.`)\n }\n return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));\n },\n\n uint8ToHex(bytes) {\n return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n },\n\n toMultihash(obj, key, algo) {\n if (!Checksum.multihash || !_.is(obj[key], 'string')) {\n return false;\n }\n try {\n const encoded = Checksum.multihash.encode(Checksum.hexToUint8(obj[key]), algo);\n obj[key] = Checksum.uint8ToHex(encoded);\n return true;\n } catch (error) {\n console.warn(error);\n return false;\n }\n }\n\n};\n\nvar Catalog = {\n\n migrate(catalog, updateVersionNumber = true) {\n V.set(catalog);\n if (updateVersionNumber) {\n catalog.stac_version = LATEST_VERSION;\n }\n catalog.type = 'Catalog';\n\n _.ensure(catalog, 'stac_extensions', []) && DONE;\n V.before('1.0.0-rc.1') && _.migrateExtensionShortnames(catalog) && DONE;\n\n _.ensure(catalog, 'id', '') && DONE;\n _.ensure(catalog, 'description', '') && DONE;\n _.ensure(catalog, 'links', []) && DONE;\n\n _.runAll(Catalog, catalog, catalog);\n\n V.before('0.8.0') && _.populateExtensions(catalog, 'catalog') && DONE;\n\n return catalog;\n },\n\n};\n\nvar Collection = {\n\n migrate(collection, updateVersionNumber = true) {\n Catalog.migrate(collection, updateVersionNumber); // Migrates stac_version, stac_extensions, id, title, description, links\n collection.type = 'Collection';\n\n V.before('1.0.0-rc.1') && _.migrateExtensionShortnames(collection) && DONE;\n\n _.ensure(collection, 'license', 'other') && DONE;\n _.ensure(collection, 'extent', {\n spatial: {\n bbox: []\n },\n temporal: {\n interval: []\n }\n }) && DONE;\n\n _.runAll(Collection, collection, collection);\n\n // Migrate Commons extension - part 3\n if (_.isObject(collection.properties)) {\n _.removeFromArray(collection, 'stac_extensions', 'commons') && DONE;\n delete collection.properties;\n }\n\n V.before('0.8.0') && _.populateExtensions(collection, 'collection') && DONE;\n V.before('1.0.0-beta.1') && _.mapValues(collection, 'stac_extensions', ['assets'], ['item-assets']) && DONE;\n\n return collection;\n },\n\n extent(collection) {\n _.ensure(collection, \"extent\", {});\n\n if (V.before('0.8.0')) {\n // Restructure spatial extent\n if (Array.isArray(collection.extent.spatial)) {\n collection.extent.spatial = {\n bbox: [\n collection.extent.spatial\n ]\n };\n }\n // Restructure temporal extent\n if (Array.isArray(collection.extent.temporal)) {\n collection.extent.temporal = {\n interval: [\n collection.extent.temporal\n ]\n };\n }\n }\n\n _.ensure(collection.extent, \"spatial\", {});\n _.ensure(collection.extent.spatial, \"bbox\", []);\n _.ensure(collection.extent, \"temporal\", {});\n _.ensure(collection.extent.temporal, \"interval\", []);\n\n if (V.before('1.0.0-rc.3')) {\n // The first extent in a Collection is always the overall extent, followed by more specific extents.\n if (collection.extent.temporal.interval.length > 1) {\n let min, max;\n for (let interval of collection.extent.temporal.interval) {\n if (interval[0] === null) {\n min = null;\n }\n else if (typeof interval[0] === 'string' && min !== null) {\n try {\n let start = new Date(interval[0]);\n if (typeof min === 'undefined' || start < min) {\n min = start;\n }\n } catch (error) { }\n }\n\n if (interval[1] === null) {\n max = null;\n }\n else if (typeof interval[1] === 'string' && max !== null) {\n try {\n let end = new Date(interval[1]);\n if (typeof max === 'undefined' || end > max) {\n max = end;\n }\n } catch (error) { }\n }\n }\n collection.extent.temporal.interval.unshift([\n min ? _.toISOString(min) : null,\n max ? _.toISOString(max) : null\n ]);\n }\n if (collection.extent.spatial.bbox.length > 1) {\n let count = collection.extent.spatial.bbox.reduce((val, bbox) => Array.isArray(bbox) ? Math.max(bbox.length, val) : val, 4);\n if (count >= 4) {\n let union = new Array(count).fill(null);\n let middle = count / 2;\n for (let bbox of collection.extent.spatial.bbox) {\n if (!Array.isArray(bbox) || bbox.length < 4) {\n break;\n }\n for (let i in bbox) {\n let c = bbox[i];\n if (union[i] === null) {\n union[i] = c;\n }\n else if (i < middle) {\n union[i] = Math.min(c, union[i]);\n }\n else {\n union[i] = Math.max(c, union[i]);\n }\n\n }\n }\n if (union.findIndex(c => c === null) === -1) {\n collection.extent.spatial.bbox.unshift(union);\n }\n }\n }\n }\n },\n\n collectionAssets(collection) {\n V.before('1.0.0-rc.1') && _.removeExtension(collection, 'collection-assets') && DONE;\n\n Asset.migrateAll(collection);\n },\n\n itemAsset(collection) {\n V.before('1.0.0-beta.2') && _.rename(collection, 'item_assets', 'assets');\n\n _.removeExtension(collection, SCHEMAS['item-assets']) && DONE;\n\n Asset.migrateAll(collection, 'item_assets');\n },\n\n summaries(collection) {\n _.ensure(collection, 'summaries', {});\n\n // other_properties: An early version of the Collection summaries with a similar structure\n // Was mostly used in standalone collections from openEO and GEE. Move other_properties to summaries.\n if (V.before('0.8.0') && _.isObject(collection.other_properties)) {\n for (let key in collection.other_properties) {\n let prop = collection.other_properties[key];\n if (Array.isArray(prop.extent) && prop.extent.length === 2) {\n collection.summaries[key] = {\n minimum: prop.extent[0],\n maximum: prop.extent[1],\n };\n }\n else if (Array.isArray(prop.values)) {\n if (prop.values.filter(v => Array.isArray(v)).length === prop.values.length) {\n // If it is an array of arrays, merge the arrays\n collection.summaries[key] = prop.values.reduce((a, b) => a.concat(b), []);\n }\n else {\n collection.summaries[key] = prop.values;\n }\n }\n }\n delete collection.other_properties;\n }\n\n // Migrate Commons extension - part 2\n // Move properties to (single element) summaries if the Collection is standalone\n // see also https://github.com/stac-utils/stac-migrate/issues/3\n if (V.before('1.0.0-beta.1') && _.isObject(collection.properties) && !collection.links.find(link => ['child', 'item'].includes(link.rel))) {\n for (let key in collection.properties) {\n let value = collection.properties[key];\n if (!Array.isArray(value)) {\n value = [value];\n }\n collection.summaries[key] = value;\n }\n }\n\n if (V.before('1.0.0-rc.1')) {\n _.mapObject(collection.summaries, val => {\n _.rename(val, 'min', 'minimum') && DONE;\n _.rename(val, 'max', 'maximum') && DONE;\n return val;\n });\n }\n\n // now we can work on all summaries and migrate them\n Fields.migrate(collection.summaries, collection, true);\n\n // Some fields should usually be on root-level if there's only one element\n _.moveTo(collection.summaries, 'sci:doi', collection, true) && _.addExtension(collection, SCHEMAS.scientific) && DONE;\n _.moveTo(collection.summaries, 'sci:publications', collection, true, true) && _.addExtension(collection, SCHEMAS.scientific) && DONE;\n _.moveTo(collection.summaries, 'sci:citation', collection, true) && _.addExtension(collection, SCHEMAS.scientific) && DONE;\n _.moveTo(collection.summaries, 'cube:dimensions', collection, true) && _.addExtension(collection, SCHEMAS.datacube) && DONE;\n\n // Remove summary field if empty\n if (Object.keys(collection.summaries).length === 0) {\n delete collection.summaries;\n }\n }\n\n};\n\nvar Item = {\n\n migrate(item, collection = null, updateVersionNumber = true) {\n V.set(item);\n if (updateVersionNumber) {\n item.stac_version = LATEST_VERSION;\n }\n\n _.ensure(item, 'stac_extensions', []) && DONE;\n V.before('1.0.0-rc.1') && _.migrateExtensionShortnames(item) && DONE;\n\n _.ensure(item, 'id', '') && DONE;\n _.ensure(item, 'type', 'Feature') && DONE;\n if (!_.isObject(item.geometry)) {\n item.geometry = null;\n }\n if (item.geometry !== null) {\n _.ensure(item, 'bbox', []) && DONE;\n }\n _.ensure(item, 'properties', {}) && DONE;\n _.ensure(item, 'links', []) && DONE;\n _.ensure(item, 'assets', {}) && DONE;\n\n // Migrate Commons extension - part 1\n let commons = false;\n if (_.isObject(collection) && _.isObject(collection.properties)) {\n _.removeFromArray(item, 'stac_extensions', 'commons');\n item.properties = Object.assign({}, collection.properties, item.properties);\n commons = true;\n }\n\n _.runAll(Item, item, item);\n\n Fields.migrate(item.properties, item);\n\n Asset.migrateAll(item);\n\n // Also populate extensions if commons has been implemented\n (V.before('0.8.0') || commons) && _.populateExtensions(item, 'item') && DONE;\n\n return item;\n }\n\n};\n\nvar CollectionCollection = {\n\n migrate(object, updateVersionNumber = true) {\n _.ensure(object, 'collections', []) && DONE;\n _.ensure(object, 'links', []) && DONE;\n\n _.runAll(CollectionCollection, object, object);\n\n object.collections = object.collections.map(collection => Collection.migrate(collection, updateVersionNumber));\n\n return object;\n },\n\n};\n\nvar ItemCollection = {\n\n migrate(itemCollection, updateVersionNumber = true) {\n _.ensure(itemCollection, 'type', 'FeatureCollection') && DONE;\n _.ensure(itemCollection, 'features', []) && DONE;\n _.ensure(itemCollection, 'links', []) && DONE;\n\n _.runAll(ItemCollection, itemCollection, itemCollection);\n\n itemCollection.features = itemCollection.features.map(feature => Item.migrate(feature, null, updateVersionNumber));\n\n return itemCollection;\n },\n\n};\n\nvar Asset = {\n\n migrateAll(context, field = 'assets') {\n for (let key in context[field]) {\n Asset.migrate(context[field][key], context);\n }\n },\n\n migrate(asset, context) {\n _.runAll(Asset, asset, context);\n\n Fields.migrate(asset, context);\n\n return asset;\n },\n\n mediaTypes(asset) {\n _.is(asset.type, 'string') && _.mapValues(\n asset, 'type',\n ['image/vnd.stac.geotiff', 'image/vnd.stac.geotiff; cloud-optimized=true'],\n ['image/tiff; application=geotiff', 'image/tiff; application=geotiff; profile=cloud-optimized']\n );\n }\n\n};\n\nvar Band = {\n\n migrateAll(obj, context) {\n\n if (V.before('1.0.0')) { // Not sure when the index-based bands were removed\n const bands = _.isObject(context.properties) && Array.isArray(context.properties.bands) ? context.properties.bands : [];\n if (Array.isArray(obj['eo:bands'])) {\n for (let i in obj['eo:bands']) {\n let band = obj['eo:bands'][i];\n if (_.is(band, 'number') && _.isObject(bands[band])) {\n band = bands[band];\n }\n if (!_.isObject(band)) {\n band = {}; // \"Fix\" invalid band index\n }\n obj['eo:bands'][i] = band;\n }\n }\n }\n\n if (V.before(\"1.1.0-beta.1\") && (Array.isArray(obj[\"raster:bands\"]) || Array.isArray(obj[\"eo:bands\"]))) {\n _.ensure(obj, \"bands\", []);\n\n const raster = obj[\"raster:bands\"] || [];\n const eo = obj[\"eo:bands\"] || [];\n const length = Math.max(raster.length, eo.length);\n for (let i = 0; i < length; i++) {\n _.ensure(obj.bands, i, {});\n Object.assign(obj.bands[i], raster[i], eo[i]);\n obj.bands[i] = Band.migrate(obj.bands[i], context);\n }\n\n delete obj[\"raster:bands\"];\n delete obj[\"eo:bands\"];\n }\n\n },\n\n migrate(band, context) {\n _.runAll(Band, band, context);\n\n Fields.migrate(band, context);\n\n return band;\n },\n\n eo(band) {\n if (V.before('2.0.0-beta.1', 'eo')) {\n _.rename(band, 'common_name', 'eo:common_name') && DONE;\n _.rename(band, 'center_wavelength', 'eo:center_wavelength') && DONE;\n _.rename(band, 'full_width_half_max', 'eo:full_width_half_max') && DONE;\n _.rename(band, 'solar_illumination', 'eo:solar_illumination') && DONE;\n }\n },\n\n raster(band) {\n if (V.before('2.0.0-beta.1', 'raster')) {\n _.rename(band, 'sampling', 'raster:sampling') && DONE;\n _.rename(band, 'bits_per_sample', 'raster:bits_per_sample') && DONE;\n _.rename(band, 'spatial_resolution', 'raster:spatial_resolution') && DONE;\n _.rename(band, 'scale', 'raster:scale') && DONE;\n _.rename(band, 'offset', 'raster:offset') && DONE;\n _.rename(band, 'histogram', 'raster:histogram') && DONE;\n }\n }\n\n};\n\nvar Fields = {\n\n migrate(obj, context, summaries = false) {\n _.runAll(Fields, obj, context, summaries);\n\n return obj;\n },\n\n _commonMetadata(obj, context) {\n // Timestamps must be always in UTC\n // datetime, start_datetime and end_datetime already required UTC before\n if (V.before('1.0.0-rc.3')) {\n _.toUTC(obj, 'created') && DONE;\n _.toUTC(obj, 'updated') && DONE;\n }\n\n Band.migrateAll(obj, context);\n },\n\n _timestamps(obj, context) {\n // Timestamps must be always in UTC\n _.toUTC(obj, 'published') && DONE;\n _.toUTC(obj, 'expires') && DONE;\n _.toUTC(obj, 'unpublished') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.timestamps);\n },\n\n _versioningIndicator(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.version);\n },\n\n checksum(obj, context) {\n if (V.before('0.9.0') && Checksum.multihash) {\n _.rename(obj, 'checksum:md5', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'md5') && DONE;\n _.rename(obj, 'checksum:sha1', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'sha1') && DONE;\n // We assume sha2/3-256 although that may fail in some cases and other lengths are chosen\n // Never seen this implemtned in the wild, so let's try this until another use case comes up\n _.rename(obj, 'checksum:sha2', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'sha2-256') && DONE;\n _.rename(obj, 'checksum:sha3', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'sha3-256') && DONE;\n }\n\n V.before('1.0.0-rc.1') && _.rename(obj, 'checksum:multihash', 'file:checksum') && _.addExtension(context, SCHEMAS.file) && DONE;\n\n _.removeExtension(context, 'checksum');\n },\n\n classification(obj, context) {\n if (V.before('1.1.0', 'classification')) {\n _.forAll(obj, 'classification:classes', o => _.rename(o, 'color-hint', 'color_hint')) && DONE;\n }\n if (V.before('2.0.0', 'classification')) {\n _.forAll(obj, 'classification:classes', o => _.ensure(o, 'name', o.description)) && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.classification);\n },\n\n cube(obj, context) {\n // We'd need to convert proj strings to something else for v1.0 -> v2.0, but that's unfeasible here.\n // Nothing else to do here.\n\n _.upgradeExtension(context, SCHEMAS.datacube);\n },\n\n dtr(obj, context) {\n if (V.before('0.9.0')) {\n _.rename(obj, 'dtr:start_datetime', 'start_datetime') && DONE;\n _.rename(obj, 'dtr:end_datetime', 'end_datetime') && DONE;\n _.removeExtension(context, 'datetime-range') && DONE;\n }\n },\n\n eo(obj, context) {\n if (V.before('0.9.0')) {\n _.rename(obj, 'eo:epsg', 'proj:epsg') && _.addExtension(context, SCHEMAS.projection) && DONE;\n _.rename(obj, 'eo:platform', 'platform') && DONE;\n _.rename(obj, 'eo:instrument', 'instruments') && _.toArray(obj, 'instruments') && DONE;\n _.rename(obj, 'eo:constellation', 'constellation') && DONE;\n _.rename(obj, 'eo:off_nadir', 'view:off_nadir') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:azimuth', 'view:azimuth') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:incidence_angle', 'view:incidence_angle') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:sun_azimuth', 'view:sun_azimuth') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:sun_elevation', 'view:sun_elevation') && _.addExtension(context, SCHEMAS.view) && DONE;\n }\n\n V.before('1.0.0-beta.1') && _.rename(obj, 'eo:gsd', 'gsd') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.eo);\n },\n\n file(obj, context, summaries) {\n _.rename(obj, 'file:bits_per_sample', 'raster:bits_per_sample') && _.addExtension(context, SCHEMAS.raster) && DONE;\n _.rename(obj, 'file:data_type', 'data_type') && DONE;\n _.rename(obj, 'file:unit', 'unit') && DONE;\n\n if (Array.isArray(obj['file:nodata']) && obj['file:nodata'].length > 1) {\n // In case of more than one no-data value we need to create a custom property\n // as there's no alternative for multiple no-data values yet\n _.copy(obj, 'file:nodata', 'nodata:values') && DONE;\n }\n _.rename(obj, 'file:nodata', 'nodata') && !summaries && _.pickFirst(obj, 'nodata') && DONE;\n _.upgradeExtension(context, SCHEMAS.file);\n },\n\n label(obj, context) {\n // Migrate 0.8.0-rc1 non-pluralized forms\n if (V.before('0.8.0')) {\n _.rename(obj, 'label:property', 'label:properties') && DONE;\n _.rename(obj, 'label:task', 'label:tasks') && DONE;\n _.rename(obj, 'label:overview', 'label:overviews') && _.toArray(obj, 'label:overviews') && DONE;\n _.rename(obj, 'label:method', 'label:methods') && DONE;\n _.toArray(obj, 'label:classes') && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.label);\n },\n\n pc(obj, context) {\n V.before('0.8.0') && _.rename(obj, 'pc:schema', 'pc:schemas') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.pointcloud);\n },\n\n processing(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.processing);\n },\n\n proj(obj, context) {\n _.rename(obj, 'proj:epsg', 'proj:code') && _.formatString(obj, 'proj:code', 'EPSG:{}') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.projection);\n },\n\n raster(obj, context) {\n _.upgradeExtension(context, SCHEMAS.raster);\n },\n\n sar(obj, context, summary) {\n // Which version have they been (re)moved?\n _.rename(obj, 'sar:incidence_angle', 'view:incidence_angle') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'sar:pass_direction', 'sat:orbit_state') && _.mapValues(obj, 'sat:orbit_state', [null], ['geostationary']) && _.addExtension(context, SCHEMAS.sat) && DONE;\n\n if (V.before('0.7.0')) {\n _.flattenArray(obj, 'sar:resolution', ['sar:resolution_range', 'sar:resolution_azimuth'], summary) && DONE;\n _.flattenArray(obj, 'sar:pixel_spacing', ['sar:pixel_spacing_range', 'sar:pixel_spacing_azimuth'], summary) && DONE;\n _.flattenArray(obj, 'sar:looks', ['sar:looks_range', 'sar:looks_azimuth', 'sar:looks_equivalent_number'], summary) && DONE;\n _.rename(obj, 'sar:off_nadir', 'view:off_nadir') && _.addExtension(context, SCHEMAS.view) && DONE;\n }\n\n if (V.before('0.9.0')) {\n _.rename(obj, 'sar:platform', 'platform') && DONE;\n _.rename(obj, 'sar:instrument', 'instruments') && _.toArray(obj, 'instruments') && DONE;\n _.rename(obj, 'sar:constellation', 'constellation') && DONE;\n _.rename(obj, 'sar:type', 'sar:product_type') && DONE;\n _.rename(obj, 'sar:polarization', 'sar:polarizations') && DONE;\n _.flattenOneElementArray(obj, 'sar:absolute_orbit', summary) && _.rename(obj, 'sar:absolute_orbit', 'sat:absolute_orbit') && _.addExtension(context, SCHEMAS.sat) && DONE;\n _.flattenOneElementArray(obj, 'sar:relative_orbit', summary) && _.rename(obj, 'sar:relative_orbit', 'sat:relative_orbit') && _.addExtension(context, SCHEMAS.sat) && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.sar);\n },\n\n sat(obj, context) {\n // Migrate 0.9.0-rc _angle suffixes\n if (V.before('0.9.0')) {\n _.rename(obj, 'sat:off_nadir_angle', 'sat:off_nadir') && DONE;\n _.rename(obj, 'sat:azimuth_angle', 'sat:azimuth') && DONE;\n _.rename(obj, 'sat:sun_azimuth_angle', 'sat:sun_azimuth') && DONE;\n _.rename(obj, 'sat:sun_elevation_angle', 'sat:sun_elevation') && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.sat);\n },\n\n sci(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.scientific);\n },\n\n item(obj) { // Single Item\n if (V.before('0.8.0')) {\n _.rename(obj, 'item:license', 'license') && DONE;\n _.rename(obj, 'item:providers', 'providers') && DONE;\n // No need to remove the extension from stac_extensions as it was not available before 0.8.0\n }\n },\n\n table(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.table);\n },\n\n view(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.view);\n }\n\n};\n\nvar Migrate = {\n\n item(item, collection = null, updateVersionNumber = true) {\n return Item.migrate(item, collection, updateVersionNumber);\n },\n\n catalog(catalog, updateVersionNumber = true) {\n return Catalog.migrate(catalog, updateVersionNumber);\n },\n\n collection(collection, updateVersionNumber = true) {\n return Collection.migrate(collection, updateVersionNumber);\n },\n\n collectionCollection(collections, updateVersionNumber = true) {\n return CollectionCollection.migrate(collections, updateVersionNumber);\n },\n\n itemCollection(itemCollection, updateVersionNumber = true) {\n return ItemCollection.migrate(itemCollection, updateVersionNumber);\n },\n\n stac(object, updateVersionNumber = true) {\n if (object.type === 'Feature') {\n return Migrate.item(object, null, updateVersionNumber);\n }\n else if (object.type === 'FeatureCollection') {\n return Migrate.itemCollection(object, updateVersionNumber);\n }\n else if (object.type === 'Collection' || (!object.type && _.isDefined(object.extent) && _.isDefined(object.license))) {\n return Migrate.collection(object, updateVersionNumber);\n }\n else if (!object.type && Array.isArray(object.collections)) {\n return Migrate.collectionCollection(object, updateVersionNumber);\n }\n else {\n return Migrate.catalog(object, updateVersionNumber);\n }\n },\n\n enableMultihash(multihash) {\n Checksum.multihash = multihash;\n }\n\n};\n\nmodule.exports = Migrate;\n","/* global define */\n(function (root, factory) {\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.compareVersions = factory();\n }\n}(this, function () {\n\n var semver = /^v?(?:\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+))?(?:-[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\n function indexOrEnd(str, q) {\n return str.indexOf(q) === -1 ? str.length : str.indexOf(q);\n }\n\n function split(v) {\n var c = v.replace(/^v/, '').replace(/\\+.*$/, '');\n var patchIndex = indexOrEnd(c, '-');\n var arr = c.substring(0, patchIndex).split('.');\n arr.push(c.substring(patchIndex + 1));\n return arr;\n }\n\n function tryParse(v) {\n return isNaN(Number(v)) ? v : Number(v);\n }\n\n function validate(version) {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n if (!semver.test(version)) {\n throw new Error('Invalid argument not valid semver (\\''+version+'\\' received)');\n }\n }\n\n function compareVersions(v1, v2) {\n [v1, v2].forEach(validate);\n\n var s1 = split(v1);\n var s2 = split(v2);\n\n for (var i = 0; i < Math.max(s1.length - 1, s2.length - 1); i++) {\n var n1 = parseInt(s1[i] || 0, 10);\n var n2 = parseInt(s2[i] || 0, 10);\n\n if (n1 > n2) return 1;\n if (n2 > n1) return -1;\n }\n\n var sp1 = s1[s1.length - 1];\n var sp2 = s2[s2.length - 1];\n\n if (sp1 && sp2) {\n var p1 = sp1.split('.').map(tryParse);\n var p2 = sp2.split('.').map(tryParse);\n\n for (i = 0; i < Math.max(p1.length, p2.length); i++) {\n if (p1[i] === undefined || typeof p2[i] === 'string' && typeof p1[i] === 'number') return -1;\n if (p2[i] === undefined || typeof p1[i] === 'string' && typeof p2[i] === 'number') return 1;\n\n if (p1[i] > p2[i]) return 1;\n if (p2[i] > p1[i]) return -1;\n }\n } else if (sp1 || sp2) {\n return sp1 ? -1 : 1;\n }\n\n return 0;\n };\n\n var allowedOperators = [\n '>',\n '>=',\n '=',\n '<',\n '<='\n ];\n\n var operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1]\n };\n\n function validateOperator(op) {\n if (typeof op !== 'string') {\n throw new TypeError('Invalid operator type, expected string but got ' + typeof op);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new TypeError('Invalid operator, expected one of ' + allowedOperators.join('|'));\n }\n }\n\n compareVersions.validate = function(version) {\n return typeof version === 'string' && semver.test(version);\n }\n\n compareVersions.compare = function (v1, v2, operator) {\n // Validate operator\n validateOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n var res = compareVersions(v1, v2);\n return operatorResMap[operator].indexOf(res) > -1;\n }\n\n return compareVersions;\n}));\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {(thisArg: Map, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {(thisArg: Map, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {(thisArg: Map) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {Map | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1; x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join('');\n } else {\n return sets[0];\n }\n}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n}\nfunction assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n}\n\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\n PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n //expanded\n GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n //subset, excludes bidi control characters\n IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n //subset\n UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n //relaxed parsing rules\n IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n // 6( h16 \":\" ) ls32\n IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n // \"::\" 5( h16 \":\" ) ls32\n IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n //[ *5( h16 \":\" ) h16 ] \"::\" h16\n IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n //[ *6( h16 \":\" ) h16 ] \"::\"\n IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),\n //RFC 6874\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n };\n}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/** Highest positive signed 32-bit float value */\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn String.fromCodePoint.apply(String, toConsumableArray(array));\n};\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn String.fromCodePoint.apply(String, output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\nvar SCHEMES = {};\nfunction pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = void 0;\n if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n}\nfunction pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n}\nfunction _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n}\n\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n var _matches = slicedToArray(matches, 2),\n address = _matches[1];\n\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n}\nfunction _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n var _matches2 = slicedToArray(matches, 3),\n address = _matches2[1],\n zone = _matches2[2];\n\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n last = _address$toLowerCase$2[0],\n first = _address$toLowerCase$2[1];\n\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0; x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function (acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index: index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function (a, b) {\n return b.length - a.length;\n })[0];\n var newHost = void 0;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n //store each component\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n //fix port number\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n //IE FIX for improper RegExp matching\n //store each component\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n //fix port number\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n //normalize IP hosts\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n //determine reference type\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n //check for reference errors\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n //if host component is a domain name\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n //convert Unicode IDN -> ASCII IDN\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n //convert IRI -> URI\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n //normalize encodings\n _normalizeComponentEncoding(components, protocol);\n }\n //perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n}\n\nfunction _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n //normalize IP hosts, add brackets and escape zone separator for IPv6\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n}\n\nfunction serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n if (components.host) {\n //if host component is an IPv6 address\n if (protocol.IPV6ADDRESS.test(components.host)) {}\n //TODO: normalize IPv6 address as per RFC 5952\n\n //if host component is a domain name\n else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n //convert IDN via punycode\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n //normalize encoding\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\"); //merge tokens into a string\n}\n\nfunction resolveComponents(base, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n\n var target = {};\n if (!skipNormalization) {\n base = parse(serialize(base, options), options); //normalize base components\n relative = parse(serialize(relative, options), options); //normalize relative components\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = \"/\" + relative.path;\n } else if (!base.path) {\n target.path = relative.path;\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n //target.authority = base.authority;\n target.userinfo = base.userinfo;\n target.host = base.host;\n target.port = base.port;\n }\n target.scheme = base.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n}\n\nfunction resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: 'null' }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n}\n\nfunction normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n}\n\nfunction equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n}\n\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n //report missing host\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n components.port = undefined;\n }\n //normalize the empty path\n if (!components.path) {\n components.path = \"/\";\n }\n //NOTE: We do not parse query strings for HTTP URIs\n //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n //and not the HTTP spec.\n return components;\n }\n};\n\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length; x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders) mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n //convert Unicode IDN -> ASCII IDN\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length; x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n //convert IDN via punycode\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n};\n\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n};\n\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n //normalize UUID\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n};\n\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=uri.all.js.map\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n"],"names":["compareVersions","LATEST_VERSION","SCHEMAS","EXTENSIONS","itemAndCollection","classification","datacube","eo","file","label","pointcloud","processing","projection","raster","sar","sat","scientific","view","version","timestamps","catalog","collection","item","Object","assign","Ext","parseExtension","url","match","id","match2","V","extensions","set","stac","stac_version","Array","isArray","stac_extensions","ext","e","before","compare","comparator","compareTo","_","type","val","is","includes","isDefined","isObject","obj","rename","oldKey","newKey","copy","forAll","key","fn","i","toArray","flattenArray","newKeys","summary","value","flattenOneElementArray","length","removeFromArray","valueToRemove","index","indexOf","splice","pickFirst","ensure","defaultValue","upgradeExtension","context","extension","findIndex","old","addExtension","newExtension","push","sort","removeExtension","oldExtension","migrateExtensionShortnames","oldShortnames","keys","newSchemas","values","mapValues","populateExtensions","objectsToCheck","assets","concat","item_assets","summaries","properties","links","pop","forEach","bands","prefix","oldValues","newValues","map","mapObject","moveTo","fromSummary","mergedSummary","condition","runAll","migrations","startsWith","toUTC","this","toISOString","error","date","Date","replace","formatString","format","formatter","replaceAll","Checksum","multihash","hexToUint8","hexString","Error","Uint8Array","byte","parseInt","uint8ToHex","bytes","reduce","str","toString","padStart","toMultihash","algo","encoded","encode","console","warn","Catalog","migrate","updateVersionNumber","Collection","spatial","bbox","temporal","interval","extent","min","max","start","end","unshift","count","Math","union","fill","middle","c","collectionAssets","Asset","migrateAll","itemAsset","other_properties","prop","minimum","maximum","filter","v","a","b","find","link","rel","Fields","Item","geometry","commons","CollectionCollection","object","collections","ItemCollection","itemCollection","features","feature","field","asset","mediaTypes","Band","band","_commonMetadata","_timestamps","_versioningIndicator","checksum","o","description","cube","dtr","pc","proj","sci","table","Migrate","collectionCollection","license","enableMultihash","module","exports","root","factory","semver","indexOrEnd","q","split","patchIndex","arr","substring","tryParse","isNaN","Number","validate","TypeError","test","v1","v2","s1","s2","n1","n2","sp1","sp2","p1","p2","undefined","allowedOperators","operatorResMap","validateOperator","op","join","operator","res","_inheritsLoose","subClass","superClass","prototype","create","constructor","__proto__","codes","createErrorType","code","message","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","call","name","oneOf","expected","thing","len","String","slice","search","pos","substr","endsWith","this_len","actual","determiner","msg","arg","objectKeys","Duplex","Readable","Writable","method","options","allowHalfOpen","readable","writable","once","onend","_writableState","ended","process","nextTick","onEndNT","self","defineProperty","enumerable","get","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","chunk","encoding","cb","ReadableState","EElistenerCount","emitter","listeners","Stream","Buffer","OurUint8Array","g","window","_uint8ArrayToBuffer","from","_isUint8Array","isBuffer","debug","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","_require","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","prependListener","event","_events","on","stream","isDuplex","objectMode","readableObjectMode","buffer","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","read","_read","destroy","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","state","onEofChunk","chunkInvalid","getPrototypeOf","addChunk","write","maybeReadMore","emit","emitReadable","_undestroy","undestroy","err","isPaused","setEncoding","enc","p","head","content","data","next","clear","MAX_HWM","computeNewHighWaterMark","n","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","src","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","ret","shift","first","consume","endReadable","endReadableNT","wState","finished","xs","x","l","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","stderr","endFn","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","needDrain","pause","dests","ev","addListener","removeAllListeners","apply","arguments","wrap","_this","bind","Symbol","asyncIterator","_fromList","iterable","opts","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","_flush","prefinish","done","_write","err2","CorkedRequest","entry","finish","onCorkedFinish","WritableState","internalUtil","deprecate","realHasInstance","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","last","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","rState","endWritable","corkReq","current","out","hasInstance","Function","cork","uncork","setDefaultEncoding","toLowerCase","_Object$setPrototypeO","_defineProperty","_toPropertyKey","configurable","_toPrimitive","input","hint","prim","toPrimitive","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","resolve","onReadable","wrapForNext","lastPromise","reject","then","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","Promise","promise","_this2","_Object$create","iterator","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","target","source","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_require2","inspect","custom","copyBuffer","offset","tail","s","alloc","allocUnsafe","hasStrings","_getString","_getBuffer","nb","buf","depth","customInspect","readableDestroyed","writableDestroyed","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","ERR_STREAM_PREMATURE_CLOSE","called","_len","args","_key","noop","isRequest","setHeader","abort","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","ERR_MISSING_ARGS","destroyer","closed","to","popCallback","streams","pipeline","destroys","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","duplexKey","hwm","isFinite","floor","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","size","SlowBuffer","$TypeError","listGetNode","list","isDelete","curr","prev","listGet","objects","node","listSet","listHas","listDelete","$o","channel","assert","has","deletedNode","GetIntrinsic","callBound","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","result","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","getSideChannelWeakMap","makeChannel","$channelData","EE","inherits","_isStdio","didOnEnd","isEncoding","_normalizeEncoding","retried","normalizeEncoding","nenc","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckIncomplete","j","utf8CheckExtraBytes","r","utf8Text","total","utf8End","charCodeAt","global","merge","sets","xl","subexp","typeOf","toUpperCase","setInterval","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","NOT_SCHEME","RegExp","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","toConsumableArray","arr2","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","stringFromCharCode","fromCharCode","error$1","RangeError","array","mapDomain","string","parts","labels","ucs2decode","output","counter","extra","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","inputLength","bias","basic","lastIndexOf","oldi","w","t","baseMinusT","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_currentValue2","return","basicLength","handledCPCount","m","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","qMinusT","toUnicode","toASCII","punycode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","c2","_c","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","scheme","userinfo","host","path","query","fragment","_stripLeadingZeros","_normalizeIPv4","matches","_matches","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","acc","lastLongest","longestZeroFields","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","iri","reference","port","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","unescapeComponent","handler","secure","handler$1","isSecure","wsComponents","handler$2","resourceName","_wsComponents$resourc","_wsComponents$resourc2","handler$3","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_x","_xl","subject","body","_x2","_xl2","addr","toAddr","atIdx","localPart","domain","URN_PARSE","handler$5","urnComponents","nid","nss","urnScheme","uriComponents","UUID","handler$6","uuidComponents","uuid","Url","slashes","auth","hostname","hash","pathname","href","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","querystring","urlParse","parseQueryString","slashesDenoteHost","u","urlFormat","urlResolve","urlResolveObject","resolveObject","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","h","ae","esc","encodeURIComponent","escape","qm","stringify","arrayFormat","addQueryPrefix","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute"],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-vendors-8cbd2506.e713aa87.js b/js/chunk-vendors-8cbd2506.e713aa87.js deleted file mode 100644 index df3ad7d0..00000000 --- a/js/chunk-vendors-8cbd2506.e713aa87.js +++ /dev/null @@ -1,6 +0,0 @@ -(globalThis["webpackChunk_openeo_web_editor"]=globalThis["webpackChunk_openeo_web_editor"]||[]).push([[6937],{71321:(e,t,r)=>{var n=r(79139);const i="1.1.0",a={classification:"https://stac-extensions.github.io/classification/v2.0.0/schema.json",datacube:"https://stac-extensions.github.io/datacube/v2.2.0/schema.json",eo:"https://stac-extensions.github.io/eo/v2.0.0/schema.json",file:"https://stac-extensions.github.io/file/v2.1.0/schema.json","item-assets":"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json",label:"https://stac-extensions.github.io/label/v1.0.1/schema.json",pointcloud:"https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json",processing:"https://stac-extensions.github.io/processing/v1.2.0/schema.json",projection:"https://stac-extensions.github.io/projection/v2.0.0/schema.json",raster:"https://stac-extensions.github.io/raster/v2.0.0/schema.json",sar:"https://stac-extensions.github.io/sar/v1.0.0/schema.json",sat:"https://stac-extensions.github.io/sat/v1.0.0/schema.json",scientific:"https://stac-extensions.github.io/scientific/v1.0.0/schema.json",table:"https://stac-extensions.github.io/table/v1.2.0/schema.json",timestamps:"https://stac-extensions.github.io/timestamps/v1.1.0/schema.json",version:"https://stac-extensions.github.io/version/v1.2.0/schema.json",view:"https://stac-extensions.github.io/view/v1.0.0/schema.json"},o={itemAndCollection:{"classification:":a.classification,"cube:":a.datacube,"eo:":a.eo,"file:":a.file,"label:":a.label,"pc:":a.pointcloud,"processing:":a.processing,"proj:":a.projection,"raster:":a.raster,"sar:":a.sar,"sat:":a.sat,"sci:":a.scientific,"view:":a.view,version:a.version,deprecated:a.version,published:a.timestamps,expires:a.timestamps,unpublished:a.timestamps},catalog:{},collection:{},item:{}};o.collection=Object.assign(o.collection,o.itemAndCollection),o.item=Object.assign(o.item,o.itemAndCollection);var s={parseUrl(e){let t=e.match(/^https?:\/\/stac-extensions.github.io\/([^\/]+)\/v([^\/]+)\/[^.]+.json$/i);if(t)return{id:t[1],version:t[2]}}},l={version:i,extensions:{},set(e){if("string"!==typeof e.stac_version?l.version="0.6.0":l.version=e.stac_version,Array.isArray(e.stac_extensions))for(let t of e.stac_extensions){let e=s.parseUrl(t);e&&(l.extensions[e.id]=e.version)}},before(e,t=null){return l.compare("<",e,t)},compare(e,t,r=null){let i=r?l.extensions[r]:l.version;return"undefined"!==typeof i&&n.compare(i,t,e)}},u={type(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(Array.isArray(e))return"array"}return t},is(e,t){return Array.isArray(t)?t.includes(u.type(e)):u.type(e)===t},isDefined(e){return"undefined"!==typeof e},isObject(e){return"object"===typeof e&&e===Object(e)&&!Array.isArray(e)},rename(e,t,r){return"undefined"!==typeof e[t]&&"undefined"===typeof e[r]&&(e[r]=e[t],delete e[t],!0)},copy(e,t,r){return"undefined"!==typeof e[t]&&"undefined"===typeof e[r]&&(e[r]=e[t],!0)},forAll(e,t,r){if(e[t]&&"object"===typeof e[t])for(let n in e[t])r(e[t][n])},toArray(e,t){return"undefined"!==typeof e[t]&&!Array.isArray(e[t])&&(e[t]=[e[t]],!0)},flattenArray(e,t,r,n=!1){if(Array.isArray(e[t])){for(let i in e[t])if("string"===typeof r[i]){let a=e[t][i];e[r[i]]=n?[a]:a}return delete e[t],!0}return!1},flattenOneElementArray(e,t,r=!1){return!(!r&&Array.isArray(e[t]))||1===e[t].length&&(e[t]=e[t][0],!0)},removeFromArray(e,t,r){if(Array.isArray(e[t])){let n=e[t].indexOf(r);return n>-1&&e[t].splice(n,1),!0}return!1},pickFirst(e,t){return Array.isArray(e[t])&&e[t].length>0?(e[t]=e[t][0],!0):(delete e[t],!1)},ensure(e,t,r){return u.type(r)!==u.type(e[t])&&(e[t]=r),!0},upgradeExtension(e,t){let{id:r,version:i}=s.parseUrl(t),a=e.stac_extensions.findIndex((e=>{let t=s.parseUrl(e);return t&&t.id===r&&n.compare(t.version,i,"<")}));return-1!==a&&(e.stac_extensions[a]=t,!0)},addExtension(e,t){let{id:r,version:i}=s.parseUrl(t),a=e.stac_extensions.findIndex((e=>{if(e===t)return!0;let a=s.parseUrl(e);return!(!a||a.id!==r||!n.compare(a.version,i,"<"))}));return-1===a?e.stac_extensions.push(t):e.stac_extensions[a]=t,e.stac_extensions.sort(),!0},removeExtension(e,t){return u.removeFromArray(e,"stac_extensions",t)},migrateExtensionShortnames(e){let t=Object.keys(a),r=Object.values(a);return u.mapValues(e,"stac_extensions",t,r)},populateExtensions(e,t){let r,n=[];"catalog"!=t&&"collection"!=t||n.push(e),"item"!=t&&"collection"!=t||!u.isObject(e.assets)||(n=n.concat(Object.values(e.assets))),"collection"==t&&u.isObject(e.item_assets)&&(n=n.concat(Object.values(e.item_assets))),"collection"==t&&u.isObject(e.summaries)&&n.push(e.summaries),"item"==t&&u.isObject(e.properties)&&n.push(e.properties),n.push(e.links);while(r=n.pop())Object.keys(r).forEach((i=>{Array.isArray(r.bands)&&(n=n.concat(r.bands));let a=i.match(/^(\w+:|[^:]+$)/i);if(Array.isArray(a)){let r=o[t][a[0]];u.is(r,"string")&&u.addExtension(e,r)}}))},mapValues(e,t,r,n){let i=e=>{let t=r.indexOf(e);return t>=0?n[t]:e};return Array.isArray(e[t])?e[t]=e[t].map(i):"undefined"!==typeof e[t]&&(e[t]=i(e[t])),!0},mapObject(e,t){for(let r in e)e[r]=t(e[r],r)},moveTo(e,t,r,n=!1,i=!1){let a;return a=n?i?e=>Array.isArray(e):e=>Array.isArray(e)&&1===e.length:u.isDefined,!!a(e[t])&&(r[t]=n&&!i?e[t][0]:e[t],delete e[t],!0)},runAll(e,t,r,n){for(let i in e)i.startsWith("migrate")||e[i](t,r,n)},toUTC(e,t){if(u.is(e[t],"string"))try{return e[t]=this.toISOString(e[t]),!0}catch(r){}return delete e[t],!1},toISOString(e){return e instanceof Date||(e=new Date(e)),e.toISOString().replace(/\.0+/,"")},formatString(e,t,r){const n=e=>u.is(e,["string","number"])?r.replaceAll("{}",e):e;Array.isArray(e[t])?e[t]=e[t].map(n):e[t]=n(e[t])}},h={multihash:null,hexToUint8(e){if(0===e.length||e.length%2!==0)throw new Error(`The string "${e}" is not valid hex.`);return new Uint8Array(e.match(/.{1,2}/g).map((e=>parseInt(e,16))))},uint8ToHex(e){return e.reduce(((e,t)=>e+t.toString(16).padStart(2,"0")),"")},toMultihash(e,t,r){if(!h.multihash||!u.is(e[t],"string"))return!1;try{const n=h.multihash.encode(h.hexToUint8(e[t]),r);return e[t]=h.uint8ToHex(n),!0}catch(n){return console.warn(n),!1}}},c={migrate(e,t=!0){return l.set(e),t&&(e.stac_version=i),e.type="Catalog",u.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&u.migrateExtensionShortnames(e),u.ensure(e,"id",""),u.ensure(e,"description",""),u.ensure(e,"links",[]),u.runAll(c,e,e),l.before("0.8.0")&&u.populateExtensions(e,"catalog"),e}},f={migrate(e,t=!0){return c.migrate(e,t),e.type="Collection",l.before("1.0.0-rc.1")&&u.migrateExtensionShortnames(e),u.ensure(e,"license","other"),u.ensure(e,"extent",{spatial:{bbox:[]},temporal:{interval:[]}}),u.runAll(f,e,e),u.isObject(e.properties)&&(u.removeFromArray(e,"stac_extensions","commons"),delete e.properties),l.before("0.8.0")&&u.populateExtensions(e,"collection"),l.before("1.0.0-beta.1")&&u.mapValues(e,"stac_extensions",["assets"],["item-assets"]),e},extent(e){if(u.ensure(e,"extent",{}),l.before("0.8.0")&&(Array.isArray(e.extent.spatial)&&(e.extent.spatial={bbox:[e.extent.spatial]}),Array.isArray(e.extent.temporal)&&(e.extent.temporal={interval:[e.extent.temporal]})),u.ensure(e.extent,"spatial",{}),u.ensure(e.extent.spatial,"bbox",[]),u.ensure(e.extent,"temporal",{}),u.ensure(e.extent.temporal,"interval",[]),l.before("1.0.0-rc.3")){if(e.extent.temporal.interval.length>1){let r,n;for(let i of e.extent.temporal.interval){if(null===i[0])r=null;else if("string"===typeof i[0]&&null!==r)try{let e=new Date(i[0]);("undefined"===typeof r||en)&&(n=e)}catch(t){}}e.extent.temporal.interval.unshift([r?u.toISOString(r):null,n?u.toISOString(n):null])}if(e.extent.spatial.bbox.length>1){let t=e.extent.spatial.bbox.reduce(((e,t)=>Array.isArray(t)?Math.max(t.length,e):e),4);if(t>=4){let r=new Array(t).fill(null),n=t/2;for(let t of e.extent.spatial.bbox){if(!Array.isArray(t)||t.length<4)break;for(let e in t){let i=t[e];null===r[e]?r[e]=i:r[e]=enull===e))&&e.extent.spatial.bbox.unshift(r)}}}},collectionAssets(e){l.before("1.0.0-rc.1")&&u.removeExtension(e,"collection-assets"),g.migrateAll(e)},itemAsset(e){l.before("1.0.0-beta.2")&&u.rename(e,"item_assets","assets"),u.removeExtension(e,a["item-assets"]),g.migrateAll(e,"item_assets")},summaries(e){if(u.ensure(e,"summaries",{}),l.before("0.8.0")&&u.isObject(e.other_properties)){for(let t in e.other_properties){let r=e.other_properties[t];Array.isArray(r.extent)&&2===r.extent.length?e.summaries[t]={minimum:r.extent[0],maximum:r.extent[1]}:Array.isArray(r.values)&&(r.values.filter((e=>Array.isArray(e))).length===r.values.length?e.summaries[t]=r.values.reduce(((e,t)=>e.concat(t)),[]):e.summaries[t]=r.values)}delete e.other_properties}if(l.before("1.0.0-beta.1")&&u.isObject(e.properties)&&!e.links.find((e=>["child","item"].includes(e.rel))))for(let t in e.properties){let r=e.properties[t];Array.isArray(r)||(r=[r]),e.summaries[t]=r}l.before("1.0.0-rc.1")&&u.mapObject(e.summaries,(e=>(u.rename(e,"min","minimum"),u.rename(e,"max","maximum"),e))),v.migrate(e.summaries,e,!0),u.moveTo(e.summaries,"sci:doi",e,!0)&&u.addExtension(e,a.scientific),u.moveTo(e.summaries,"sci:publications",e,!0,!0)&&u.addExtension(e,a.scientific),u.moveTo(e.summaries,"sci:citation",e,!0)&&u.addExtension(e,a.scientific),u.moveTo(e.summaries,"cube:dimensions",e,!0)&&u.addExtension(e,a.datacube),0===Object.keys(e.summaries).length&&delete e.summaries}},d={migrate(e,t=null,r=!0){l.set(e),r&&(e.stac_version=i),u.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&u.migrateExtensionShortnames(e),u.ensure(e,"id",""),u.ensure(e,"type","Feature"),u.isObject(e.geometry)||(e.geometry=null),null!==e.geometry&&u.ensure(e,"bbox",[]),u.ensure(e,"properties",{}),u.ensure(e,"links",[]),u.ensure(e,"assets",{});let n=!1;return u.isObject(t)&&u.isObject(t.properties)&&(u.removeFromArray(e,"stac_extensions","commons"),e.properties=Object.assign({},t.properties,e.properties),n=!0),u.runAll(d,e,e),v.migrate(e.properties,e),g.migrateAll(e),(l.before("0.8.0")||n)&&u.populateExtensions(e,"item"),e}},p={migrate(e,t=!0){return u.ensure(e,"collections",[]),u.ensure(e,"links",[]),u.runAll(p,e,e),e.collections=e.collections.map((e=>f.migrate(e,t))),e}},m={migrate(e,t=!0){return u.ensure(e,"type","FeatureCollection"),u.ensure(e,"features",[]),u.ensure(e,"links",[]),u.runAll(m,e,e),e.features=e.features.map((e=>d.migrate(e,null,t))),e}},g={migrateAll(e,t="assets"){for(let r in e[t])g.migrate(e[t][r],e)},migrate(e,t){return u.runAll(g,e,t),v.migrate(e,t),e},mediaTypes(e){u.is(e.type,"string")&&u.mapValues(e,"type",["image/vnd.stac.geotiff","image/vnd.stac.geotiff; cloud-optimized=true"],["image/tiff; application=geotiff","image/tiff; application=geotiff; profile=cloud-optimized"])}},b={migrateAll(e,t){if(l.before("1.0.0")){const r=u.isObject(t.properties)&&Array.isArray(t.properties.bands)?t.properties.bands:[];if(Array.isArray(e["eo:bands"]))for(let t in e["eo:bands"]){let n=e["eo:bands"][t];u.is(n,"number")&&u.isObject(r[n])&&(n=r[n]),u.isObject(n)||(n={}),e["eo:bands"][t]=n}}if(l.before("1.1.0-beta.1")&&(Array.isArray(e["raster:bands"])||Array.isArray(e["eo:bands"]))){u.ensure(e,"bands",[]);const r=e["raster:bands"]||[],n=e["eo:bands"]||[],i=Math.max(r.length,n.length);for(let a=0;au.rename(e,"color-hint","color_hint"))),l.before("2.0.0","classification")&&u.forAll(e,"classification:classes",(e=>u.ensure(e,"name",e.description))),u.upgradeExtension(t,a.classification)},cube(e,t){u.upgradeExtension(t,a.datacube)},dtr(e,t){l.before("0.9.0")&&(u.rename(e,"dtr:start_datetime","start_datetime"),u.rename(e,"dtr:end_datetime","end_datetime"),u.removeExtension(t,"datetime-range"))},eo(e,t){l.before("0.9.0")&&(u.rename(e,"eo:epsg","proj:epsg")&&u.addExtension(t,a.projection),u.rename(e,"eo:platform","platform"),u.rename(e,"eo:instrument","instruments")&&u.toArray(e,"instruments"),u.rename(e,"eo:constellation","constellation"),u.rename(e,"eo:off_nadir","view:off_nadir")&&u.addExtension(t,a.view),u.rename(e,"eo:azimuth","view:azimuth")&&u.addExtension(t,a.view),u.rename(e,"eo:incidence_angle","view:incidence_angle")&&u.addExtension(t,a.view),u.rename(e,"eo:sun_azimuth","view:sun_azimuth")&&u.addExtension(t,a.view),u.rename(e,"eo:sun_elevation","view:sun_elevation")&&u.addExtension(t,a.view)),l.before("1.0.0-beta.1")&&u.rename(e,"eo:gsd","gsd"),u.upgradeExtension(t,a.eo)},file(e,t,r){u.rename(e,"file:bits_per_sample","raster:bits_per_sample")&&u.addExtension(t,a.raster),u.rename(e,"file:data_type","data_type")&&u.addExtension(t,a.raster),u.rename(e,"file:unit","unit")&&u.addExtension(t,a.raster),Array.isArray(e["file:nodata"])&&e["file:nodata"].length>1&&u.copy(e,"file:nodata","nodata:values"),u.rename(e,"file:nodata","nodata")&&!r&&u.pickFirst(e,"nodata"),u.upgradeExtension(t,a.file)},label(e,t){l.before("0.8.0")&&(u.rename(e,"label:property","label:properties"),u.rename(e,"label:task","label:tasks"),u.rename(e,"label:overview","label:overviews")&&u.toArray(e,"label:overviews"),u.rename(e,"label:method","label:methods"),u.toArray(e,"label:classes")),u.upgradeExtension(t,a.label)},pc(e,t){l.before("0.8.0")&&u.rename(e,"pc:schema","pc:schemas"),u.upgradeExtension(t,a.pointcloud)},processing(e,t){u.upgradeExtension(t,a.processing)},proj(e,t){u.rename(e,"proj:epsg","proj:code")&&u.formatString(e,"proj:code","EPSG:{}"),u.upgradeExtension(t,a.projection)},raster(e,t){u.upgradeExtension(t,a.raster)},sar(e,t,r){u.rename(e,"sar:incidence_angle","view:incidence_angle")&&u.addExtension(t,a.view),u.rename(e,"sar:pass_direction","sat:orbit_state")&&u.mapValues(e,"sat:orbit_state",[null],["geostationary"])&&u.addExtension(t,a.sat),l.before("0.7.0")&&(u.flattenArray(e,"sar:resolution",["sar:resolution_range","sar:resolution_azimuth"],r),u.flattenArray(e,"sar:pixel_spacing",["sar:pixel_spacing_range","sar:pixel_spacing_azimuth"],r),u.flattenArray(e,"sar:looks",["sar:looks_range","sar:looks_azimuth","sar:looks_equivalent_number"],r),u.rename(e,"sar:off_nadir","view:off_nadir")&&u.addExtension(t,a.view)),l.before("0.9.0")&&(u.rename(e,"sar:platform","platform"),u.rename(e,"sar:instrument","instruments")&&u.toArray(e,"instruments"),u.rename(e,"sar:constellation","constellation"),u.rename(e,"sar:type","sar:product_type"),u.rename(e,"sar:polarization","sar:polarizations"),u.flattenOneElementArray(e,"sar:absolute_orbit",r)&&u.rename(e,"sar:absolute_orbit","sat:absolute_orbit")&&u.addExtension(t,a.sat),u.flattenOneElementArray(e,"sar:relative_orbit",r)&&u.rename(e,"sar:relative_orbit","sat:relative_orbit")&&u.addExtension(t,a.sat)),u.upgradeExtension(t,a.sar)},sat(e,t){l.before("0.9.0")&&(u.rename(e,"sat:off_nadir_angle","sat:off_nadir"),u.rename(e,"sat:azimuth_angle","sat:azimuth"),u.rename(e,"sat:sun_azimuth_angle","sat:sun_azimuth"),u.rename(e,"sat:sun_elevation_angle","sat:sun_elevation")),u.upgradeExtension(t,a.sat)},sci(e,t){u.upgradeExtension(t,a.scientific)},item(e){l.before("0.8.0")&&(u.rename(e,"item:license","license"),u.rename(e,"item:providers","providers"))},table(e,t){u.upgradeExtension(t,a.table)},view(e,t){u.upgradeExtension(t,a.view)}},y={item(e,t=null,r=!0){return d.migrate(e,t,r)},catalog(e,t=!0){return c.migrate(e,t)},collection(e,t=!0){return f.migrate(e,t)},collectionCollection(e,t=!0){return p.migrate(e,t)},itemCollection(e,t=!0){return m.migrate(e,t)},stac(e,t=!0){return"Feature"===e.type?y.item(e,null,t):"FeatureCollection"===e.type?y.itemCollection(e,t):"Collection"===e.type||!e.type&&u.isDefined(e.extent)&&u.isDefined(e.license)?y.collection(e,t):!e.type&&Array.isArray(e.collections)?y.collectionCollection(e,t):y.catalog(e,t)},enableMultihash(e){h.multihash=e}};e.exports=y},79139:function(e,t){var r,n,i;(function(a,o){n=[],r=o,i="function"===typeof r?r.apply(t,n):r,void 0===i||(e.exports=i)})(0,(function(){var e=/^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;function t(e,t){return-1===e.indexOf(t)?e.length:e.indexOf(t)}function r(e){var r=e.replace(/^v/,"").replace(/\+.*$/,""),n=t(r,"-"),i=r.substring(0,n).split(".");return i.push(r.substring(n+1)),i}function n(e){return isNaN(Number(e))?e:Number(e)}function i(t){if("string"!==typeof t)throw new TypeError("Invalid argument expected string");if(!e.test(t))throw new Error("Invalid argument not valid semver ('"+t+"' received)")}function a(e,t){[e,t].forEach(i);for(var a=r(e),o=r(t),s=0;su)return 1;if(u>l)return-1}var h=a[a.length-1],c=o[o.length-1];if(h&&c){var f=h.split(".").map(n),d=c.split(".").map(n);for(s=0;sd[s])return 1;if(d[s]>f[s])return-1}}else if(h||c)return h?-1:1;return 0}var o=[">",">=","=","<","<="],s={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};function l(e){if("string"!==typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===o.indexOf(e))throw new TypeError("Invalid operator, expected one of "+o.join("|"))}return a.validate=function(t){return"string"===typeof t&&e.test(t)},a.compare=function(e,t,r){l(r);var n=a(e,t);return s[r].indexOf(n)>-1},a}))},86048:e=>{"use strict";function t(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var r={};function n(e,n,i){function a(e,t,r){return"string"===typeof n?n:n(e,t,r)}i||(i=Error);var o=function(e){function r(t,r,n){return e.call(this,a(t,r,n))||this}return t(r,e),r}(i);o.prototype.name=i.name,o.prototype.code=e,r[e]=o}function i(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}function a(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function o(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function s(e,t,r){return"number"!==typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,r){var n,l;if("string"===typeof t&&a(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be",o(e," argument"))l="The ".concat(e," ").concat(n," ").concat(i(t,"type"));else{var u=s(e,".")?"property":"argument";l='The "'.concat(e,'" ').concat(u," ").concat(n," ").concat(i(t,"type"))}return l+=". Received type ".concat(typeof r),l}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.F=r},25382:(e,t,r)=>{"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=u;var i=r(45412),a=r(16708);r(56698)(u,i);for(var o=n(a.prototype),s=0;s{"use strict";e.exports=i;var n=r(74610);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(56698)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},45412:(e,t,r)=>{"use strict";var n;e.exports=O,O.ReadableState=C;r(37007).EventEmitter;var i=function(e,t){return e.listeners(t).length},a=r(40345),o=r(48287).Buffer,s=("undefined"!==typeof r.g?r.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function l(e){return o.from(e)}function u(e){return o.isBuffer(e)||e instanceof s}var h,c=r(79838);h=c&&c.debuglog?c.debuglog("stream"):function(){};var f,d,p,m=r(80345),g=r(75896),b=r(65291),v=b.getHighWaterMark,y=r(86048).F,w=y.ERR_INVALID_ARG_TYPE,_=y.ERR_STREAM_PUSH_AFTER_EOF,E=y.ERR_METHOD_NOT_IMPLEMENTED,S=y.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(56698)(O,a);var x=g.errorOrDestroy,A=["error","close","destroy","pause","resume"];function R(e,t,r){if("function"===typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}function C(e,t,i){n=n||r(25382),e=e||{},"boolean"!==typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=v(this,e,"readableHighWaterMark",i),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=r(83141).I),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function O(e){if(n=n||r(25382),!(this instanceof O))return new O(e);var t=this instanceof n;this._readableState=new C(e,this,t),this.readable=!0,e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function T(e,t,r,n,i){h("readableAddChunk",t);var a,s=e._readableState;if(null===t)s.reading=!1,P(e,s);else if(i||(a=k(s,t)),a)x(e,a);else if(s.objectMode||t&&t.length>0)if("string"===typeof t||s.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=l(t)),n)s.endEmitted?x(e,new S):j(e,s,t,!0);else if(s.ended)x(e,new _);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||0!==t.length?j(e,s,t,!1):F(e,s)):j(e,s,t,!1)}else n||(s.reading=!1,F(e,s));return!s.ended&&(s.length=M?e=M:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function N(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=D(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function P(e,t){if(h("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?I(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,L(e)))}}function I(e){var t=e._readableState;h("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(L,e))}function L(e){var t=e._readableState;h("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,V(e)}function F(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(U,e,t))}function U(e,t){while(!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function W(e){h("readable nexttick read 0"),e.read(0)}function z(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(B,e,t))}function B(e,t){h("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),V(e),t.flowing&&!t.reading&&e.read(0)}function V(e){var t=e._readableState;h("flow",t.flowing);while(t.flowing&&null!==e.read());}function $(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function G(e){var t=e._readableState;h("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(Y,t,e))}function Y(e,t){if(h("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function Z(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?G(this):I(this),null;if(e=N(e,t),0===e&&t.ended)return 0===t.length&&G(this),null;var n,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?$(e,t):null,null===n?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&G(this)),null!==n&&this.emit("data",n),n},O.prototype._read=function(e){x(this,new E("_read()"))},O.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,h("pipe count=%d opts=%j",n.pipesCount,t);var a=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr,o=a?l:b;function s(e,t){h("onunpipe"),e===r&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,f())}function l(){h("onend"),e.end()}n.endEmitted?process.nextTick(o):r.once("end",o),e.on("unpipe",s);var u=q(r);e.on("drain",u);var c=!1;function f(){h("cleanup"),e.removeListener("close",m),e.removeListener("finish",g),e.removeListener("drain",u),e.removeListener("error",p),e.removeListener("unpipe",s),r.removeListener("end",l),r.removeListener("end",b),r.removeListener("data",d),c=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||u()}function d(t){h("ondata");var i=e.write(t);h("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==Z(n.pipes,e))&&!c&&(h("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function p(t){h("onerror",t),b(),e.removeListener("error",p),0===i(e,"error")&&x(e,t)}function m(){e.removeListener("finish",g),b()}function g(){h("onfinish"),e.removeListener("close",m),b()}function b(){h("unpipe"),r.unpipe(e)}return r.on("data",d),R(e,"error",p),e.once("close",m),e.once("finish",g),e.emit("pipe",r),n.flowing||(h("pipe resume"),r.resume()),e},O.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,h("on readable",n.length,n.reading),n.length?I(this):n.reading||process.nextTick(W,this))),r},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(e,t){var r=a.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(H,this),r},O.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(H,this),t},O.prototype.resume=function(){var e=this._readableState;return e.flowing||(h("resume"),e.flowing=!e.readableListening,z(this,e)),e.paused=!1,this},O.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},O.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(h("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){if(h("wrapped data"),r.decoder&&(i=r.decoder.write(i)),(!r.objectMode||null!==i&&void 0!==i)&&(r.objectMode||i&&i.length)){var a=t.push(i);a||(n=!0,e.pause())}})),e)void 0===this[i]&&"function"===typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a{"use strict";e.exports=h;var n=r(86048).F,i=n.ERR_METHOD_NOT_IMPLEMENTED,a=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,l=r(25382);function u(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new a);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){B(t,e)}}var i;e.exports=C,C.WritableState=R;var a={deprecate:r(94643)},o=r(40345),s=r(48287).Buffer,l=("undefined"!==typeof r.g?r.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};function u(e){return s.from(e)}function h(e){return s.isBuffer(e)||e instanceof l}var c,f=r(75896),d=r(65291),p=d.getHighWaterMark,m=r(86048).F,g=m.ERR_INVALID_ARG_TYPE,b=m.ERR_METHOD_NOT_IMPLEMENTED,v=m.ERR_MULTIPLE_CALLBACK,y=m.ERR_STREAM_CANNOT_PIPE,w=m.ERR_STREAM_DESTROYED,_=m.ERR_STREAM_NULL_VALUES,E=m.ERR_STREAM_WRITE_AFTER_END,S=m.ERR_UNKNOWN_ENCODING,x=f.errorOrDestroy;function A(){}function R(e,t,a){i=i||r(25382),e=e||{},"boolean"!==typeof a&&(a=t instanceof i),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=p(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){P(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function C(e){i=i||r(25382);var t=this instanceof i;if(!t&&!c.call(C,this))return new C(e);this._writableState=new R(e,this,t),this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.final&&(this._final=e.final)),o.call(this)}function O(e,t){var r=new E;x(e,r),process.nextTick(t,r)}function T(e,t,r,n){var i;return null===r?i=new _:"string"===typeof r||t.objectMode||(i=new g("chunk",["string","Buffer"],r)),!i||(x(e,i),process.nextTick(n,i),!1)}function j(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=s.from(t,r)),t}function k(e,t,r,n,i,a){if(!r){var o=j(t,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length-1))throw new S(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(C.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(C.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),C.prototype._write=function(e,t,r){r(new b("_write()"))},C.prototype._writev=null,C.prototype.end=function(e,t,r){var n=this._writableState;return"function"===typeof e?(r=e,e=null,t=null):"function"===typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||z(this,n,r),this},Object.defineProperty(C.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(C.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),C.prototype.destroy=f.destroy,C.prototype._undestroy=f.undestroy,C.prototype._destroy=function(e,t){t(e)}},2955:(e,t,r)=>{"use strict";var n;function i(e,t,r){return t=a(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){var t=o(e,"string");return"symbol"===typeof t?t:String(t)}function o(e,t){if("object"!==typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var s=r(86238),l=Symbol("lastResolve"),u=Symbol("lastReject"),h=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),d=Symbol("handlePromise"),p=Symbol("stream");function m(e,t){return{value:e,done:t}}function g(e){var t=e[l];if(null!==t){var r=e[p].read();null!==r&&(e[f]=null,e[l]=null,e[u]=null,t(m(r,!1)))}}function b(e){process.nextTick(g,e)}function v(e,t){return function(r,n){e.then((function(){t[c]?r(m(void 0,!0)):t[d](r,n)}),n)}}var y=Object.getPrototypeOf((function(){})),w=Object.setPrototypeOf((n={get stream(){return this[p]},next:function(){var e=this,t=this[h];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(m(void 0,!0));if(this[p].destroyed)return new Promise((function(t,r){process.nextTick((function(){e[h]?r(e[h]):t(m(void 0,!0))}))}));var r,n=this[f];if(n)r=new Promise(v(n,this));else{var i=this[p].read();if(null!==i)return Promise.resolve(m(i,!1));r=new Promise(this[d])}return this[f]=r,r}},i(n,Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[p].destroy(null,(function(e){e?r(e):t(m(void 0,!0))}))}))})),n),y),_=function(e){var t,r=Object.create(w,(t={},i(t,p,{value:e,writable:!0}),i(t,l,{value:null,writable:!0}),i(t,u,{value:null,writable:!0}),i(t,h,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,d,{value:function(e,t){var n=r[p].read();n?(r[f]=null,r[l]=null,r[u]=null,e(m(n,!1))):(r[l]=e,r[u]=t)},writable:!0}),t));return r[f]=null,s(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[u];return null!==t&&(r[f]=null,r[l]=null,r[u]=null,t(e)),void(r[h]=e)}var n=r[l];null!==n&&(r[f]=null,r[l]=null,r[u]=null,n(m(void 0,!0))),r[c]=!0})),e.on("readable",b.bind(null,r)),r};e.exports=_},80345:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";var t=this.head,r=""+t.data;while(t=t.next)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return f.alloc(0);var t=f.allocUnsafe(e>>>0),r=this.head,n=0;while(r)g(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(a===i.length?n+=i:n+=i.slice(0,e),e-=a,0===e){a===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=f.allocUnsafe(e),r=this.head,n=1;r.data.copy(t),e-=r.data.length;while(r=r.next){var i=r.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),e-=a,0===e){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,t}},{key:m,value:function(e,t){return p(this,i(i({},t),{},{depth:0,customInspect:!1}))}}]),e}()},75896:e=>{"use strict";function t(e,t){var i=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(a,this,e)):process.nextTick(a,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?i._writableState?i._writableState.errorEmitted?process.nextTick(n,i):(i._writableState.errorEmitted=!0,process.nextTick(r,i,e)):process.nextTick(r,i,e):t?(process.nextTick(n,i),t(e)):process.nextTick(n,i)})),this)}function r(e,t){a(e,t),n(e)}function n(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(e,t){e.emit("error",t)}function o(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}e.exports={destroy:t,undestroy:i,errorOrDestroy:o}},86238:(e,t,r)=>{"use strict";var n=r(86048).F.ERR_STREAM_PREMATURE_CLOSE;function i(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},57758:(e,t,r)=>{"use strict";var n;function i(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var a=r(86048).F,o=a.ERR_MISSING_ARGS,s=a.ERR_STREAM_DESTROYED;function l(e){if(e)throw e}function u(e){return e.setHeader&&"function"===typeof e.abort}function h(e,t,a,o){o=i(o);var l=!1;e.on("close",(function(){l=!0})),void 0===n&&(n=r(86238)),n(e,{readable:t,writable:a},(function(e){if(e)return o(e);l=!0,o()}));var h=!1;return function(t){if(!l&&!h)return h=!0,u(e)?e.abort():"function"===typeof e.destroy?e.destroy():void o(t||new s("pipe"))}}function c(e){e()}function f(e,t){return e.pipe(t)}function d(e){return e.length?"function"!==typeof e[e.length-1]?l:e.pop():l}function p(){for(var e=arguments.length,t=new Array(e),r=0;r0;return h(e,o,s,(function(e){n||(n=e),e&&a.forEach(c),o||(a.forEach(c),i(n))}))}));return t.reduce(f)}e.exports=p},65291:(e,t,r)=>{"use strict";var n=r(86048).F.ERR_INVALID_OPT_VALUE;function i(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}function a(e,t,r,a){var o=i(t,a,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0){var s=a?r:"highWaterMark";throw new n(s,o)}return Math.floor(o)}return e.objectMode?16:16384}e.exports={getHighWaterMark:a}},40345:(e,t,r)=>{e.exports=r(37007).EventEmitter},92861:(e,t,r)=>{ -/*! safe-buffer. MIT License. Feross Aboukhadijeh */ -var n=r(48287),i=n.Buffer;function a(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(a(n,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,r){if("number"===typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!==typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"===typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},14803:(e,t,r)=>{"use strict";var n=r(58859),i=r(69675),a=function(e,t,r){for(var n,i=e;null!=(n=i.next);i=n)if(n.key===t)return i.next=n.next,r||(n.next=e.next,e.next=n),n},o=function(e,t){if(e){var r=a(e,t);return r&&r.value}},s=function(e,t,r){var n=a(e,t);n?n.value=r:e.next={key:t,next:e.next,value:r}},l=function(e,t){return!!e&&!!a(e,t)},u=function(e,t){if(e)return a(e,t,!0)};e.exports=function(){var e,t={assert:function(e){if(!t.has(e))throw new i("Side channel does not contain "+n(e))},delete:function(t){var r=e&&e.next,n=u(e,t);return n&&r&&r===n&&(e=void 0),!!n},get:function(t){return o(e,t)},has:function(t){return l(e,t)},set:function(t,r){e||(e={next:void 0}),s(e,t,r)}};return t}},80507:(e,t,r)=>{"use strict";var n=r(70453),i=r(36556),a=r(58859),o=r(69675),s=n("%Map%",!0),l=i("Map.prototype.get",!0),u=i("Map.prototype.set",!0),h=i("Map.prototype.has",!0),c=i("Map.prototype.delete",!0),f=i("Map.prototype.size",!0);e.exports=!!s&&function(){var e,t={assert:function(e){if(!t.has(e))throw new o("Side channel does not contain "+a(e))},delete:function(t){if(e){var r=c(e,t);return 0===f(e)&&(e=void 0),r}return!1},get:function(t){if(e)return l(e,t)},has:function(t){return!!e&&h(e,t)},set:function(t,r){e||(e=new s),u(e,t,r)}};return t}},72271:(e,t,r)=>{"use strict";var n=r(70453),i=r(36556),a=r(58859),o=r(80507),s=r(69675),l=n("%WeakMap%",!0),u=i("WeakMap.prototype.get",!0),h=i("WeakMap.prototype.set",!0),c=i("WeakMap.prototype.has",!0),f=i("WeakMap.prototype.delete",!0);e.exports=l?function(){var e,t,r={assert:function(e){if(!r.has(e))throw new s("Side channel does not contain "+a(e))},delete:function(r){if(l&&r&&("object"===typeof r||"function"===typeof r)){if(e)return f(e,r)}else if(o&&t)return t["delete"](r);return!1},get:function(r){return l&&r&&("object"===typeof r||"function"===typeof r)&&e?u(e,r):t&&t.get(r)},has:function(r){return l&&r&&("object"===typeof r||"function"===typeof r)&&e?c(e,r):!!t&&t.has(r)},set:function(r,n){l&&r&&("object"===typeof r||"function"===typeof r)?(e||(e=new l),h(e,r,n)):o&&(t||(t=o()),t.set(r,n))}};return r}:o},920:(e,t,r)=>{"use strict";var n=r(69675),i=r(58859),a=r(14803),o=r(80507),s=r(72271),l=s||o||a;e.exports=function(){var e,t={assert:function(e){if(!t.has(e))throw new n("Side channel does not contain "+i(e))},delete:function(t){return!!e&&e["delete"](t)},get:function(t){return e&&e.get(t)},has:function(t){return!!e&&e.has(t)},set:function(t,r){e||(e=l()),e.set(t,r)}};return t}},88310:(e,t,r)=>{e.exports=a;var n=r(37007).EventEmitter,i=r(56698);function a(){n.call(this)}i(a,n),a.Readable=r(45412),a.Writable=r(16708),a.Duplex=r(25382),a.Transform=r(74610),a.PassThrough=r(63600),a.finished=r(86238),a.pipeline=r(57758),a.Stream=a,a.prototype.pipe=function(e,t){var r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function a(){r.readable&&r.resume&&r.resume()}r.on("data",i),e.on("drain",a),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",l));var o=!1;function s(){o||(o=!0,e.end())}function l(){o||(o=!0,"function"===typeof e.destroy&&e.destroy())}function u(e){if(h(),0===n.listenerCount(this,"error"))throw e}function h(){r.removeListener("data",i),e.removeListener("drain",a),r.removeListener("end",s),r.removeListener("close",l),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",h),r.removeListener("close",h),e.removeListener("close",h)}return r.on("error",u),e.on("error",u),r.on("end",h),r.on("close",h),e.on("close",h),e.emit("pipe",r),e}},83141:(e,t,r)=>{"use strict";var n=r(92861).Buffer,i=n.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){if(!e)return"utf8";var t;while(1)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function o(e){var t=a(e);if("string"!==typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}function s(e){var t;switch(this.encoding=o(e),this.encoding){case"utf16le":this.text=p,this.end=m,t=4;break;case"utf8":this.fillLast=c,t=4;break;case"base64":this.text=g,this.end=b,t=3;break;default:return this.write=v,void(this.end=y)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function l(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function u(e,t,r){var n=t.length-1;if(n=0?(i>0&&(e.lastNeed=i-1),i):--n=0?(i>0&&(e.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function h(e,t,r){if(128!==(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�"}}function c(e){var t=this.lastTotal-this.lastNeed,r=h(this,e,t);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function f(e,t){var r=u(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function p(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function m(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function g(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function b(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}t.I=s,s.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=d-p,R=Math.floor,C=String.fromCharCode;function O(e){throw new RangeError(x[e])}function T(e,t){var r=[],n=e.length;while(n--)r[n]=t(e[n]);return r}function j(e,t){var r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(S,".");var i=e.split("."),a=T(i,t).join(".");return n+a}function k(e){var t=[],r=0,n=e.length;while(r=55296&&i<=56319&&r>1,e+=R(e/t);e>A*m>>1;n+=d)e=R(e/A);return R(n+(A+1)*e/(e+g))},I=function(e){var t=[],r=e.length,n=0,i=y,a=v,o=e.lastIndexOf(w);o<0&&(o=0);for(var s=0;s=128&&O("not-basic"),t.push(e.charCodeAt(s));for(var l=o>0?o+1:0;l=r&&O("invalid-input");var g=D(e.charCodeAt(l++));(g>=d||g>R((f-n)/h))&&O("overflow"),n+=g*h;var b=c<=a?p:c>=a+m?m:c-a;if(gR(f/_)&&O("overflow"),h*=_}var E=t.length+1;a=P(n-u,E,0==u),R(n/E)>f-i&&O("overflow"),i+=R(n/E),n%=E,t.splice(n++,0,i)}return String.fromCodePoint.apply(String,t)},L=function(e){var t=[];e=k(e);var r=e.length,n=y,i=0,a=v,o=!0,s=!1,l=void 0;try{for(var u,h=e[Symbol.iterator]();!(o=(u=h.next()).done);o=!0){var c=u.value;c<128&&t.push(C(c))}}catch($){s=!0,l=$}finally{try{!o&&h.return&&h.return()}finally{if(s)throw l}}var g=t.length,b=g;g&&t.push(w);while(b=n&&j<_&&(_=j)}}catch($){S=!0,x=$}finally{try{!E&&T.return&&T.return()}finally{if(S)throw x}}var M=b+1;_-n>R((f-i)/M)&&O("overflow"),i+=(_-n)*M,n=_;var D=!0,I=!1,L=void 0;try{for(var F,U=e[Symbol.iterator]();!(D=(F=U.next()).done);D=!0){var q=F.value;if(qf&&O("overflow"),q==n){for(var H=i,W=d;;W+=d){var z=W<=a?p:W>=a+m?m:W-a;if(H>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase(),r}function z(e){var t="",r=0,n=e.length;while(r=194&&i<224){if(n-r>=6){var a=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&i)<<6|63&a)}else t+=e.substr(r,6);r+=6}else if(i>=224){if(n-r>=9){var o=parseInt(e.substr(r+4,2),16),s=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function B(e,t){function r(e){var r=z(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,W).replace(t.PCT_ENCODED,i)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,W).replace(t.PCT_ENCODED,i)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,W).replace(t.PCT_ENCODED,i)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,W).replace(t.PCT_ENCODED,i)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,W).replace(t.PCT_ENCODED,i)),e}function V(e){return e.replace(/^0*(.*)/,"$1")||"0"}function $(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=h(r,2),i=n[1];return i?i.split(".").map(V).join("."):e}function G(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=h(r,3),i=n[1],a=n[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),s=h(o,2),l=s[0],u=s[1],c=u?u.split(":").map(V):[],f=l.split(":").map(V),d=t.IPV4ADDRESS.test(f[f.length-1]),p=d?7:8,m=f.length-p,g=Array(p),b=0;b1){var _=g.slice(0,y.index),E=g.slice(y.index+y.length);w=_.join(":")+"::"+E.join(":")}else w=g.join(":");return a&&(w+="%"+a),w}return e}var Y=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Z=void 0==="".match(/(){0}/)[1];function K(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?u:l;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var i=e.match(Y);if(i){Z?(r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5])):(r.scheme=i[1]||void 0,r.userinfo=-1!==e.indexOf("@")?i[3]:void 0,r.host=-1!==e.indexOf("//")?i[4]:void 0,r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=-1!==e.indexOf("?")?i[7]:void 0,r.fragment=-1!==e.indexOf("#")?i[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),r.host&&(r.host=G($(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var a=H[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||a&&a.unicodeSupport)B(r,n);else{if(r.host&&(t.domainHost||a&&a.domainHost))try{r.host=q.toASCII(r.host.replace(n.PCT_ENCODED,z).toLowerCase())}catch(o){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+o}B(r,l)}a&&a.parse&&a.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function Q(e,t){var r=!1!==t.iri?u:l,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(G($(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"!==typeof e.port&&"string"!==typeof e.port||(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}var J=/^\.\.?\//,X=/^\/\.(\/|$)/,ee=/^\/\.\.(\/|$)/,te=/^\/?(?:.|\n)*?(?=\/|$)/;function re(e){var t=[];while(e.length)if(e.match(J))e=e.replace(J,"");else if(e.match(X))e=e.replace(X,"/");else if(e.match(ee))e=e.replace(ee,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(te);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?u:l,n=[],i=H[(t.scheme||e.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||i&&i.domainHost)try{e.host=t.iri?q.toUnicode(e.host):q.toASCII(e.host.replace(r.PCT_ENCODED,z).toLowerCase())}catch(s){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+s}B(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var a=Q(e,t);if(void 0!==a&&("suffix"!==t.reference&&n.push("//"),n.push(a),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var o=e.path;t.absolutePath||i&&i.absolutePath||(o=re(o)),void 0===a&&(o=o.replace(/^\/\//,"/%2F")),n.push(o)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function ie(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3],i={};return n||(e=K(ne(e,r),r),t=K(ne(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=re(t.path||""),i.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=re(t.path||""),i.query=t.query):(t.path?("/"===t.path.charAt(0)?i.path=re(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path:i.path="/"+t.path,i.path=re(i.path)),i.query=t.query):(i.path=e.path,void 0!==t.query?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function ae(e,t,r){var n=o({scheme:"null"},r);return ne(ie(K(e,n),K(t,n),n,!0),n)}function oe(e,t){return"string"===typeof e?e=ne(K(e,t),t):"object"===n(e)&&(e=K(ne(e,t),t)),e}function se(e,t,r){return"string"===typeof e?e=ne(K(e,r),r):"object"===n(e)&&(e=ne(e,r)),"string"===typeof t?t=ne(K(t,r),r):"object"===n(t)&&(t=ne(t,r)),e===t}function le(e,t){return e&&e.toString().replace(t&&t.iri?u.ESCAPE:l.ESCAPE,W)}function ue(e,t){return e&&e.toString().replace(t&&t.iri?u.PCT_ENCODED:l.PCT_ENCODED,z)}var he={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},ce={scheme:"https",domainHost:he.domainHost,parse:he.parse,serialize:he.serialize};function fe(e){return"boolean"===typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var de={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=fe(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e,t){if(e.port!==(fe(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"===typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var r=e.resourceName.split("?"),n=h(r,2),i=n[0],a=n[1];e.path=i&&"/"!==i?i:void 0,e.query=a,e.resourceName=void 0}return e.fragment=void 0,e}},pe={scheme:"wss",domainHost:de.domainHost,parse:de.parse,serialize:de.serialize},me={},ge=!0,be="[A-Za-z0-9\\-\\.\\_\\~"+(ge?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",ve="[0-9A-Fa-f]",ye=r(r("%[EFef]"+ve+"%"+ve+ve+"%"+ve+ve)+"|"+r("%[89A-Fa-f]"+ve+"%"+ve+ve)+"|"+r("%"+ve+ve)),we="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",_e="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",Ee=t(_e,'[\\"\\\\]'),Se="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",xe=new RegExp(be,"g"),Ae=new RegExp(ye,"g"),Re=new RegExp(t("[^]",we,"[\\.]",'[\\"]',Ee),"g"),Ce=new RegExp(t("[^]",be,Se),"g"),Oe=Ce;function Te(e){var t=z(e);return t.match(xe)?t:e}var je={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var i=!1,a={},o=r.query.split("&"),s=0,l=o.length;s{"use strict";var n=r(9655);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var a=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,l=["<",">",'"',"`"," ","\r","\n","\t"],u=["{","}","|","\\","^","`"].concat(l),h=["'"].concat(u),c=["%","/","?",";","#"].concat(h),f=["/","?","#"],d=255,p=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=r(55373);function w(e,t,r){if(e&&"object"===typeof e&&e instanceof i)return e;var n=new i;return n.parse(e,t,r),n}function _(e){return"string"===typeof e&&(e=w(e)),e instanceof i?e.format():i.prototype.format.call(e)}function E(e,t){return w(e,!1,!0).resolve(t)}function S(e,t){return e?w(e,!1,!0).resolveObject(t):t}i.prototype.parse=function(e,t,r){if("string"!==typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),o=-1!==i&&i127?N+="x":N+=D[P];if(!N.match(p)){var L=k.slice(0,O),F=k.slice(O+1),U=D.match(m);U&&(L.push(U[1]),F.unshift(U[2])),F.length&&(w="/"+F.join(".")+w),this.hostname=L.join(".");break}}}this.hostname.length>d?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=n.toASCII(this.hostname));var q=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+q,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!g[S])for(O=0,M=h.length;O0)&&r.host.split("@");x&&(r.auth=x.shift(),r.hostname=x.shift(),r.host=r.hostname)}return r.search=e.search,r.query=e.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!E.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=E.slice(-1)[0],R=(r.host||e.host||E.length>1)&&("."===A||".."===A)||""===A,C=0,O=E.length;O>=0;O--)A=E[O],"."===A?E.splice(O,1):".."===A?(E.splice(O,1),C++):C&&(E.splice(O,1),C--);if(!w&&!_)for(;C--;C)E.unshift("..");!w||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),R&&"/"!==E.join("/").substr(-1)&&E.push("");var T=""===E[0]||E[0]&&"/"===E[0].charAt(0);if(S){r.hostname=T?"":E.length?E.shift():"",r.host=r.hostname;x=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");x&&(r.auth=x.shift(),r.hostname=x.shift(),r.host=r.hostname)}return w=w||r.host&&E.length,w&&!T&&E.unshift(""),E.length>0?r.pathname=E.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},i.prototype.parseHost=function(){var e=this.host,t=o.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.parse=w,t.resolve=E,t.resolveObject=S,t.format=_,t.Url=i}}]); -//# sourceMappingURL=chunk-vendors-8cbd2506.e713aa87.js.map \ No newline at end of file diff --git a/js/chunk-vendors-8cbd2506.e713aa87.js.map b/js/chunk-vendors-8cbd2506.e713aa87.js.map deleted file mode 100644 index 43905992..00000000 --- a/js/chunk-vendors-8cbd2506.e713aa87.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/chunk-vendors-8cbd2506.e713aa87.js","mappings":"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","sources":["webpack://@openeo/web-editor/./node_modules/@radiantearth/stac-migrate/migrate.js","webpack://@openeo/web-editor/./node_modules/@radiantearth/stac-migrate/node_modules/compare-versions/index.js","webpack://@openeo/web-editor/./node_modules/readable-stream/errors-browser.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_readable.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_transform.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/_stream_writable.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://@openeo/web-editor/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://@openeo/web-editor/./node_modules/safe-buffer/index.js","webpack://@openeo/web-editor/./node_modules/side-channel-list/index.js","webpack://@openeo/web-editor/./node_modules/side-channel-map/index.js","webpack://@openeo/web-editor/./node_modules/side-channel-weakmap/index.js","webpack://@openeo/web-editor/./node_modules/side-channel/index.js","webpack://@openeo/web-editor/./node_modules/stream-browserify/index.js","webpack://@openeo/web-editor/./node_modules/string_decoder/lib/string_decoder.js","webpack://@openeo/web-editor/./node_modules/uri-js/dist/es5/uri.all.js","webpack://@openeo/web-editor/./node_modules/url/url.js"],"sourcesContent":["// Migration rules partly based on PySTAC and @openeo/js-commons,\n// see https://github.com/stac-utils/pystac/tree/v0.5.4/pystac/serialization/migrate.py\n// and https://github.com/Open-EO/openeo-js-commons/tree/v1.2.0/src/migrate/collections.js\n\nvar compareVersions = require('compare-versions');\n\nconst LATEST_VERSION = '1.1.0';\nconst DONE = true; // This is used to verify in code coverage whether something has been used or not\nconst SCHEMAS = {\n 'classification': 'https://stac-extensions.github.io/classification/v2.0.0/schema.json',\n 'datacube': 'https://stac-extensions.github.io/datacube/v2.2.0/schema.json',\n 'eo': 'https://stac-extensions.github.io/eo/v2.0.0/schema.json',\n 'file': 'https://stac-extensions.github.io/file/v2.1.0/schema.json',\n 'item-assets': 'https://stac-extensions.github.io/item-assets/v1.0.0/schema.json',\n 'label': 'https://stac-extensions.github.io/label/v1.0.1/schema.json',\n 'pointcloud': 'https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json',\n 'processing': 'https://stac-extensions.github.io/processing/v1.2.0/schema.json',\n 'projection': 'https://stac-extensions.github.io/projection/v2.0.0/schema.json',\n 'raster': 'https://stac-extensions.github.io/raster/v2.0.0/schema.json',\n 'sar': 'https://stac-extensions.github.io/sar/v1.0.0/schema.json',\n 'sat': 'https://stac-extensions.github.io/sat/v1.0.0/schema.json',\n 'scientific': 'https://stac-extensions.github.io/scientific/v1.0.0/schema.json',\n 'table': 'https://stac-extensions.github.io/table/v1.2.0/schema.json',\n 'timestamps': 'https://stac-extensions.github.io/timestamps/v1.1.0/schema.json',\n 'version': 'https://stac-extensions.github.io/version/v1.2.0/schema.json',\n 'view': 'https://stac-extensions.github.io/view/v1.0.0/schema.json'\n};\nconst EXTENSIONS = {\n // Add a : at the end to indicate it has a prefix, otherwise list all fields separately (see version extension for example).\n itemAndCollection: {\n // with prefix\n 'classification:': SCHEMAS.classification,\n 'cube:': SCHEMAS.datacube,\n 'eo:': SCHEMAS.eo,\n 'file:': SCHEMAS.file,\n 'label:': SCHEMAS.label,\n 'pc:': SCHEMAS.pointcloud,\n 'processing:': SCHEMAS.processing,\n 'proj:': SCHEMAS.projection,\n 'raster:': SCHEMAS.raster,\n 'sar:': SCHEMAS.sar,\n 'sat:': SCHEMAS.sat,\n 'sci:': SCHEMAS.scientific,\n 'view:': SCHEMAS.view,\n // without prefix\n 'version': SCHEMAS.version,\n 'deprecated': SCHEMAS.version,\n 'published': SCHEMAS.timestamps,\n 'expires': SCHEMAS.timestamps,\n 'unpublished': SCHEMAS.timestamps\n },\n catalog: {\n // None yet\n },\n collection: {\n // None yet\n },\n item: {\n // None yet\n },\n};\nEXTENSIONS.collection = Object.assign(EXTENSIONS.collection, EXTENSIONS.itemAndCollection);\nEXTENSIONS.item = Object.assign(EXTENSIONS.item, EXTENSIONS.itemAndCollection);\n\nvar Ext = {\n parseUrl(url) {\n let match = url.match(/^https?:\\/\\/stac-extensions.github.io\\/([^\\/]+)\\/v([^\\/]+)\\/[^.]+.json$/i);\n if (match) {\n return {\n id: match[1],\n version: match[2]\n };\n }\n }\n};\n\nvar V = {\n version: LATEST_VERSION,\n extensions: {},\n\n set(stac) {\n if (typeof stac.stac_version !== 'string') {\n V.version = '0.6.0'; // Assume the worst case, it doesn't seem there's a clear indicator for 0.7.0\n }\n else {\n V.version = stac.stac_version;\n }\n\n if (Array.isArray(stac.stac_extensions)) {\n for (let ext of stac.stac_extensions) {\n let e = Ext.parseUrl(ext);\n if (e) {\n V.extensions[e.id] = e.version;\n }\n }\n }\n },\n\n before(version, ext = null) {\n return V.compare('<', version, ext);\n },\n\n compare(comparator, version, ext = null) {\n let compareTo = ext ? V.extensions[ext] : V.version;\n if (typeof compareTo === 'undefined') {\n return false;\n }\n else {\n return compareVersions.compare(compareTo, version, comparator);\n }\n }\n\n};\n\nvar _ = {\n\n type(val) {\n let type = typeof val;\n if (type === 'object') {\n if (val === null) {\n return 'null';\n }\n else if (Array.isArray(val)) {\n return 'array';\n }\n }\n return type;\n },\n\n is(val, type) {\n if (Array.isArray(type)) {\n return type.includes(_.type(val));\n }\n else {\n return _.type(val) === type;\n }\n },\n\n isDefined(val) {\n return (typeof val !== 'undefined');\n },\n\n isObject(obj) {\n return (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n },\n\n rename(obj, oldKey, newKey) {\n if (typeof obj[oldKey] !== 'undefined' && typeof obj[newKey] === 'undefined') {\n obj[newKey] = obj[oldKey];\n delete obj[oldKey];\n return true;\n }\n return false;\n },\n\n copy(obj, oldKey, newKey) {\n if (typeof obj[oldKey] !== 'undefined' && typeof obj[newKey] === 'undefined') {\n obj[newKey] = obj[oldKey];\n return true;\n }\n return false;\n },\n\n forAll(obj, key, fn) {\n if (obj[key] && typeof obj[key] === 'object') {\n for (let i in obj[key]) {\n fn(obj[key][i]);\n }\n }\n },\n\n toArray(obj, key) {\n if (typeof obj[key] !== 'undefined' && !Array.isArray(obj[key])) {\n obj[key] = [obj[key]];\n return true;\n }\n return false;\n },\n\n flattenArray(obj, key, newKeys, summary = false) {\n if (Array.isArray(obj[key])) {\n for (let i in obj[key]) {\n if (typeof newKeys[i] === 'string') {\n let value = obj[key][i];\n obj[newKeys[i]] = summary ? [value] : value;\n }\n }\n delete obj[key];\n return true;\n }\n return false;\n },\n\n flattenOneElementArray(obj, key, summary = false) {\n if (!summary && Array.isArray(obj[key])) {\n if (obj[key].length === 1) {\n obj[key] = obj[key][0];\n return true;\n }\n else {\n return false; // It's still an array and we don't know which element to choose\n }\n }\n return true; // It's already a single element\n },\n\n removeFromArray(obj, key, valueToRemove) {\n if (Array.isArray(obj[key])) {\n let index = obj[key].indexOf(valueToRemove);\n if (index > -1) {\n obj[key].splice(index, 1);\n }\n return true;\n }\n return false;\n },\n\n pickFirst(obj, key) {\n if (Array.isArray(obj[key]) && obj[key].length > 0) {\n obj[key] = obj[key][0];\n return true;\n }\n else {\n delete obj[key];\n return false;\n }\n },\n\n ensure(obj, key, defaultValue) {\n if (_.type(defaultValue) !== _.type(obj[key])) {\n obj[key] = defaultValue;\n }\n return true;\n },\n\n upgradeExtension(context, extension) {\n let { id, version } = Ext.parseUrl(extension);\n let index = context.stac_extensions.findIndex(url => {\n let old = Ext.parseUrl(url);\n return (old && old.id === id && compareVersions.compare(old.version, version, '<'));\n });\n if (index !== -1) {\n context.stac_extensions[index] = extension;\n return true;\n }\n else {\n return false;\n }\n },\n\n addExtension(context, newExtension) {\n let { id, version } = Ext.parseUrl(newExtension);\n let index = context.stac_extensions.findIndex(url => {\n if (url === newExtension) {\n return true;\n }\n let old = Ext.parseUrl(url);\n if (old && old.id === id && compareVersions.compare(old.version, version, '<')) {\n return true;\n }\n return false;\n });\n if (index === -1) {\n context.stac_extensions.push(newExtension);\n }\n else {\n context.stac_extensions[index] = newExtension;\n }\n\n context.stac_extensions.sort();\n return true;\n },\n\n removeExtension(context, oldExtension) {\n return _.removeFromArray(context, 'stac_extensions', oldExtension);\n },\n\n migrateExtensionShortnames(context) {\n let oldShortnames = Object.keys(SCHEMAS);\n let newSchemas = Object.values(SCHEMAS);\n return _.mapValues(context, 'stac_extensions', oldShortnames, newSchemas);\n },\n\n populateExtensions(context, type) {\n let objectsToCheck = [];\n if (type == 'catalog' || type == 'collection') {\n objectsToCheck.push(context);\n }\n if ((type == 'item' || type == 'collection') && _.isObject(context.assets)) {\n objectsToCheck = objectsToCheck.concat(Object.values(context.assets));\n }\n if (type == 'collection' && _.isObject(context.item_assets)) {\n objectsToCheck = objectsToCheck.concat(Object.values(context.item_assets));\n }\n if (type == 'collection' && _.isObject(context.summaries)) {\n objectsToCheck.push(context.summaries);\n }\n if (type == 'item' && _.isObject(context.properties)) {\n objectsToCheck.push(context.properties);\n }\n objectsToCheck.push(context.links);\n\n let obj;\n while(obj = objectsToCheck.pop()) {\n Object.keys(obj).forEach(key => {\n // Add additional objects to check\n if (Array.isArray(obj.bands)) {\n objectsToCheck = objectsToCheck.concat(obj.bands);\n }\n\n // Check for fields with extension prefixes\n let prefix = key.match(/^(\\w+:|[^:]+$)/i);\n if (Array.isArray(prefix)) {\n let ext = EXTENSIONS[type][prefix[0]];\n _.is(ext, 'string') && _.addExtension(context, ext) && DONE;\n }\n });\n }\n },\n\n mapValues(obj, key, oldValues, newValues) {\n let fn = value => {\n let index = oldValues.indexOf(value);\n if (index >= 0) {\n return newValues[index];\n }\n return value;\n };\n if (Array.isArray(obj[key])) {\n obj[key] = obj[key].map(fn);\n }\n else if (typeof obj[key] !== 'undefined') {\n obj[key] = fn(obj[key]);\n }\n return true;\n },\n\n mapObject(obj, fn) {\n for (let key in obj) {\n obj[key] = fn(obj[key], key);\n }\n },\n\n moveTo(obj, key, context, fromSummary = false, mergedSummary = false) {\n let condition;\n if (fromSummary) {\n if (mergedSummary) {\n condition = val => Array.isArray(val);\n }\n else {\n condition = val => Array.isArray(val) && val.length === 1;\n }\n }\n else {\n condition = _.isDefined\n }\n if (condition(obj[key])) {\n context[key] = fromSummary && !mergedSummary ? obj[key][0] : obj[key];\n delete obj[key];\n return true;\n }\n return false;\n },\n\n runAll(migrations, obj, context, summaries) {\n for (let fn in migrations) {\n if (!fn.startsWith('migrate')) {\n migrations[fn](obj, context, summaries);\n }\n }\n },\n\n toUTC(obj, key) {\n if (_.is(obj[key], 'string')) {\n try {\n obj[key] = this.toISOString(obj[key]);\n return true;\n } catch (error) { }\n }\n delete obj[key];\n return false;\n },\n\n toISOString(date) {\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n return date.toISOString().replace(/\\.0+/, ''); // Don't export milliseconds if not needed\n },\n\n formatString(obj, key, format) {\n const formatter = value => {\n if (_.is(value, ['string', 'number'])) {\n return format.replaceAll('{}', value);\n }\n return value;\n };\n if (Array.isArray(obj[key])) {\n obj[key] = obj[key].map(formatter);\n }\n else {\n obj[key] = formatter(obj[key]);\n }\n }\n\n};\n\nvar Checksum = {\n\n multihash: null,\n\n hexToUint8(hexString) {\n if (hexString.length === 0 || hexString.length % 2 !== 0) {\n throw new Error(`The string \"${hexString}\" is not valid hex.`)\n }\n return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));\n },\n\n uint8ToHex(bytes) {\n return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n },\n\n toMultihash(obj, key, algo) {\n if (!Checksum.multihash || !_.is(obj[key], 'string')) {\n return false;\n }\n try {\n const encoded = Checksum.multihash.encode(Checksum.hexToUint8(obj[key]), algo);\n obj[key] = Checksum.uint8ToHex(encoded);\n return true;\n } catch (error) {\n console.warn(error);\n return false;\n }\n }\n\n};\n\nvar Catalog = {\n\n migrate(catalog, updateVersionNumber = true) {\n V.set(catalog);\n if (updateVersionNumber) {\n catalog.stac_version = LATEST_VERSION;\n }\n catalog.type = 'Catalog';\n\n _.ensure(catalog, 'stac_extensions', []) && DONE;\n V.before('1.0.0-rc.1') && _.migrateExtensionShortnames(catalog) && DONE;\n\n _.ensure(catalog, 'id', '') && DONE;\n _.ensure(catalog, 'description', '') && DONE;\n _.ensure(catalog, 'links', []) && DONE;\n\n _.runAll(Catalog, catalog, catalog);\n\n V.before('0.8.0') && _.populateExtensions(catalog, 'catalog') && DONE;\n\n return catalog;\n },\n\n};\n\nvar Collection = {\n\n migrate(collection, updateVersionNumber = true) {\n Catalog.migrate(collection, updateVersionNumber); // Migrates stac_version, stac_extensions, id, title, description, links\n collection.type = 'Collection';\n\n V.before('1.0.0-rc.1') && _.migrateExtensionShortnames(collection) && DONE;\n\n _.ensure(collection, 'license', 'other') && DONE;\n _.ensure(collection, 'extent', {\n spatial: {\n bbox: []\n },\n temporal: {\n interval: []\n }\n }) && DONE;\n\n _.runAll(Collection, collection, collection);\n\n // Migrate Commons extension - part 3\n if (_.isObject(collection.properties)) {\n _.removeFromArray(collection, 'stac_extensions', 'commons') && DONE;\n delete collection.properties;\n }\n\n V.before('0.8.0') && _.populateExtensions(collection, 'collection') && DONE;\n V.before('1.0.0-beta.1') && _.mapValues(collection, 'stac_extensions', ['assets'], ['item-assets']) && DONE;\n\n return collection;\n },\n\n extent(collection) {\n _.ensure(collection, \"extent\", {});\n\n if (V.before('0.8.0')) {\n // Restructure spatial extent\n if (Array.isArray(collection.extent.spatial)) {\n collection.extent.spatial = {\n bbox: [\n collection.extent.spatial\n ]\n };\n }\n // Restructure temporal extent\n if (Array.isArray(collection.extent.temporal)) {\n collection.extent.temporal = {\n interval: [\n collection.extent.temporal\n ]\n };\n }\n }\n\n _.ensure(collection.extent, \"spatial\", {});\n _.ensure(collection.extent.spatial, \"bbox\", []);\n _.ensure(collection.extent, \"temporal\", {});\n _.ensure(collection.extent.temporal, \"interval\", []);\n\n if (V.before('1.0.0-rc.3')) {\n // The first extent in a Collection is always the overall extent, followed by more specific extents.\n if (collection.extent.temporal.interval.length > 1) {\n let min, max;\n for (let interval of collection.extent.temporal.interval) {\n if (interval[0] === null) {\n min = null;\n }\n else if (typeof interval[0] === 'string' && min !== null) {\n try {\n let start = new Date(interval[0]);\n if (typeof min === 'undefined' || start < min) {\n min = start;\n }\n } catch (error) { }\n }\n\n if (interval[1] === null) {\n max = null;\n }\n else if (typeof interval[1] === 'string' && max !== null) {\n try {\n let end = new Date(interval[1]);\n if (typeof max === 'undefined' || end > max) {\n max = end;\n }\n } catch (error) { }\n }\n }\n collection.extent.temporal.interval.unshift([\n min ? _.toISOString(min) : null,\n max ? _.toISOString(max) : null\n ]);\n }\n if (collection.extent.spatial.bbox.length > 1) {\n let count = collection.extent.spatial.bbox.reduce((val, bbox) => Array.isArray(bbox) ? Math.max(bbox.length, val) : val, 4);\n if (count >= 4) {\n let union = new Array(count).fill(null);\n let middle = count / 2;\n for (let bbox of collection.extent.spatial.bbox) {\n if (!Array.isArray(bbox) || bbox.length < 4) {\n break;\n }\n for (let i in bbox) {\n let c = bbox[i];\n if (union[i] === null) {\n union[i] = c;\n }\n else if (i < middle) {\n union[i] = Math.min(c, union[i]);\n }\n else {\n union[i] = Math.max(c, union[i]);\n }\n\n }\n }\n if (union.findIndex(c => c === null) === -1) {\n collection.extent.spatial.bbox.unshift(union);\n }\n }\n }\n }\n },\n\n collectionAssets(collection) {\n V.before('1.0.0-rc.1') && _.removeExtension(collection, 'collection-assets') && DONE;\n\n Asset.migrateAll(collection);\n },\n\n itemAsset(collection) {\n V.before('1.0.0-beta.2') && _.rename(collection, 'item_assets', 'assets');\n\n _.removeExtension(collection, SCHEMAS['item-assets']) && DONE;\n\n Asset.migrateAll(collection, 'item_assets');\n },\n\n summaries(collection) {\n _.ensure(collection, 'summaries', {});\n\n // other_properties: An early version of the Collection summaries with a similar structure\n // Was mostly used in standalone collections from openEO and GEE. Move other_properties to summaries.\n if (V.before('0.8.0') && _.isObject(collection.other_properties)) {\n for (let key in collection.other_properties) {\n let prop = collection.other_properties[key];\n if (Array.isArray(prop.extent) && prop.extent.length === 2) {\n collection.summaries[key] = {\n minimum: prop.extent[0],\n maximum: prop.extent[1],\n };\n }\n else if (Array.isArray(prop.values)) {\n if (prop.values.filter(v => Array.isArray(v)).length === prop.values.length) {\n // If it is an array of arrays, merge the arrays\n collection.summaries[key] = prop.values.reduce((a, b) => a.concat(b), []);\n }\n else {\n collection.summaries[key] = prop.values;\n }\n }\n }\n delete collection.other_properties;\n }\n\n // Migrate Commons extension - part 2\n // Move properties to (single element) summaries if the Collection is standalone\n // see also https://github.com/stac-utils/stac-migrate/issues/3\n if (V.before('1.0.0-beta.1') && _.isObject(collection.properties) && !collection.links.find(link => ['child', 'item'].includes(link.rel))) {\n for (let key in collection.properties) {\n let value = collection.properties[key];\n if (!Array.isArray(value)) {\n value = [value];\n }\n collection.summaries[key] = value;\n }\n }\n\n if (V.before('1.0.0-rc.1')) {\n _.mapObject(collection.summaries, val => {\n _.rename(val, 'min', 'minimum') && DONE;\n _.rename(val, 'max', 'maximum') && DONE;\n return val;\n });\n }\n\n // now we can work on all summaries and migrate them\n Fields.migrate(collection.summaries, collection, true);\n\n // Some fields should usually be on root-level if there's only one element\n _.moveTo(collection.summaries, 'sci:doi', collection, true) && _.addExtension(collection, SCHEMAS.scientific) && DONE;\n _.moveTo(collection.summaries, 'sci:publications', collection, true, true) && _.addExtension(collection, SCHEMAS.scientific) && DONE;\n _.moveTo(collection.summaries, 'sci:citation', collection, true) && _.addExtension(collection, SCHEMAS.scientific) && DONE;\n _.moveTo(collection.summaries, 'cube:dimensions', collection, true) && _.addExtension(collection, SCHEMAS.datacube) && DONE;\n\n // Remove summary field if empty\n if (Object.keys(collection.summaries).length === 0) {\n delete collection.summaries;\n }\n }\n\n};\n\nvar Item = {\n\n migrate(item, collection = null, updateVersionNumber = true) {\n V.set(item);\n if (updateVersionNumber) {\n item.stac_version = LATEST_VERSION;\n }\n\n _.ensure(item, 'stac_extensions', []) && DONE;\n V.before('1.0.0-rc.1') && _.migrateExtensionShortnames(item) && DONE;\n\n _.ensure(item, 'id', '') && DONE;\n _.ensure(item, 'type', 'Feature') && DONE;\n if (!_.isObject(item.geometry)) {\n item.geometry = null;\n }\n if (item.geometry !== null) {\n _.ensure(item, 'bbox', []) && DONE;\n }\n _.ensure(item, 'properties', {}) && DONE;\n _.ensure(item, 'links', []) && DONE;\n _.ensure(item, 'assets', {}) && DONE;\n\n // Migrate Commons extension - part 1\n let commons = false;\n if (_.isObject(collection) && _.isObject(collection.properties)) {\n _.removeFromArray(item, 'stac_extensions', 'commons');\n item.properties = Object.assign({}, collection.properties, item.properties);\n commons = true;\n }\n\n _.runAll(Item, item, item);\n\n Fields.migrate(item.properties, item);\n\n Asset.migrateAll(item);\n\n // Also populate extensions if commons has been implemented\n (V.before('0.8.0') || commons) && _.populateExtensions(item, 'item') && DONE;\n\n return item;\n }\n\n};\n\nvar CollectionCollection = {\n\n migrate(object, updateVersionNumber = true) {\n _.ensure(object, 'collections', []) && DONE;\n _.ensure(object, 'links', []) && DONE;\n\n _.runAll(CollectionCollection, object, object);\n\n object.collections = object.collections.map(collection => Collection.migrate(collection, updateVersionNumber));\n\n return object;\n },\n\n};\n\nvar ItemCollection = {\n\n migrate(itemCollection, updateVersionNumber = true) {\n _.ensure(itemCollection, 'type', 'FeatureCollection') && DONE;\n _.ensure(itemCollection, 'features', []) && DONE;\n _.ensure(itemCollection, 'links', []) && DONE;\n\n _.runAll(ItemCollection, itemCollection, itemCollection);\n\n itemCollection.features = itemCollection.features.map(feature => Item.migrate(feature, null, updateVersionNumber));\n\n return itemCollection;\n },\n\n};\n\nvar Asset = {\n\n migrateAll(context, field = 'assets') {\n for (let key in context[field]) {\n Asset.migrate(context[field][key], context);\n }\n },\n\n migrate(asset, context) {\n _.runAll(Asset, asset, context);\n\n Fields.migrate(asset, context);\n\n return asset;\n },\n\n mediaTypes(asset) {\n _.is(asset.type, 'string') && _.mapValues(\n asset, 'type',\n ['image/vnd.stac.geotiff', 'image/vnd.stac.geotiff; cloud-optimized=true'],\n ['image/tiff; application=geotiff', 'image/tiff; application=geotiff; profile=cloud-optimized']\n );\n }\n\n};\n\nvar Band = {\n\n migrateAll(obj, context) {\n\n if (V.before('1.0.0')) { // Not sure when the index-based bands were removed\n const bands = _.isObject(context.properties) && Array.isArray(context.properties.bands) ? context.properties.bands : [];\n if (Array.isArray(obj['eo:bands'])) {\n for (let i in obj['eo:bands']) {\n let band = obj['eo:bands'][i];\n if (_.is(band, 'number') && _.isObject(bands[band])) {\n band = bands[band];\n }\n if (!_.isObject(band)) {\n band = {}; // \"Fix\" invalid band index\n }\n obj['eo:bands'][i] = band;\n }\n }\n }\n\n if (V.before(\"1.1.0-beta.1\") && (Array.isArray(obj[\"raster:bands\"]) || Array.isArray(obj[\"eo:bands\"]))) {\n _.ensure(obj, \"bands\", []);\n\n const raster = obj[\"raster:bands\"] || [];\n const eo = obj[\"eo:bands\"] || [];\n const length = Math.max(raster.length, eo.length);\n for (let i = 0; i < length; i++) {\n _.ensure(obj.bands, i, {});\n Object.assign(obj.bands[i], raster[i], eo[i]);\n obj.bands[i] = Band.migrate(obj.bands[i], context);\n }\n\n delete obj[\"raster:bands\"];\n delete obj[\"eo:bands\"];\n }\n\n },\n\n migrate(band, context) {\n _.runAll(Band, band, context);\n\n Fields.migrate(band, context);\n\n return band;\n },\n\n eo(band) {\n if (V.before('2.0.0-beta.1', 'eo')) {\n _.rename(band, 'common_name', 'eo:common_name') && DONE;\n _.rename(band, 'center_wavelength', 'eo:center_wavelength') && DONE;\n _.rename(band, 'full_width_half_max', 'eo:full_width_half_max') && DONE;\n _.rename(band, 'solar_illumination', 'eo:solar_illumination') && DONE;\n }\n },\n\n raster(band) {\n if (V.before('2.0.0-beta.1', 'raster')) {\n _.rename(band, 'sampling', 'raster:sampling') && DONE;\n _.rename(band, 'bits_per_sample', 'raster:bits_per_sample') && DONE;\n _.rename(band, 'spatial_resolution', 'raster:spatial_resolution') && DONE;\n _.rename(band, 'scale', 'raster:scale') && DONE;\n _.rename(band, 'offset', 'raster:offset') && DONE;\n _.rename(band, 'histogram', 'raster:histogram') && DONE;\n }\n }\n\n};\n\nvar Fields = {\n\n migrate(obj, context, summaries = false) {\n _.runAll(Fields, obj, context, summaries);\n\n return obj;\n },\n\n _commonMetadata(obj, context) {\n // Timestamps must be always in UTC\n // datetime, start_datetime and end_datetime already required UTC before\n if (V.before('1.0.0-rc.3')) {\n _.toUTC(obj, 'created') && DONE;\n _.toUTC(obj, 'updated') && DONE;\n }\n\n Band.migrateAll(obj, context);\n },\n\n _timestamps(obj, context) {\n // Timestamps must be always in UTC\n _.toUTC(obj, 'published') && DONE;\n _.toUTC(obj, 'expires') && DONE;\n _.toUTC(obj, 'unpublished') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.timestamps);\n },\n\n _versioningIndicator(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.version);\n },\n\n checksum(obj, context) {\n if (V.before('0.9.0') && Checksum.multihash) {\n _.rename(obj, 'checksum:md5', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'md5') && DONE;\n _.rename(obj, 'checksum:sha1', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'sha1') && DONE;\n // We assume sha2/3-256 although that may fail in some cases and other lengths are chosen\n // Never seen this implemtned in the wild, so let's try this until another use case comes up\n _.rename(obj, 'checksum:sha2', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'sha2-256') && DONE;\n _.rename(obj, 'checksum:sha3', 'checksum:multihash') && Checksum.toMultihash(obj, 'checksum:multihash', 'sha3-256') && DONE;\n }\n\n V.before('1.0.0-rc.1') && _.rename(obj, 'checksum:multihash', 'file:checksum') && _.addExtension(context, SCHEMAS.file) && DONE;\n\n _.removeExtension(context, 'checksum');\n },\n\n classification(obj, context) {\n if (V.before('1.1.0', 'classification')) {\n _.forAll(obj, 'classification:classes', o => _.rename(o, 'color-hint', 'color_hint')) && DONE;\n }\n if (V.before('2.0.0', 'classification')) {\n _.forAll(obj, 'classification:classes', o => _.ensure(o, 'name', o.description)) && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.classification);\n },\n\n cube(obj, context) {\n // We'd need to convert proj strings to something else for v1.0 -> v2.0, but that's unfeasible here.\n // Nothing else to do here.\n\n _.upgradeExtension(context, SCHEMAS.datacube);\n },\n\n dtr(obj, context) {\n if (V.before('0.9.0')) {\n _.rename(obj, 'dtr:start_datetime', 'start_datetime') && DONE;\n _.rename(obj, 'dtr:end_datetime', 'end_datetime') && DONE;\n _.removeExtension(context, 'datetime-range') && DONE;\n }\n },\n\n eo(obj, context) {\n if (V.before('0.9.0')) {\n _.rename(obj, 'eo:epsg', 'proj:epsg') && _.addExtension(context, SCHEMAS.projection) && DONE;\n _.rename(obj, 'eo:platform', 'platform') && DONE;\n _.rename(obj, 'eo:instrument', 'instruments') && _.toArray(obj, 'instruments') && DONE;\n _.rename(obj, 'eo:constellation', 'constellation') && DONE;\n _.rename(obj, 'eo:off_nadir', 'view:off_nadir') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:azimuth', 'view:azimuth') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:incidence_angle', 'view:incidence_angle') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:sun_azimuth', 'view:sun_azimuth') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'eo:sun_elevation', 'view:sun_elevation') && _.addExtension(context, SCHEMAS.view) && DONE;\n }\n\n V.before('1.0.0-beta.1') && _.rename(obj, 'eo:gsd', 'gsd') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.eo);\n },\n\n file(obj, context, summaries) {\n _.rename(obj, 'file:bits_per_sample', 'raster:bits_per_sample') && _.addExtension(context, SCHEMAS.raster) && DONE;\n _.rename(obj, 'file:data_type', 'data_type') && _.addExtension(context, SCHEMAS.raster) && DONE;\n _.rename(obj, 'file:unit', 'unit') && _.addExtension(context, SCHEMAS.raster) && DONE;\n\n if (Array.isArray(obj['file:nodata']) && obj['file:nodata'].length > 1) {\n // In case of more than one no-data value we need to create a custom property\n // as there's no alternative for multiple no-data values yet\n _.copy(obj, 'file:nodata', 'nodata:values') && DONE;\n }\n _.rename(obj, 'file:nodata', 'nodata') && !summaries && _.pickFirst(obj, 'nodata') && DONE;\n _.upgradeExtension(context, SCHEMAS.file);\n },\n\n label(obj, context) {\n // Migrate 0.8.0-rc1 non-pluralized forms\n if (V.before('0.8.0')) {\n _.rename(obj, 'label:property', 'label:properties') && DONE;\n _.rename(obj, 'label:task', 'label:tasks') && DONE;\n _.rename(obj, 'label:overview', 'label:overviews') && _.toArray(obj, 'label:overviews') && DONE;\n _.rename(obj, 'label:method', 'label:methods') && DONE;\n _.toArray(obj, 'label:classes') && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.label);\n },\n\n pc(obj, context) {\n V.before('0.8.0') && _.rename(obj, 'pc:schema', 'pc:schemas') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.pointcloud);\n },\n\n processing(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.processing);\n },\n\n proj(obj, context) {\n _.rename(obj, 'proj:epsg', 'proj:code') && _.formatString(obj, 'proj:code', 'EPSG:{}') && DONE;\n\n _.upgradeExtension(context, SCHEMAS.projection);\n },\n\n raster(obj, context) {\n _.upgradeExtension(context, SCHEMAS.raster);\n },\n\n sar(obj, context, summary) {\n // Which version have they been (re)moved?\n _.rename(obj, 'sar:incidence_angle', 'view:incidence_angle') && _.addExtension(context, SCHEMAS.view) && DONE;\n _.rename(obj, 'sar:pass_direction', 'sat:orbit_state') && _.mapValues(obj, 'sat:orbit_state', [null], ['geostationary']) && _.addExtension(context, SCHEMAS.sat) && DONE;\n\n if (V.before('0.7.0')) {\n _.flattenArray(obj, 'sar:resolution', ['sar:resolution_range', 'sar:resolution_azimuth'], summary) && DONE;\n _.flattenArray(obj, 'sar:pixel_spacing', ['sar:pixel_spacing_range', 'sar:pixel_spacing_azimuth'], summary) && DONE;\n _.flattenArray(obj, 'sar:looks', ['sar:looks_range', 'sar:looks_azimuth', 'sar:looks_equivalent_number'], summary) && DONE;\n _.rename(obj, 'sar:off_nadir', 'view:off_nadir') && _.addExtension(context, SCHEMAS.view) && DONE;\n }\n\n if (V.before('0.9.0')) {\n _.rename(obj, 'sar:platform', 'platform') && DONE;\n _.rename(obj, 'sar:instrument', 'instruments') && _.toArray(obj, 'instruments') && DONE;\n _.rename(obj, 'sar:constellation', 'constellation') && DONE;\n _.rename(obj, 'sar:type', 'sar:product_type') && DONE;\n _.rename(obj, 'sar:polarization', 'sar:polarizations') && DONE;\n _.flattenOneElementArray(obj, 'sar:absolute_orbit', summary) && _.rename(obj, 'sar:absolute_orbit', 'sat:absolute_orbit') && _.addExtension(context, SCHEMAS.sat) && DONE;\n _.flattenOneElementArray(obj, 'sar:relative_orbit', summary) && _.rename(obj, 'sar:relative_orbit', 'sat:relative_orbit') && _.addExtension(context, SCHEMAS.sat) && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.sar);\n },\n\n sat(obj, context) {\n // Migrate 0.9.0-rc _angle suffixes\n if (V.before('0.9.0')) {\n _.rename(obj, 'sat:off_nadir_angle', 'sat:off_nadir') && DONE;\n _.rename(obj, 'sat:azimuth_angle', 'sat:azimuth') && DONE;\n _.rename(obj, 'sat:sun_azimuth_angle', 'sat:sun_azimuth') && DONE;\n _.rename(obj, 'sat:sun_elevation_angle', 'sat:sun_elevation') && DONE;\n }\n\n _.upgradeExtension(context, SCHEMAS.sat);\n },\n\n sci(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.scientific);\n },\n\n item(obj) { // Single Item\n if (V.before('0.8.0')) {\n _.rename(obj, 'item:license', 'license') && DONE;\n _.rename(obj, 'item:providers', 'providers') && DONE;\n // No need to remove the extension from stac_extensions as it was not available before 0.8.0\n }\n },\n\n table(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.table);\n },\n\n view(obj, context) {\n // Nothing to do\n\n _.upgradeExtension(context, SCHEMAS.view);\n }\n\n};\n\nvar Migrate = {\n\n item(item, collection = null, updateVersionNumber = true) {\n return Item.migrate(item, collection, updateVersionNumber);\n },\n\n catalog(catalog, updateVersionNumber = true) {\n return Catalog.migrate(catalog, updateVersionNumber);\n },\n\n collection(collection, updateVersionNumber = true) {\n return Collection.migrate(collection, updateVersionNumber);\n },\n\n collectionCollection(collections, updateVersionNumber = true) {\n return CollectionCollection.migrate(collections, updateVersionNumber);\n },\n\n itemCollection(itemCollection, updateVersionNumber = true) {\n return ItemCollection.migrate(itemCollection, updateVersionNumber);\n },\n\n stac(object, updateVersionNumber = true) {\n if (object.type === 'Feature') {\n return Migrate.item(object, null, updateVersionNumber);\n }\n else if (object.type === 'FeatureCollection') {\n return Migrate.itemCollection(object, updateVersionNumber);\n }\n else if (object.type === 'Collection' || (!object.type && _.isDefined(object.extent) && _.isDefined(object.license))) {\n return Migrate.collection(object, updateVersionNumber);\n }\n else if (!object.type && Array.isArray(object.collections)) {\n return Migrate.collectionCollection(object, updateVersionNumber);\n }\n else {\n return Migrate.catalog(object, updateVersionNumber);\n }\n },\n\n enableMultihash(multihash) {\n Checksum.multihash = multihash;\n }\n\n};\n\nmodule.exports = Migrate;\n","/* global define */\n(function (root, factory) {\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.compareVersions = factory();\n }\n}(this, function () {\n\n var semver = /^v?(?:\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+))?(?:-[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\n function indexOrEnd(str, q) {\n return str.indexOf(q) === -1 ? str.length : str.indexOf(q);\n }\n\n function split(v) {\n var c = v.replace(/^v/, '').replace(/\\+.*$/, '');\n var patchIndex = indexOrEnd(c, '-');\n var arr = c.substring(0, patchIndex).split('.');\n arr.push(c.substring(patchIndex + 1));\n return arr;\n }\n\n function tryParse(v) {\n return isNaN(Number(v)) ? v : Number(v);\n }\n\n function validate(version) {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n if (!semver.test(version)) {\n throw new Error('Invalid argument not valid semver (\\''+version+'\\' received)');\n }\n }\n\n function compareVersions(v1, v2) {\n [v1, v2].forEach(validate);\n\n var s1 = split(v1);\n var s2 = split(v2);\n\n for (var i = 0; i < Math.max(s1.length - 1, s2.length - 1); i++) {\n var n1 = parseInt(s1[i] || 0, 10);\n var n2 = parseInt(s2[i] || 0, 10);\n\n if (n1 > n2) return 1;\n if (n2 > n1) return -1;\n }\n\n var sp1 = s1[s1.length - 1];\n var sp2 = s2[s2.length - 1];\n\n if (sp1 && sp2) {\n var p1 = sp1.split('.').map(tryParse);\n var p2 = sp2.split('.').map(tryParse);\n\n for (i = 0; i < Math.max(p1.length, p2.length); i++) {\n if (p1[i] === undefined || typeof p2[i] === 'string' && typeof p1[i] === 'number') return -1;\n if (p2[i] === undefined || typeof p1[i] === 'string' && typeof p2[i] === 'number') return 1;\n\n if (p1[i] > p2[i]) return 1;\n if (p2[i] > p1[i]) return -1;\n }\n } else if (sp1 || sp2) {\n return sp1 ? -1 : 1;\n }\n\n return 0;\n };\n\n var allowedOperators = [\n '>',\n '>=',\n '=',\n '<',\n '<='\n ];\n\n var operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1]\n };\n\n function validateOperator(op) {\n if (typeof op !== 'string') {\n throw new TypeError('Invalid operator type, expected string but got ' + typeof op);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new TypeError('Invalid operator, expected one of ' + allowedOperators.join('|'));\n }\n }\n\n compareVersions.validate = function(version) {\n return typeof version === 'string' && semver.test(version);\n }\n\n compareVersions.compare = function (v1, v2, operator) {\n // Validate operator\n validateOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n var res = compareVersions(v1, v2);\n return operatorResMap[operator].indexOf(res) > -1;\n }\n\n return compareVersions;\n}));\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {(thisArg: Map, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {(thisArg: Map, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {(thisArg: Map) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {Map | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1; x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join('');\n } else {\n return sets[0];\n }\n}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n}\nfunction assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n}\n\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\n PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n //expanded\n GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n //subset, excludes bidi control characters\n IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n //subset\n UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n //relaxed parsing rules\n IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n // 6( h16 \":\" ) ls32\n IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n // \"::\" 5( h16 \":\" ) ls32\n IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n //[ *5( h16 \":\" ) h16 ] \"::\" h16\n IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n //[ *6( h16 \":\" ) h16 ] \"::\"\n IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),\n //RFC 6874\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n };\n}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/** Highest positive signed 32-bit float value */\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn String.fromCodePoint.apply(String, toConsumableArray(array));\n};\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn String.fromCodePoint.apply(String, output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\nvar SCHEMES = {};\nfunction pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = void 0;\n if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n}\nfunction pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n}\nfunction _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n}\n\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n var _matches = slicedToArray(matches, 2),\n address = _matches[1];\n\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n}\nfunction _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n var _matches2 = slicedToArray(matches, 3),\n address = _matches2[1],\n zone = _matches2[2];\n\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n last = _address$toLowerCase$2[0],\n first = _address$toLowerCase$2[1];\n\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0; x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function (acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index: index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function (a, b) {\n return b.length - a.length;\n })[0];\n var newHost = void 0;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n //store each component\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n //fix port number\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n //IE FIX for improper RegExp matching\n //store each component\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n //fix port number\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n //normalize IP hosts\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n //determine reference type\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n //check for reference errors\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n //if host component is a domain name\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n //convert Unicode IDN -> ASCII IDN\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n //convert IRI -> URI\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n //normalize encodings\n _normalizeComponentEncoding(components, protocol);\n }\n //perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n}\n\nfunction _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n //normalize IP hosts, add brackets and escape zone separator for IPv6\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n}\n\nfunction serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n if (components.host) {\n //if host component is an IPv6 address\n if (protocol.IPV6ADDRESS.test(components.host)) {}\n //TODO: normalize IPv6 address as per RFC 5952\n\n //if host component is a domain name\n else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n //convert IDN via punycode\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n //normalize encoding\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\"); //merge tokens into a string\n}\n\nfunction resolveComponents(base, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n\n var target = {};\n if (!skipNormalization) {\n base = parse(serialize(base, options), options); //normalize base components\n relative = parse(serialize(relative, options), options); //normalize relative components\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = \"/\" + relative.path;\n } else if (!base.path) {\n target.path = relative.path;\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n //target.authority = base.authority;\n target.userinfo = base.userinfo;\n target.host = base.host;\n target.port = base.port;\n }\n target.scheme = base.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n}\n\nfunction resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: 'null' }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n}\n\nfunction normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n}\n\nfunction equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n}\n\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n //report missing host\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n components.port = undefined;\n }\n //normalize the empty path\n if (!components.path) {\n components.path = \"/\";\n }\n //NOTE: We do not parse query strings for HTTP URIs\n //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n //and not the HTTP spec.\n return components;\n }\n};\n\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length; x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders) mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n //convert Unicode IDN -> ASCII IDN\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length; x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n //convert IDN via punycode\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n};\n\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n};\n\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n //normalize UUID\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n};\n\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=uri.all.js.map\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n"],"names":["compareVersions","LATEST_VERSION","SCHEMAS","EXTENSIONS","itemAndCollection","classification","datacube","eo","file","label","pointcloud","processing","projection","raster","sar","sat","scientific","view","version","timestamps","catalog","collection","item","Object","assign","Ext","parseUrl","url","match","id","V","extensions","set","stac","stac_version","Array","isArray","stac_extensions","ext","e","before","compare","comparator","compareTo","_","type","val","is","includes","isDefined","isObject","obj","rename","oldKey","newKey","copy","forAll","key","fn","i","toArray","flattenArray","newKeys","summary","value","flattenOneElementArray","length","removeFromArray","valueToRemove","index","indexOf","splice","pickFirst","ensure","defaultValue","upgradeExtension","context","extension","findIndex","old","addExtension","newExtension","push","sort","removeExtension","oldExtension","migrateExtensionShortnames","oldShortnames","keys","newSchemas","values","mapValues","populateExtensions","objectsToCheck","assets","concat","item_assets","summaries","properties","links","pop","forEach","bands","prefix","oldValues","newValues","map","mapObject","moveTo","fromSummary","mergedSummary","condition","runAll","migrations","startsWith","toUTC","this","toISOString","error","date","Date","replace","formatString","format","formatter","replaceAll","Checksum","multihash","hexToUint8","hexString","Error","Uint8Array","byte","parseInt","uint8ToHex","bytes","reduce","str","toString","padStart","toMultihash","algo","encoded","encode","console","warn","Catalog","migrate","updateVersionNumber","Collection","spatial","bbox","temporal","interval","extent","min","max","start","end","unshift","count","Math","union","fill","middle","c","collectionAssets","Asset","migrateAll","itemAsset","other_properties","prop","minimum","maximum","filter","v","a","b","find","link","rel","Fields","Item","geometry","commons","CollectionCollection","object","collections","ItemCollection","itemCollection","features","feature","field","asset","mediaTypes","Band","band","_commonMetadata","_timestamps","_versioningIndicator","checksum","o","description","cube","dtr","pc","proj","sci","table","Migrate","collectionCollection","license","enableMultihash","module","exports","root","factory","semver","indexOrEnd","q","split","patchIndex","arr","substring","tryParse","isNaN","Number","validate","TypeError","test","v1","v2","s1","s2","n1","n2","sp1","sp2","p1","p2","undefined","allowedOperators","operatorResMap","validateOperator","op","join","operator","res","_inheritsLoose","subClass","superClass","prototype","create","constructor","__proto__","codes","createErrorType","code","message","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","call","name","oneOf","expected","thing","len","String","slice","search","pos","substr","endsWith","this_len","actual","determiner","msg","arg","objectKeys","Duplex","Readable","Writable","method","options","allowHalfOpen","readable","writable","once","onend","_writableState","ended","process","nextTick","onEndNT","self","defineProperty","enumerable","get","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","chunk","encoding","cb","ReadableState","EElistenerCount","emitter","listeners","Stream","Buffer","OurUint8Array","g","window","_uint8ArrayToBuffer","from","_isUint8Array","isBuffer","debug","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","_require","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","prependListener","event","_events","on","stream","isDuplex","objectMode","readableObjectMode","buffer","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","read","_read","destroy","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","state","onEofChunk","chunkInvalid","getPrototypeOf","addChunk","write","maybeReadMore","emit","emitReadable","_undestroy","undestroy","err","isPaused","setEncoding","enc","p","head","content","data","next","clear","MAX_HWM","computeNewHighWaterMark","n","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","src","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","ret","shift","first","consume","endReadable","endReadableNT","wState","finished","xs","x","l","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","stderr","endFn","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","needDrain","pause","dests","ev","addListener","removeAllListeners","apply","arguments","wrap","_this","bind","Symbol","asyncIterator","_fromList","iterable","opts","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","_flush","prefinish","done","_write","err2","CorkedRequest","entry","finish","onCorkedFinish","WritableState","internalUtil","deprecate","realHasInstance","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","last","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","rState","endWritable","corkReq","current","out","hasInstance","Function","cork","uncork","setDefaultEncoding","toLowerCase","_Object$setPrototypeO","_defineProperty","_toPropertyKey","configurable","_toPrimitive","input","hint","prim","toPrimitive","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","resolve","onReadable","wrapForNext","lastPromise","reject","then","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","Promise","promise","_this2","_Object$create","iterator","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","target","source","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_require2","inspect","custom","copyBuffer","offset","tail","s","alloc","allocUnsafe","hasStrings","_getString","_getBuffer","nb","buf","depth","customInspect","readableDestroyed","writableDestroyed","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","ERR_STREAM_PREMATURE_CLOSE","called","_len","args","_key","noop","isRequest","setHeader","abort","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","ERR_MISSING_ARGS","destroyer","closed","to","popCallback","streams","pipeline","destroys","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","duplexKey","hwm","isFinite","floor","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","size","SlowBuffer","$TypeError","listGetNode","list","isDelete","curr","prev","listGet","objects","node","listSet","listHas","listDelete","$o","channel","assert","has","deletedNode","GetIntrinsic","callBound","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","result","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","getSideChannelWeakMap","makeChannel","$channelData","EE","inherits","_isStdio","didOnEnd","isEncoding","_normalizeEncoding","retried","normalizeEncoding","nenc","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckIncomplete","j","utf8CheckExtraBytes","r","utf8Text","total","utf8End","charCodeAt","global","merge","sets","xl","subexp","typeOf","toUpperCase","setInterval","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","NOT_SCHEME","RegExp","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","toConsumableArray","arr2","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","stringFromCharCode","fromCharCode","error$1","RangeError","array","mapDomain","string","parts","labels","ucs2decode","output","counter","extra","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","inputLength","bias","basic","lastIndexOf","oldi","w","t","baseMinusT","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_currentValue2","return","basicLength","handledCPCount","m","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","qMinusT","toUnicode","toASCII","punycode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","c2","_c","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","scheme","userinfo","host","path","query","fragment","_stripLeadingZeros","_normalizeIPv4","matches","_matches","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","acc","lastLongest","longestZeroFields","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","iri","reference","port","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","unescapeComponent","handler","secure","handler$1","isSecure","wsComponents","handler$2","resourceName","_wsComponents$resourc","_wsComponents$resourc2","handler$3","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_x","_xl","subject","body","_x2","_xl2","addr","toAddr","atIdx","localPart","domain","URN_PARSE","handler$5","urnComponents","nid","nss","urnScheme","uriComponents","UUID","handler$6","uuidComponents","uuid","Url","slashes","auth","hostname","hash","pathname","href","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","querystring","urlParse","parseQueryString","slashesDenoteHost","u","urlFormat","urlResolve","urlResolveObject","resolveObject","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","h","ae","esc","encodeURIComponent","escape","qm","stringify","arrayFormat","addQueryPrefix","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute"],"sourceRoot":""} \ No newline at end of file