From 3d806f8771d70f0e4b17ebbc8d046c12b9cc6efe Mon Sep 17 00:00:00 2001 From: Antranig Basman Date: Wed, 9 Oct 2024 13:40:54 +0100 Subject: [PATCH] Updated build for BBEAS and fixed map contrast, and cell labels --- .idea/bagatelle.iml | 1 + build.js | 83 +- docs/css/imerss-core.css | 7 +- docs/css/imerss-viz-all.css | 967 +---------------- docs/css/imerss-viz-lib.css | 1153 ++++++++------------- docs/css/imerss-viz-new-core.css | 796 ++++++++++++++ docs/css/imerss-viz-new.css | 100 ++ docs/css/maplibre-gl.css | 592 +++++------ docs/html/imerss-viz-nomap-wol.html | 4 +- docs/indexBeasOBA.html | 5 +- docs/js/imerss-bbea.js | 2 +- docs/js/imerss-viz-all.js | 12 +- docs/js/imerss-viz-all.js.map | 2 +- docs/js/imerss-viz-lib.js | 10 +- docs/js/imerss-viz-lib.js.map | 2 +- docs/js/imerss-viz-new-core.js | 14 + docs/js/imerss-viz-new-core.js.map | 1 + docs/js/imerss-viz-new.js | 4 +- docs/js/imerss-viz-new.js.map | 2 +- indexBeasOBA.html | 1 + src/assignNames.js | 14 +- src/buildSource/indexBeasOBA.html | 5 +- src/client/css/imerss-core.css | 7 +- src/client/css/maplibre-gl.css | 592 +++++------ src/client/html/imerss-viz-nomap-wol.html | 4 +- src/client/js/new/fluidNew.js | 10 + src/client/js/new/imerss-bbea.js | 2 +- src/client/js/new/imerss-new.js | 143 ++- src/client/js/new/polygon-draw.js | 83 ++ 29 files changed, 2127 insertions(+), 2491 deletions(-) create mode 100644 docs/css/imerss-viz-new-core.css create mode 100644 docs/css/imerss-viz-new.css create mode 100644 docs/js/imerss-viz-new-core.js create mode 100644 docs/js/imerss-viz-new-core.js.map create mode 100644 src/client/js/new/polygon-draw.js diff --git a/.idea/bagatelle.iml b/.idea/bagatelle.iml index ff0829c3..96b2db48 100644 --- a/.idea/bagatelle.iml +++ b/.idea/bagatelle.iml @@ -42,5 +42,6 @@ + \ No newline at end of file diff --git a/build.js b/build.js index cf239ef4..bcbb9aff 100644 --- a/build.js +++ b/build.js @@ -15,11 +15,9 @@ const buildIndex = { "node_modules/infusion/src/lib/jquery/ui/css/default-theme/tooltip.css", "node_modules/infusion/src/lib/jquery/ui/css/default-theme/theme.css", "node_modules/jquery-ui/themes/base/tabs.css", - "node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css", - "src/client/css/maplibre-gl.css", - "src/client/css/mapbox-gl-draw.css", - "node_modules/pretty-checkbox/dist/pretty-checkbox.min.css", // "node_modules/infusion/src/lib/jquery/core/js/jquery.js", + "src/client/css/imerss-core.css", + "src/lib/signals-core.min.js", "node_modules/infusion/src/lib/jquery/ui/js/version.js", "node_modules/infusion/src/lib/jquery/ui/js/keycode.js", "node_modules/jquery-ui/ui/safe-active-element.js", @@ -44,20 +42,18 @@ const buildIndex = { "node_modules/infusion/src/framework/core/js/DataSource.js", "node_modules/infusion/src/framework/core/js/ResourceLoader.js", "node_modules/infusion/src/framework/core/js/ResourceLoader-browser.js", - "node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js", - "node_modules/maplibre-gl/dist/maplibre-gl-dev.js" + "src/client/js/new/fluidNew.js", + "src/client/js/colour.js" ], - - localSource: [ - "src/client/css/imerss-core.css", + oldSource: [ "src/client/css/imerss-viz.css", + "node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js", + "node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css", "src/auxBuild/restoreJQuery.js", "src/lib/jquery-ui-widgets-tabs.js", "src/lib/lz4.js", - "src/lib/signals-core.min.js", "src/client/js/imerss-viz.js", "src/client/js/autocomplete.js", - "src/client/js/colour.js", "src/client/js/leafletMap.js", "src/client/js/datasetControls.js", "src/client/js/leafletMapWithGrid.js", @@ -68,20 +64,28 @@ const buildIndex = { "src/client/js/checklist.js", "src/client/js/xetthecum.js" ], + // Source for simplified environments such as Xetthecum without features like tabs, polygon drawing, etc. + newCoreSource: [ + "node_modules/papaparse/papaparse.min.js", + "src/client/css/maplibre-gl.css", + "node_modules/maplibre-gl/dist/maplibre-gl-dev.js", + "src/client/js/new/taxonDisplay.js", + "src/client/js/new/imerss-new.js", + "src/client/js/new/newChecklist.js" + ], + // Full source for environments with strong focus on biodiversity info newSource: [ - "src/lib/signals-core.min.js", + "src/client/css/mapbox-gl-draw.css", + "node_modules/pretty-checkbox/dist/pretty-checkbox.min.css", + "node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js", + "node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css", "src/lib/jquery-ui-widgets-tabs.js", "src/lib/point-in-polygon.js", "src/utils/utils.js", - "src/client/js/colour.js", - "src/client/js/renderSVG.js", - "src/client/js/new/fluidNew.js", - "src/client/js/new/imerss-new.js", "src/client/js/new/filters.js", + "src/client/js/new/polygon-draw.js", "src/client/js/autocomplete.js", - "src/client/js/tabs.js", - "src/client/js/new/newChecklist.js", - "src/client/js/new/taxonDisplay.js" + "src/client/js/tabs.js" ], codeHeader: "", codeFooter: "", // "\njQuery.noConflict()", @@ -225,40 +229,55 @@ const minify = async function (hash, filename) { }; const buildFromFiles = async function (buildIndex) { - const allFiles = buildIndex.libSource.concat(buildIndex.localSource); - console.log("allFiles ", allFiles); + const allOldFiles = buildIndex.libSource.concat(buildIndex.oldSource); + console.log("allOldFiles ", allOldFiles); - const jsHash = filesToContentHash(allFiles, ".js"); - const fullJsHash = fluid.extend({header: buildIndex.codeHeader}, jsHash, {footer: buildIndex.codeFooter}); - const minifiedAll = await minify(fullJsHash, "imerss-viz-all.js"); + const oldJsHash = filesToContentHash(allOldFiles, ".js"); + const allOldJsHash = fluid.extend({header: buildIndex.codeHeader}, oldJsHash, {footer: buildIndex.codeFooter}); + const minifiedAllOld = await minify(allOldJsHash, "imerss-viz-all.js"); // imerss-viz-lib.js contains just upstream libraries we depend on, to support reasonably easy deploy of "new" framework const libJsHash = filesToContentHash(buildIndex.libSource, ".js"); console.log("libFiles ", buildIndex.libSource); const minifiedLib = await minify(libJsHash, "imerss-viz-lib.js"); + const newCoreJsHash = filesToContentHash(buildIndex.newCoreSource, ".js"); + console.log("newCoreFiles ", buildIndex.newCoreSource); + const newCoreJs = await minify(newCoreJsHash, "imerss-viz-new-core.js"); + const newJsHash = filesToContentHash(buildIndex.newSource, ".js"); console.log("newFiles ", buildIndex.newSource); - const newLib = await minify(newJsHash, "imerss-viz-new.js"); + const newJs = await minify(newJsHash, "imerss-viz-new.js"); fs.removeSync("docs"); fs.ensureDirSync("docs/js"); - fs.writeFileSync("docs/js/imerss-viz-all.js", minifiedAll.code, "utf8"); - fs.writeFileSync("docs/js/imerss-viz-all.js.map", minifiedAll.map); + fs.writeFileSync("docs/js/imerss-viz-all.js", minifiedAllOld.code, "utf8"); + fs.writeFileSync("docs/js/imerss-viz-all.js.map", minifiedAllOld.map); fs.writeFileSync("docs/js/imerss-viz-lib.js", minifiedLib.code, "utf8"); fs.writeFileSync("docs/js/imerss-viz-lib.js.map", minifiedLib.map); - fs.writeFileSync("docs/js/imerss-viz-new.js", newLib.code, "utf8"); - fs.writeFileSync("docs/js/imerss-viz-new.js.map", newLib.map); + fs.writeFileSync("docs/js/imerss-viz-new-core.js", newCoreJs.code, "utf8"); + fs.writeFileSync("docs/js/imerss-viz-new-core.js.map", newCoreJs.map); + fs.writeFileSync("docs/js/imerss-viz-new.js", newJs.code, "utf8"); + fs.writeFileSync("docs/js/imerss-viz-new.js.map", newJs.map); - const cssHash = filesToContentHash(allFiles, ".css"); - const cssConcat = String.prototype.concat.apply("", Object.values(cssHash)); + const allOldCssHash = filesToContentHash(allOldFiles, ".css"); + const allOldCssConcat = String.prototype.concat.apply("", Object.values(allOldCssHash)); const cssLibHash = filesToContentHash(buildIndex.libSource, ".css"); const cssLibConcat = String.prototype.concat.apply("", Object.values(cssLibHash)); + const cssNewCoreHash = filesToContentHash(buildIndex.newCoreSource, ".css"); + const cssNewCoreConcat = String.prototype.concat.apply("", Object.values(cssNewCoreHash)); + + const cssNewHash = filesToContentHash(buildIndex.newSource, ".css"); + const cssNewConcat = String.prototype.concat.apply("", Object.values(cssNewHash)); + fs.ensureDirSync("docs/css"); - fs.writeFileSync("docs/css/imerss-viz-all.css", cssConcat); + fs.writeFileSync("docs/css/imerss-viz-all.css", allOldCssConcat); fs.writeFileSync("docs/css/imerss-viz-lib.css", cssLibConcat); + fs.writeFileSync("docs/css/imerss-viz-new-core.css", cssNewCoreConcat); + fs.writeFileSync("docs/css/imerss-viz-new.css", cssNewConcat); + buildIndex.copy.forEach(function (oneCopy) { copyDep(oneCopy.src, oneCopy.dest); }); diff --git a/docs/css/imerss-core.css b/docs/css/imerss-core.css index 5cf7324c..0434cc74 100644 --- a/docs/css/imerss-core.css +++ b/docs/css/imerss-core.css @@ -102,17 +102,18 @@ transform: scale(.6); } -.pretty .state label:after, .pretty .state label:before { +/* Need to beat builtin definitions even though we are included earlier */ +.pretty.pretty .state label:after, .pretty.pretty .state label:before { width: calc(1em + 0px); height: calc(1em + 0px); } -.pretty.p-icon .state .icon { +.pretty.pretty.p-icon .state .icon { width: calc(1em + 0px); height: calc(1em + 0px); } -.pretty { +.pretty.pretty { margin-right: 0.3em; /* Cancel the wrapping behaviour at higher checklist level */ text-indent: 0; diff --git a/docs/css/imerss-viz-all.css b/docs/css/imerss-viz-all.css index cbedab07..97783cef 100644 --- a/docs/css/imerss-viz-all.css +++ b/docs/css/imerss-viz-all.css @@ -694,964 +694,6 @@ a.ui-button:active, padding: 1em 1.4em; background: none; } -.autocomplete__wrapper{position:relative}.autocomplete__hint,.autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%}.autocomplete__input{background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}@media (-ms-high-contrast:active),(forced-colors:active){.autocomplete__menu{border-color:FieldText}.autocomplete__option{background-color:Field;color:FieldText}.autocomplete__option--focused,.autocomplete__option:hover{forced-color-adjust:none;background-color:SelectedItem;border-color:SelectedItem;color:SelectedItemText;outline-color:SelectedItemText}}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:16px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:19px;line-height:1.31579}}/* Taken from https://github.com/maplibre/maplibre-gl-js/blob/main/src/css/maplibre-gl.css rev 96482e5 - * Hacked to remove absurd button hover definitions - */ - -.maplibregl-map { - font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif; - overflow: hidden; - position: relative; - -webkit-tap-highlight-color: rgb(0 0 0 / 0%); -} - -.maplibregl-canvas { - position: absolute; - left: 0; - top: 0; -} - -.maplibregl-map:fullscreen { - width: 100%; - height: 100%; -} - -.maplibregl-ctrl-group button.maplibregl-ctrl-compass { - touch-action: none; -} - -.maplibregl-canvas-container.maplibregl-interactive, -.maplibregl-ctrl-group button.maplibregl-ctrl-compass { - cursor: grab; - user-select: none; -} - -.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer { - cursor: pointer; -} - -.maplibregl-canvas-container.maplibregl-interactive:active, -.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active { - cursor: grabbing; -} - -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate, -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas { - touch-action: pan-x pan-y; -} - -.maplibregl-canvas-container.maplibregl-touch-drag-pan, -.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas { - touch-action: pinch-zoom; -} - -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan, -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas { - touch-action: none; -} - -.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures, -.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas { - touch-action: pan-x pan-y; -} - -.maplibregl-ctrl-top-left, -.maplibregl-ctrl-top-right, -.maplibregl-ctrl-bottom-left, -.maplibregl-ctrl-bottom-right { - position: absolute; - pointer-events: none; - z-index: 2; -} - -.maplibregl-ctrl-top-left { - top: 0; - left: 0; -} - -.maplibregl-ctrl-top-right { - top: 0; - right: 0; -} - -.maplibregl-ctrl-bottom-left { - bottom: 0; - left: 0; -} - -.maplibregl-ctrl-bottom-right { - right: 0; - bottom: 0; -} - -.maplibregl-ctrl { - clear: both; - pointer-events: auto; - - /* workaround for a Safari bug https://github.com/mapbox/mapbox-gl-js/issues/8185 */ - transform: translate(0, 0); -} - -.maplibregl-ctrl-top-left .maplibregl-ctrl { - margin: 10px 0 0 10px; - float: left; -} - -.maplibregl-ctrl-top-right .maplibregl-ctrl { - margin: 10px 10px 0 0; - float: right; -} - -.maplibregl-ctrl-bottom-left .maplibregl-ctrl { - margin: 0 0 10px 10px; - float: left; -} - -.maplibregl-ctrl-bottom-right .maplibregl-ctrl { - margin: 0 10px 10px 0; - float: right; -} - -.maplibregl-ctrl-group { - border-radius: 4px; - background: #fff; -} - -.maplibregl-ctrl-group:not(:empty) { - box-shadow: 0 0 0 2px rgb(0 0 0 / 10%); -} - -@media (forced-colors: active) { - .maplibregl-ctrl-group:not(:empty) { - box-shadow: 0 0 0 2px ButtonText; - } -} - -.maplibregl-ctrl-group button { - width: 29px; - height: 29px; - display: block; - padding: 0; - outline: none; - border: 0; - box-sizing: border-box; - background-color: transparent; - cursor: pointer; -} - -.maplibregl-ctrl-group button + button { - border-top: 1px solid #ddd; -} - -.maplibregl-ctrl button .maplibregl-ctrl-icon { - display: block; - width: 100%; - height: 100%; - background-repeat: no-repeat; - background-position: center center; -} - -@media (forced-colors: active) { - .maplibregl-ctrl-icon { - background-color: transparent; - } - - .maplibregl-ctrl-group button + button { - border-top: 1px solid ButtonText; - } -} - -/* https://bugzilla.mozilla.org/show_bug.cgi?id=140562 */ -.maplibregl-ctrl button::-moz-focus-inner { - border: 0; - padding: 0; -} - -.maplibregl-ctrl-attrib-button:focus, -.maplibregl-ctrl-group button:focus { - box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%); -} - -.maplibregl-ctrl button:disabled { - cursor: not-allowed; -} - -.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon { - opacity: 0.25; -} - -/* REMOVED AMB -.maplibregl-ctrl button:not(:disabled):hover { - background-color: rgb(0 0 0 / 5%); -} -*/ - -.maplibregl-ctrl-group button:focus:focus-visible { - box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%); -} - -.maplibregl-ctrl-group button:focus:not(:focus-visible) { - box-shadow: none; -} - -.maplibregl-ctrl-group button:focus:first-child { - border-radius: 4px 4px 0 0; -} - -.maplibregl-ctrl-group button:focus:last-child { - border-radius: 0 0 4px 4px; -} - -.maplibregl-ctrl-group button:focus:only-child { - border-radius: inherit; -} - -.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #333); -} - -.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #333); -} - -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #fff); - } - - .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #fff); - } -} - -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #000); - } - - .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #000); - } -} - -.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #333); -} - -.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg"); -} - -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #fff); - } - - .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #fff); - } -} - -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #000); - } - - .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #000); - } -} - -.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #333); -} - -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - @svg-load ctrl-compass-white url("svg/maplibregl-ctrl-compass.svg") { - fill: #fff; - #south { fill: #999; } - } - - background-image: svg-inline(ctrl-compass-white); -} -} - -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #000); - } -} - -@svg-load ctrl-terrain url("svg/maplibregl-ctrl-terrain.svg") { - fill: #333; - #stroke { display: none; } -} - -@svg-load ctrl-terrain-enabled url("svg/maplibregl-ctrl-terrain.svg") { - fill: #33b5e5; - #stroke { display: none; } -} - -.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-terrain); -} - -.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-terrain-enabled); -} - -@svg-load ctrl-geolocate url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #333; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-white url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #fff; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-black url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #000; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-disabled url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #aaa; - #stroke { fill: #f00; } -} - -@svg-load ctrl-geolocate-disabled-white url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #999; - #stroke { fill: #f00; } -} - -@svg-load ctrl-geolocate-disabled-black url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #666; - #stroke { fill: #f00; } -} - -@svg-load ctrl-geolocate-active url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #33b5e5; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-active-error url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #e58978; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-background url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #33b5e5; - #stroke { display: none; } - #dot { display: none; } -} - -@svg-load ctrl-geolocate-background-error url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #e54e33; - #stroke { display: none; } - #dot { display: none; } -} - -.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate); -} - -.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled); -} - -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active); -} - -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active-error); -} - -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background); -} - -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background-error); -} - -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon { - animation: maplibregl-spin 2s infinite linear; -} - -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-white); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled-white); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active-error); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background-error); - } -} - -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-black); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled-black); - } -} - -@keyframes maplibregl-spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - -a.maplibregl-ctrl-logo { - width: 88px; - height: 23px; - margin: 0 0 -4px -4px; - display: block; - background-repeat: no-repeat; - cursor: pointer; - overflow: hidden; - background-image: svg-load("svg/maplibregl-ctrl-logo.svg"); -} - -a.maplibregl-ctrl-logo.maplibregl-compact { - width: 14px; -} - -@media (forced-colors: active) { - a.maplibregl-ctrl-logo { - @svg-load ctrl-logo-white url("svg/maplibregl-ctrl-logo.svg") { - #outline { opacity: 1; } - #fill { opacity: 1; } - } - - background-color: transparent; - background-image: svg-inline(ctrl-logo-white); -} -} - -@media (forced-colors: active) and (prefers-color-scheme: light) { - a.maplibregl-ctrl-logo { - @svg-load ctrl-logo-black url("svg/maplibregl-ctrl-logo.svg") { - #outline { opacity: 1; fill: #fff; stroke: #fff; } - #fill { opacity: 1; fill: #000; } - } - - background-image: svg-inline(ctrl-logo-black); -} -} - -.maplibregl-ctrl.maplibregl-ctrl-attrib { - padding: 0 5px; - background-color: rgb(255 255 255 / 50%); - margin: 0; -} - -@media screen { - .maplibregl-ctrl-attrib.maplibregl-compact { - min-height: 20px; - padding: 2px 24px 2px 0; - margin: 10px; - position: relative; - background-color: #fff; - color: #000; - border-radius: 12px; - box-sizing: content-box; - } - - .maplibregl-ctrl-attrib.maplibregl-compact-show { - padding: 2px 28px 2px 8px; - visibility: visible; - } - - .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact-show, - .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact-show { - padding: 2px 8px 2px 28px; - border-radius: 12px; - } - - .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner { - display: none; - } - - .maplibregl-ctrl-attrib-button { - display: none; - cursor: pointer; - position: absolute; - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg"); - background-color: rgb(255 255 255 / 50%); - width: 24px; - height: 24px; - box-sizing: border-box; - border-radius: 12px; - outline: none; - top: 0; - right: 0; - border: 0; - } - - .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button { - appearance: none; - list-style: none; - } - - .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker { - display: none; - } - - .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button, - .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button { - left: 0; - } - - .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button, - .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner { - display: block; - } - - .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button { - background-color: rgb(0 0 0 / 5%); - } - - .maplibregl-ctrl-bottom-right > .maplibregl-ctrl-attrib.maplibregl-compact::after { - bottom: 0; - right: 0; - } - - .maplibregl-ctrl-top-right > .maplibregl-ctrl-attrib.maplibregl-compact::after { - top: 0; - right: 0; - } - - .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact::after { - top: 0; - left: 0; - } - - .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact::after { - bottom: 0; - left: 0; - } -} - -@media screen and (forced-colors: active) { - .maplibregl-ctrl-attrib.maplibregl-compact::after { - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg", fill=#fff); - } -} - -@media screen and (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl-attrib.maplibregl-compact::after { - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg"); - } -} - -.maplibregl-ctrl-attrib a { - color: rgb(0 0 0 / 75%); - text-decoration: none; -} - -.maplibregl-ctrl-attrib a:hover { - color: inherit; - text-decoration: underline; -} - -.maplibregl-attrib-empty { - display: none; -} - -.maplibregl-ctrl-scale { - background-color: rgb(255 255 255 / 75%); - font-size: 10px; - border-width: medium 2px 2px; - border-style: none solid solid; - border-color: #333; - padding: 0 5px; - color: #333; - box-sizing: border-box; -} - -.maplibregl-popup { - position: absolute; - top: 0; - left: 0; - display: flex; - will-change: transform; - pointer-events: none; -} - -.maplibregl-popup-anchor-top, -.maplibregl-popup-anchor-top-left, -.maplibregl-popup-anchor-top-right { - flex-direction: column; -} - -.maplibregl-popup-anchor-bottom, -.maplibregl-popup-anchor-bottom-left, -.maplibregl-popup-anchor-bottom-right { - flex-direction: column-reverse; -} - -.maplibregl-popup-anchor-left { - flex-direction: row; -} - -.maplibregl-popup-anchor-right { - flex-direction: row-reverse; -} - -.maplibregl-popup-tip { - width: 0; - height: 0; - border: 10px solid transparent; - z-index: 1; -} - -.maplibregl-popup-anchor-top .maplibregl-popup-tip { - align-self: center; - border-top: none; - border-bottom-color: #fff; -} - -.maplibregl-popup-anchor-top-left .maplibregl-popup-tip { - align-self: flex-start; - border-top: none; - border-left: none; - border-bottom-color: #fff; -} - -.maplibregl-popup-anchor-top-right .maplibregl-popup-tip { - align-self: flex-end; - border-top: none; - border-right: none; - border-bottom-color: #fff; -} - -.maplibregl-popup-anchor-bottom .maplibregl-popup-tip { - align-self: center; - border-bottom: none; - border-top-color: #fff; -} - -.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip { - align-self: flex-start; - border-bottom: none; - border-left: none; - border-top-color: #fff; -} - -.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { - align-self: flex-end; - border-bottom: none; - border-right: none; - border-top-color: #fff; -} - -.maplibregl-popup-anchor-left .maplibregl-popup-tip { - align-self: center; - border-left: none; - border-right-color: #fff; -} - -.maplibregl-popup-anchor-right .maplibregl-popup-tip { - align-self: center; - border-right: none; - border-left-color: #fff; -} - -.maplibregl-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; -} - -.maplibregl-popup-close-button:hover { - background-color: rgb(0 0 0 / 5%); -} - -.maplibregl-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgb(0 0 0 / 10%); - padding: 15px 10px; - pointer-events: auto; -} - -.maplibregl-popup-anchor-top-left .maplibregl-popup-content { - border-top-left-radius: 0; -} - -.maplibregl-popup-anchor-top-right .maplibregl-popup-content { - border-top-right-radius: 0; -} - -.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content { - border-bottom-left-radius: 0; -} - -.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content { - border-bottom-right-radius: 0; -} - -.maplibregl-popup-track-pointer { - display: none; -} - -.maplibregl-popup-track-pointer * { - pointer-events: none; - user-select: none; -} - -.maplibregl-map:hover .maplibregl-popup-track-pointer { - display: flex; -} - -.maplibregl-map:active .maplibregl-popup-track-pointer { - display: none; -} - -.maplibregl-marker { - position: absolute; - top: 0; - left: 0; - will-change: transform; - transition: opacity 0.2s; -} - -.maplibregl-user-location-dot { - background-color: #1da1f2; - width: 15px; - height: 15px; - border-radius: 50%; -} - -.maplibregl-user-location-dot::before { - background-color: #1da1f2; - content: ""; - width: 15px; - height: 15px; - border-radius: 50%; - position: absolute; - animation: maplibregl-user-location-dot-pulse 2s infinite; -} - -.maplibregl-user-location-dot::after { - border-radius: 50%; - border: 2px solid #fff; - content: ""; - height: 19px; - left: -2px; - position: absolute; - top: -2px; - width: 19px; - box-sizing: border-box; - box-shadow: 0 0 3px rgb(0 0 0 / 35%); -} - -@keyframes maplibregl-user-location-dot-pulse { - 0% { transform: scale(1); opacity: 1; } - 70% { transform: scale(3); opacity: 0; } - 100% { transform: scale(1); opacity: 0; } -} - -.maplibregl-user-location-dot-stale { - background-color: #aaa; -} - -.maplibregl-user-location-dot-stale::after { - display: none; -} - -.maplibregl-user-location-accuracy-circle { - background-color: #1da1f233; - width: 1px; - height: 1px; - border-radius: 100%; -} - -.maplibregl-crosshair, -.maplibregl-crosshair .maplibregl-interactive, -.maplibregl-crosshair .maplibregl-interactive:active { - cursor: crosshair; -} - -.maplibregl-boxzoom { - position: absolute; - top: 0; - left: 0; - width: 0; - height: 0; - background: #fff; - border: 2px dotted #202020; - opacity: 0.5; -} - -.maplibregl-cooperative-gesture-screen { - background: rgba(0 0 0 / 40%); - position: absolute; - inset: 0; - display: flex; - justify-content: center; - align-items: center; - color: white; - padding: 1rem; - font-size: 1.4em; - line-height: 1.2; - opacity: 0; - pointer-events: none; - transition: opacity 1s ease 1s; - z-index: 99999; -} - -.maplibregl-cooperative-gesture-screen.maplibregl-show { - opacity: 1; - transition: opacity 0.05s; -} - -.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { - display: none; -} - -@media (hover: none), (width <= 480px) { - .maplibregl-cooperative-gesture-screen .maplibregl-desktop-message { - display: none; - } - - .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { - display: block; - } -} - -.maplibregl-pseudo-fullscreen { - position: fixed !important; - width: 100% !important; - height: 100% !important; - top: 0 !important; - left: 0 !important; - z-index: 99999; -}/* Acquired from https://unpkg.com/@mapbox/mapbox-gl-draw@1.4.3/dist/mapbox-gl-draw.css - * and hacked to remove absurd button hover definitions - */ - -/* Override default control style */ -.mapbox-gl-draw_ctrl-bottom-left, -.mapbox-gl-draw_ctrl-top-left { - margin-left:0; - border-radius:0 4px 4px 0; -} -.mapbox-gl-draw_ctrl-top-right, -.mapbox-gl-draw_ctrl-bottom-right { - margin-right:0; - border-radius:4px 0 0 4px; -} - -.mapbox-gl-draw_ctrl-draw-btn { - border-color:rgba(0,0,0,0.9); - color:rgba(255,255,255,0.5); - width:30px; - height:30px; -} - -.mapbox-gl-draw_ctrl-draw-btn { - background-repeat: no-repeat; - background-position: center; -} - -.mapbox-gl-draw_point { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/>%3C/svg>'); -} -.mapbox-gl-draw_polygon { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/>%3C/svg>'); -} -.mapbox-gl-draw_line { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/>%3C/svg>'); -} -.mapbox-gl-draw_trash { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/>%3C/svg>'); -} -.mapbox-gl-draw_uncombine { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m12 2c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm4 4c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm-7 1c-1 0-1 1-.5 1.5.3.3 1 1 1 1l-1 1s-.5.5 0 1 1 0 1 0l1-1 1 1c.5.5 1.5.5 1.5-.5v-4zm-5 3c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l4.9 4.9c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-4.9-4.9c-.1-.2-.4-.3-.7-.3z"/>%3C/svg>'); -} -.mapbox-gl-draw_combine { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M12.1,2c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l4.9,4.9c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-4.9-4.9C12.6,2.1,12.3,2,12.1,2z M8,8C7,8,7,9,7.5,9.5c0.3,0.3,1,1,1,1l-1,1c0,0-0.5,0.5,0,1s1,0,1,0l1-1l1,1 C11,13,12,13,12,12V8H8z M4,10c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1c0.4-0.4,0.4-1,0-1.4 l-1-1C4.5,10.1,4.3,10,4,10z M8,14c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-1-1C8.5,14.1,8.3,14,8,14z"/>%3C/svg>'); -} - -.mapboxgl-map.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: pointer; -} -.mapboxgl-map.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: move; -} -.mapboxgl-map.mouse-add .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: crosshair; -} -.mapboxgl-map.mouse-move.mode-direct_select .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: grab; - cursor: -moz-grab; - cursor: -webkit-grab; -} -.mapboxgl-map.mode-direct_select.feature-vertex.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: move; -} -.mapboxgl-map.mode-direct_select.feature-midpoint.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: cell; -} -.mapboxgl-map.mode-direct_select.feature-feature.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: move; -} -.mapboxgl-map.mode-static.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: grab; - cursor: -moz-grab; - cursor: -webkit-grab; -} - -.mapbox-gl-draw_boxselect { - pointer-events: none; - position: absolute; - top: 0; - left: 0; - width: 0; - height: 0; - background: rgba(0,0,0,.1); - border: 2px dotted #fff; - opacity: 0.5; -} -/** - * pretty-checkbox.css - * - * A pure CSS library to beautify checkbox and radio buttons - * - * Source: https://github.com/lokesh-coder/pretty-checkbox - * Demo: https://lokesh-coder.github.io/pretty-checkbox - * - * Copyright (c) 2017 Lokesh rajendran - */ - -.pretty *{box-sizing:border-box}.pretty input:not([type=checkbox]):not([type=radio]){display:none}.pretty{position:relative;display:inline-block;margin-right:1em;white-space:nowrap;line-height:1}.pretty input{position:absolute;left:0;top:0;min-width:1em;width:100%;height:100%;z-index:2;opacity:0;margin:0;padding:0;cursor:pointer}.pretty .state label{position:initial;display:inline-block;font-weight:400;margin:0;text-indent:1.5em;min-width:calc(1em + 2px)}.pretty .state label:after,.pretty .state label:before{content:'';width:calc(1em + 2px);height:calc(1em + 2px);display:block;box-sizing:border-box;border-radius:0;border:1px solid transparent;z-index:0;position:absolute;left:0;top:calc((0% - (100% - 1em)) - 8%);background-color:transparent}.pretty .state label:before{border-color:#bdc3c7}.pretty .state.p-is-hover,.pretty .state.p-is-indeterminate{display:none}@-webkit-keyframes zoom{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoom{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@-webkit-keyframes tada{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:scale(7);transform:scale(7)}38%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;opacity:1;-webkit-transform:scale(1);transform:scale(1)}55%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.5);transform:scale(1.5)}72%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}81%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.24);transform:scale(1.24)}89%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}95%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.04);transform:scale(1.04)}100%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}}@keyframes tada{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:scale(7);transform:scale(7)}38%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;opacity:1;-webkit-transform:scale(1);transform:scale(1)}55%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.5);transform:scale(1.5)}72%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}81%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.24);transform:scale(1.24)}89%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}95%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.04);transform:scale(1.04)}100%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes jelly{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}40%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}50%{-webkit-transform:scale3d(.85,1.15,1);transform:scale3d(.85,1.15,1)}65%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}75%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes jelly{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}40%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}50%{-webkit-transform:scale3d(.85,1.15,1);transform:scale3d(.85,1.15,1)}65%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}75%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes rotate{0%{opacity:0;-webkit-transform:translateZ(-200px) rotate(-45deg);transform:translateZ(-200px) rotate(-45deg)}100%{opacity:1;-webkit-transform:translateZ(0) rotate(0);transform:translateZ(0) rotate(0)}}@keyframes rotate{0%{opacity:0;-webkit-transform:translateZ(-200px) rotate(-45deg);transform:translateZ(-200px) rotate(-45deg)}100%{opacity:1;-webkit-transform:translateZ(0) rotate(0);transform:translateZ(0) rotate(0)}}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 #bdc3c7}100%{box-shadow:0 0 0 1.5em rgba(189,195,199,0)}}@keyframes pulse{0%{box-shadow:0 0 0 0 #bdc3c7}100%{box-shadow:0 0 0 1.5em rgba(189,195,199,0)}}.pretty.p-default.p-fill .state label:after{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.pretty.p-default .state label:after{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}.pretty.p-default input:checked~.state label:after{background-color:#bdc3c7!important}.pretty.p-default.p-thick .state label:after,.pretty.p-default.p-thick .state label:before{border-width:calc(1em / 7)}.pretty.p-default.p-thick .state label:after{-webkit-transform:scale(.4)!important;-ms-transform:scale(.4)!important;transform:scale(.4)!important}.pretty.p-icon .state .icon{position:absolute;font-size:1em;width:calc(1em + 2px);height:calc(1em + 2px);left:0;z-index:1;text-align:center;line-height:normal;top:calc((0% - (100% - 1em)) - 8%);border:1px solid transparent;opacity:0}.pretty.p-icon .state .icon:before{margin:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1}.pretty.p-icon input:checked~.state .icon{opacity:1}.pretty.p-icon input:checked~.state label:before{border-color:#5a656b}.pretty.p-svg .state .svg{position:absolute;font-size:1em;width:calc(1em + 2px);height:calc(1em + 2px);left:0;z-index:1;text-align:center;line-height:normal;top:calc((0% - (100% - 1em)) - 8%);border:1px solid transparent;opacity:0}.pretty.p-svg .state svg{margin:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1}.pretty.p-svg input:checked~.state .svg{opacity:1}.pretty.p-image .state img{opacity:0;position:absolute;width:calc(1em + 2px);height:calc(1em + 2px);top:0;top:calc((0% - (100% - 1em)) - 8%);left:0;z-index:0;text-align:center;line-height:normal;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-image input:checked~.state img{opacity:1}.pretty.p-switch input{min-width:2em}.pretty.p-switch .state{position:relative}.pretty.p-switch .state:before{content:'';border:1px solid #bdc3c7;border-radius:60px;width:2em;box-sizing:unset;height:calc(1em + 2px);position:absolute;top:0;top:calc((0% - (100% - 1em)) - 16%);z-index:0;transition:all .5s ease}.pretty.p-switch .state label{text-indent:2.5em}.pretty.p-switch .state label:after,.pretty.p-switch .state label:before{transition:all .5s ease;border-radius:100%;left:0;border-color:transparent;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-switch .state label:after{background-color:#bdc3c7!important}.pretty.p-switch input:checked~.state:before{border-color:#5a656b}.pretty.p-switch input:checked~.state label:before{opacity:0}.pretty.p-switch input:checked~.state label:after{background-color:#5a656b!important;left:1em}.pretty.p-switch.p-fill input:checked~.state:before{border-color:#5a656b;background-color:#5a656b!important}.pretty.p-switch.p-fill input:checked~.state label:before{opacity:0}.pretty.p-switch.p-fill input:checked~.state label:after{background-color:#fff!important;left:1em}.pretty.p-switch.p-slim .state:before{height:.1em;background:#bdc3c7!important;top:calc(50% - .1em)}.pretty.p-switch.p-slim input:checked~.state:before{border-color:#5a656b;background-color:#5a656b!important}.pretty.p-has-hover input:hover~.state:not(.p-is-hover){display:none}.pretty.p-has-hover input:hover~.state.p-is-hover{display:block}.pretty.p-has-hover input:hover~.state.p-is-hover .icon{display:block}.pretty.p-has-focus input:focus~.state label:before{box-shadow:0 0 3px 0 #bdc3c7}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state:not(.p-is-indeterminate){display:none}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state.p-is-indeterminate{display:block}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state.p-is-indeterminate .icon{display:block;opacity:1}.pretty.p-toggle .state.p-on{opacity:0;display:none}.pretty.p-toggle .state .icon,.pretty.p-toggle .state .svg,.pretty.p-toggle .state img,.pretty.p-toggle .state.p-off{opacity:1;display:inherit}.pretty.p-toggle .state.p-off .icon{color:#bdc3c7}.pretty.p-toggle input:checked~.state.p-on{opacity:1;display:inherit}.pretty.p-toggle input:checked~.state.p-off{opacity:0;display:none}.pretty.p-plain input:checked~.state label:before,.pretty.p-plain.p-toggle .state label:before{content:none}.pretty.p-plain.p-plain .icon{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.pretty.p-round .state label:after,.pretty.p-round .state label:before{border-radius:100%}.pretty.p-round.p-icon .state .icon{border-radius:100%;overflow:hidden}.pretty.p-round.p-icon .state .icon:before{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-curve .state label:after,.pretty.p-curve .state label:before{border-radius:20%}.pretty.p-smooth .icon,.pretty.p-smooth .svg,.pretty.p-smooth label:after,.pretty.p-smooth label:before{transition:all .5s ease}.pretty.p-smooth input:checked+.state label:after{transition:all .3s ease}.pretty.p-smooth input:checked+.state .icon,.pretty.p-smooth input:checked+.state .svg,.pretty.p-smooth input:checked+.state img{-webkit-animation:zoom .2s ease;animation:zoom .2s ease}.pretty.p-smooth.p-default input:checked+.state label:after{-webkit-animation:zoom .2s ease;animation:zoom .2s ease}.pretty.p-smooth.p-plain input:checked+.state label:before{content:'';-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);transition:all .5s ease}.pretty.p-tada:not(.p-default) input:checked+.state .icon,.pretty.p-tada:not(.p-default) input:checked+.state .svg,.pretty.p-tada:not(.p-default) input:checked+.state img,.pretty.p-tada:not(.p-default) input:checked+.state label:after,.pretty.p-tada:not(.p-default) input:checked+.state label:before{-webkit-animation:tada .7s cubic-bezier(.25,.46,.45,.94) 1 alternate;animation:tada .7s cubic-bezier(.25,.46,.45,.94) 1 alternate;opacity:1}.pretty.p-jelly:not(.p-default) input:checked+.state .icon,.pretty.p-jelly:not(.p-default) input:checked+.state .svg,.pretty.p-jelly:not(.p-default) input:checked+.state img,.pretty.p-jelly:not(.p-default) input:checked+.state label:after,.pretty.p-jelly:not(.p-default) input:checked+.state label:before{-webkit-animation:jelly .7s cubic-bezier(.25,.46,.45,.94);animation:jelly .7s cubic-bezier(.25,.46,.45,.94);opacity:1}.pretty.p-jelly:not(.p-default) input:checked+.state label:before{border-color:transparent}.pretty.p-rotate:not(.p-default) input:checked~.state .icon,.pretty.p-rotate:not(.p-default) input:checked~.state .svg,.pretty.p-rotate:not(.p-default) input:checked~.state img,.pretty.p-rotate:not(.p-default) input:checked~.state label:after,.pretty.p-rotate:not(.p-default) input:checked~.state label:before{-webkit-animation:rotate .7s cubic-bezier(.25,.46,.45,.94);animation:rotate .7s cubic-bezier(.25,.46,.45,.94);opacity:1}.pretty.p-rotate:not(.p-default) input:checked~.state label:before{border-color:transparent}.pretty.p-pulse:not(.p-switch) input:checked~.state label:before{-webkit-animation:pulse 1s;animation:pulse 1s}.pretty input[disabled]{cursor:not-allowed;display:none}.pretty input[disabled]~*{opacity:.5}.pretty.p-locked input{display:none;cursor:not-allowed}.pretty input:checked~.state.p-primary label:after,.pretty.p-toggle .state.p-primary label:after{background-color:#428bca!important}.pretty input:checked~.state.p-primary .icon,.pretty input:checked~.state.p-primary .svg,.pretty.p-toggle .state.p-primary .icon,.pretty.p-toggle .state.p-primary .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-primary-o label:before,.pretty.p-toggle .state.p-primary-o label:before{border-color:#428bca}.pretty input:checked~.state.p-primary-o label:after,.pretty.p-toggle .state.p-primary-o label:after{background-color:transparent}.pretty input:checked~.state.p-primary-o .icon,.pretty input:checked~.state.p-primary-o .svg,.pretty input:checked~.state.p-primary-o svg,.pretty.p-toggle .state.p-primary-o .icon,.pretty.p-toggle .state.p-primary-o .svg,.pretty.p-toggle .state.p-primary-o svg{color:#428bca;stroke:#428bca}.pretty.p-default:not(.p-fill) input:checked~.state.p-primary-o label:after{background-color:#428bca!important}.pretty.p-switch input:checked~.state.p-primary:before{border-color:#428bca}.pretty.p-switch.p-fill input:checked~.state.p-primary:before{background-color:#428bca!important}.pretty.p-switch.p-slim input:checked~.state.p-primary:before{border-color:#245682;background-color:#245682!important}.pretty input:checked~.state.p-info label:after,.pretty.p-toggle .state.p-info label:after{background-color:#5bc0de!important}.pretty input:checked~.state.p-info .icon,.pretty input:checked~.state.p-info .svg,.pretty.p-toggle .state.p-info .icon,.pretty.p-toggle .state.p-info .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-info-o label:before,.pretty.p-toggle .state.p-info-o label:before{border-color:#5bc0de}.pretty input:checked~.state.p-info-o label:after,.pretty.p-toggle .state.p-info-o label:after{background-color:transparent}.pretty input:checked~.state.p-info-o .icon,.pretty input:checked~.state.p-info-o .svg,.pretty input:checked~.state.p-info-o svg,.pretty.p-toggle .state.p-info-o .icon,.pretty.p-toggle .state.p-info-o .svg,.pretty.p-toggle .state.p-info-o svg{color:#5bc0de;stroke:#5bc0de}.pretty.p-default:not(.p-fill) input:checked~.state.p-info-o label:after{background-color:#5bc0de!important}.pretty.p-switch input:checked~.state.p-info:before{border-color:#5bc0de}.pretty.p-switch.p-fill input:checked~.state.p-info:before{background-color:#5bc0de!important}.pretty.p-switch.p-slim input:checked~.state.p-info:before{border-color:#2390b0;background-color:#2390b0!important}.pretty input:checked~.state.p-success label:after,.pretty.p-toggle .state.p-success label:after{background-color:#5cb85c!important}.pretty input:checked~.state.p-success .icon,.pretty input:checked~.state.p-success .svg,.pretty.p-toggle .state.p-success .icon,.pretty.p-toggle .state.p-success .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-success-o label:before,.pretty.p-toggle .state.p-success-o label:before{border-color:#5cb85c}.pretty input:checked~.state.p-success-o label:after,.pretty.p-toggle .state.p-success-o label:after{background-color:transparent}.pretty input:checked~.state.p-success-o .icon,.pretty input:checked~.state.p-success-o .svg,.pretty input:checked~.state.p-success-o svg,.pretty.p-toggle .state.p-success-o .icon,.pretty.p-toggle .state.p-success-o .svg,.pretty.p-toggle .state.p-success-o svg{color:#5cb85c;stroke:#5cb85c}.pretty.p-default:not(.p-fill) input:checked~.state.p-success-o label:after{background-color:#5cb85c!important}.pretty.p-switch input:checked~.state.p-success:before{border-color:#5cb85c}.pretty.p-switch.p-fill input:checked~.state.p-success:before{background-color:#5cb85c!important}.pretty.p-switch.p-slim input:checked~.state.p-success:before{border-color:#357935;background-color:#357935!important}.pretty input:checked~.state.p-warning label:after,.pretty.p-toggle .state.p-warning label:after{background-color:#f0ad4e!important}.pretty input:checked~.state.p-warning .icon,.pretty input:checked~.state.p-warning .svg,.pretty.p-toggle .state.p-warning .icon,.pretty.p-toggle .state.p-warning .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-warning-o label:before,.pretty.p-toggle .state.p-warning-o label:before{border-color:#f0ad4e}.pretty input:checked~.state.p-warning-o label:after,.pretty.p-toggle .state.p-warning-o label:after{background-color:transparent}.pretty input:checked~.state.p-warning-o .icon,.pretty input:checked~.state.p-warning-o .svg,.pretty input:checked~.state.p-warning-o svg,.pretty.p-toggle .state.p-warning-o .icon,.pretty.p-toggle .state.p-warning-o .svg,.pretty.p-toggle .state.p-warning-o svg{color:#f0ad4e;stroke:#f0ad4e}.pretty.p-default:not(.p-fill) input:checked~.state.p-warning-o label:after{background-color:#f0ad4e!important}.pretty.p-switch input:checked~.state.p-warning:before{border-color:#f0ad4e}.pretty.p-switch.p-fill input:checked~.state.p-warning:before{background-color:#f0ad4e!important}.pretty.p-switch.p-slim input:checked~.state.p-warning:before{border-color:#c77c11;background-color:#c77c11!important}.pretty input:checked~.state.p-danger label:after,.pretty.p-toggle .state.p-danger label:after{background-color:#d9534f!important}.pretty input:checked~.state.p-danger .icon,.pretty input:checked~.state.p-danger .svg,.pretty.p-toggle .state.p-danger .icon,.pretty.p-toggle .state.p-danger .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-danger-o label:before,.pretty.p-toggle .state.p-danger-o label:before{border-color:#d9534f}.pretty input:checked~.state.p-danger-o label:after,.pretty.p-toggle .state.p-danger-o label:after{background-color:transparent}.pretty input:checked~.state.p-danger-o .icon,.pretty input:checked~.state.p-danger-o .svg,.pretty input:checked~.state.p-danger-o svg,.pretty.p-toggle .state.p-danger-o .icon,.pretty.p-toggle .state.p-danger-o .svg,.pretty.p-toggle .state.p-danger-o svg{color:#d9534f;stroke:#d9534f}.pretty.p-default:not(.p-fill) input:checked~.state.p-danger-o label:after{background-color:#d9534f!important}.pretty.p-switch input:checked~.state.p-danger:before{border-color:#d9534f}.pretty.p-switch.p-fill input:checked~.state.p-danger:before{background-color:#d9534f!important}.pretty.p-switch.p-slim input:checked~.state.p-danger:before{border-color:#a02622;background-color:#a02622!important}.pretty.p-bigger .icon,.pretty.p-bigger .img,.pretty.p-bigger .svg,.pretty.p-bigger label:after,.pretty.p-bigger label:before{font-size:1.2em!important;top:calc((0% - (100% - 1em)) - 35%)!important}.pretty.p-bigger label{text-indent:1.7em}@media print{.pretty .state .icon,.pretty .state label:after,.pretty .state label:before,.pretty .state:before{color-adjust:exact;-webkit-print-color-adjust:exact;print-color-adjust:exact}} :root { --imerss-scrollbar-width: 12px; } @@ -1756,17 +798,18 @@ a.maplibregl-ctrl-logo.maplibregl-compact { transform: scale(.6); } -.pretty .state label:after, .pretty .state label:before { +/* Need to beat builtin definitions even though we are included earlier */ +.pretty.pretty .state label:after, .pretty.pretty .state label:before { width: calc(1em + 0px); height: calc(1em + 0px); } -.pretty.p-icon .state .icon { +.pretty.pretty.p-icon .state .icon { width: calc(1em + 0px); height: calc(1em + 0px); } -.pretty { +.pretty.pretty { margin-right: 0.3em; /* Cancel the wrapping behaviour at higher checklist level */ text-indent: 0; @@ -2530,4 +1573,4 @@ li.checklist-row { .imerss-taxonDisplay > div { width: 100%; -} \ No newline at end of file +}.autocomplete__wrapper{position:relative}.autocomplete__hint,.autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%}.autocomplete__input{background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}@media (-ms-high-contrast:active),(forced-colors:active){.autocomplete__menu{border-color:FieldText}.autocomplete__option{background-color:Field;color:FieldText}.autocomplete__option--focused,.autocomplete__option:hover{forced-color-adjust:none;background-color:SelectedItem;border-color:SelectedItem;color:SelectedItemText;outline-color:SelectedItemText}}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:16px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:19px;line-height:1.31579}} \ No newline at end of file diff --git a/docs/css/imerss-viz-lib.css b/docs/css/imerss-viz-lib.css index b7dbb4a0..dafaa6dd 100644 --- a/docs/css/imerss-viz-lib.css +++ b/docs/css/imerss-viz-lib.css @@ -694,961 +694,666 @@ a.ui-button:active, padding: 1em 1.4em; background: none; } -.autocomplete__wrapper{position:relative}.autocomplete__hint,.autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%}.autocomplete__input{background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}@media (-ms-high-contrast:active),(forced-colors:active){.autocomplete__menu{border-color:FieldText}.autocomplete__option{background-color:Field;color:FieldText}.autocomplete__option--focused,.autocomplete__option:hover{forced-color-adjust:none;background-color:SelectedItem;border-color:SelectedItem;color:SelectedItemText;outline-color:SelectedItemText}}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:16px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:19px;line-height:1.31579}}/* Taken from https://github.com/maplibre/maplibre-gl-js/blob/main/src/css/maplibre-gl.css rev 96482e5 - * Hacked to remove absurd button hover definitions - */ - -.maplibregl-map { - font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif; - overflow: hidden; - position: relative; - -webkit-tap-highlight-color: rgb(0 0 0 / 0%); -} - -.maplibregl-canvas { - position: absolute; - left: 0; - top: 0; -} - -.maplibregl-map:fullscreen { - width: 100%; - height: 100%; -} - -.maplibregl-ctrl-group button.maplibregl-ctrl-compass { - touch-action: none; +:root { + --imerss-scrollbar-width: 12px; } -.maplibregl-canvas-container.maplibregl-interactive, -.maplibregl-ctrl-group button.maplibregl-ctrl-compass { - cursor: grab; - user-select: none; +.imerss-container ::-webkit-scrollbar { + -webkit-appearance: none; + width: var(--imerss-scrollbar-width); + background-color: #eee } -.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer { - cursor: pointer; +.imerss-container ::-webkit-scrollbar-thumb { + border-radius: 6px; + background-color: #C1C1C1; + -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5); } -.maplibregl-canvas-container.maplibregl-interactive:active, -.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active { - cursor: grabbing; +.imerss-container ::-webkit-scrollbar-thumb:hover { + background-color: #A8A8A8; } -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate, -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas { - touch-action: pan-x pan-y; +#inline-svg { + height: 0px; + position: absolute; } -.maplibregl-canvas-container.maplibregl-touch-drag-pan, -.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas { - touch-action: pinch-zoom; +.imerss-legend-preview { + width: 18px; + height: 18px; + margin: 2px; + border: 1px solid gray; } -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan, -.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas { - touch-action: none; +.imerss-legend-label { + display: inline-block; + width: 8rem; + margin-left: 6px; + position: relative; + top: 1px; } -.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures, -.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas { - touch-action: pan-x pan-y; +.imerss-legend-cell-size { + align-self: center; + font-size: 12px; + padding-top: 5px; } -.maplibregl-ctrl-top-left, -.maplibregl-ctrl-top-right, -.maplibregl-ctrl-bottom-left, -.maplibregl-ctrl-bottom-right { - position: absolute; - pointer-events: none; - z-index: 2; -} +.imerss-legend { + width: 10rem; + margin-left: auto; + margin-right: 10px; + background: #555e; + pointer-events: all; + display: flex; + flex-direction: column; -.maplibregl-ctrl-top-left { - top: 0; - left: 0; + /* This section taken from R Leaflet's ".info" */ + padding: 6px 8px; + font: 14px/16px Arial, Helvetica, sans-serif; + /* background: #555; */ + color: #eee; + box-shadow: 0 0 15px rgba(0,0,0,0.2); + border-radius: 5px; + /* Solution from https://stackoverflow.com/a/21335440 */ + visibility: visible; + transition-property: opacity, visibility; + transition-duration: 400ms; } -.maplibregl-ctrl-top-right { - top: 0; - right: 0; +.imerss-legend-row { + display: flex; + flex-direction: row; + align-items: center; } -.maplibregl-ctrl-bottom-left { - bottom: 0; - left: 0; -} +/* Styling for polygon draw */ -.maplibregl-ctrl-bottom-right { - right: 0; - bottom: 0; +/* Notion from https://stackoverflow.com/questions/6312067/border-radius-background-color-cropped-border */ +.maplibregl-ctrl-group { + overflow: hidden; } -.maplibregl-ctrl { - clear: both; - pointer-events: auto; - - /* workaround for a Safari bug https://github.com/mapbox/mapbox-gl-js/issues/8185 */ - transform: translate(0, 0); +.mapbox-gl-draw_ctrl-draw-btn:hover { + background-color: #eee; } -.maplibregl-ctrl-top-left .maplibregl-ctrl { - margin: 10px 0 0 10px; - float: left; +.mapbox-gl-draw_ctrl-draw-btn.active { + background-color: #ccc; } -.maplibregl-ctrl-top-right .maplibregl-ctrl { - margin: 10px 10px 0 0; - float: right; +.mapbox-gl-draw_ctrl-draw-btn.active:hover { + background-color: #ddd; } -.maplibregl-ctrl-bottom-left .maplibregl-ctrl { - margin: 0 0 10px 10px; - float: left; +.mode-draw_polygon .maplibregl-canvas-container.maplibregl-interactive { + cursor: crosshair; } -.maplibregl-ctrl-bottom-right .maplibregl-ctrl { - margin: 0 10px 10px 0; - float: right; +/* Styling for checkboxes with indeterminate value */ +/* Grabbed definition for default "checked" to apply to indeterminate checkboxes */ +.pretty input[indeterminate="true"]~.state label:after { + background-color: #bdc3c7!important; + transform: scale(.6); } -.maplibregl-ctrl-group { - border-radius: 4px; - background: #fff; +/* Need to beat builtin definitions even though we are included earlier */ +.pretty.pretty .state label:after, .pretty.pretty .state label:before { + width: calc(1em + 0px); + height: calc(1em + 0px); } -.maplibregl-ctrl-group:not(:empty) { - box-shadow: 0 0 0 2px rgb(0 0 0 / 10%); +.pretty.pretty.p-icon .state .icon { + width: calc(1em + 0px); + height: calc(1em + 0px); } -@media (forced-colors: active) { - .maplibregl-ctrl-group:not(:empty) { - box-shadow: 0 0 0 2px ButtonText; - } +.pretty.pretty { + margin-right: 0.3em; + /* Cancel the wrapping behaviour at higher checklist level */ + text-indent: 0; } -.maplibregl-ctrl-group button { - width: 29px; - height: 29px; - display: block; - padding: 0; - outline: none; - border: 0; - box-sizing: border-box; - background-color: transparent; - cursor: pointer; -} -.maplibregl-ctrl-group button + button { - border-top: 1px solid #ddd; -} +/** This block refers to standalone viz rather than story + */ -.maplibregl-ctrl button .maplibregl-ctrl-icon { - display: block; - width: 100%; +.imerss-container { + display: flex; + flex-direction: column; height: 100%; - background-repeat: no-repeat; - background-position: center center; + min-height: 0; /* Essential otherwise it overflows */ } -@media (forced-colors: active) { - .maplibregl-ctrl-icon { - background-color: transparent; - } - - .maplibregl-ctrl-group button + button { - border-top: 1px solid ButtonText; - } +.imerss-map-and-taxa { + display: flex; + /** Old viz do this in a column */ + flex-direction: row; } -/* https://bugzilla.mozilla.org/show_bug.cgi?id=140562 */ -.maplibregl-ctrl button::-moz-focus-inner { - border: 0; - padding: 0; +.imerss-tabs-and-search { + display: flex; + flex-direction: column; } -.maplibregl-ctrl-attrib-button:focus, -.maplibregl-ctrl-group button:focus { - box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%); +.imerss-taxa { + display: flex; + flex-direction: row; + /** Grabbed from Xetthecum's style produced by bootstrap */ + font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } -.maplibregl-ctrl button:disabled { - cursor: not-allowed; -} -.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon { - opacity: 0.25; +/* Refers to a viz map e.g. gridded rather than story which is .mxcw-map */ +.imerss-map { + height: 100%; + width: 100%; } -/* REMOVED AMB -.maplibregl-ctrl button:not(:disabled):hover { - background-color: rgb(0 0 0 / 5%); -} -*/ -.maplibregl-ctrl-group button:focus:focus-visible { - box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%); +.imerss-clickable { + cursor: pointer; } -.maplibregl-ctrl-group button:focus:not(:focus-visible) { - box-shadow: none; -} +/** Inside, e.g. taxonDisplay-iNat-extern */ -.maplibregl-ctrl-group button:focus:first-child { - border-radius: 4px 4px 0 0; +.external-link { + width: 1rem; + height: 0.9rem; + display: inline-block; + background-image: url("../img/external-link.svg"); + background-repeat: no-repeat; + background-size: 0.9rem; + margin-left: 8px; } -.maplibregl-ctrl-group button:focus:last-child { - border-radius: 0 0 4px 4px; +.imerss-taxonDisplay { + /* height: calc(800px + 6rem); */ /* Viz dimens plus tab height */ + /* width: 480px; */ + width: 100%; + border: black solid 2px; + display: flex; + flex-direction: column; + overflow-y: scroll; + min-width: 320px; } -.maplibregl-ctrl-group button:focus:only-child { - border-radius: inherit; +/** Give some space but absorb space of empty key */ +.taxonDisplay-value.taxonDisplay-wikipediaSummary { + display: block; + margin-top: -12px; } -.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #333); +.imerss-taxonDisplay p { + margin-block-start: 0; + margin-block-end: 0; + text-indent: -2em; + padding-left: 2em } -.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #333); +.taxonDisplay-row { + padding: 10px 8px 6px 8px; + border-bottom: #ccc 2px solid; + width: auto; + min-width: 320px; } -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #fff); - } - - .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #fff); - } +/* unindent nested rows a bit */ +.taxonDisplay-row .taxonDisplay-row { + margin-left: -0.5rem; } -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #000); - } - - .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #000); - } +.taxonDisplay-row.taxonDisplay-expandable-remainder.taxonDisplay-runon-remainder .imerss-media-name { + padding-bottom: 15px; + font-size: 1.1rem; } -.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #333); +.taxonDisplay-row .imerss-media-image { + padding-bottom: 5px; } -.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg"); +.taxonDisplay-row.taxonDisplay-expandable-remainder.taxonDisplay-runon-remainder.taxonDisplay-row { + border-bottom: none; } -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #fff); - } - - .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #fff); - } +.taxonDisplay-row.taxonDisplay-expandable-remainder.taxonDisplay-runon-remainder .taxonDisplay-row .taxonDisplay-key { + margin-left: 1rem; } -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #000); - } - - .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #000); - } +.taxonDisplay-runon-header.taxonDisplay-expanded { + border-bottom: none; + padding-bottom: 0; } -.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #333); +.taxonDisplay-empty-header { + border-bottom: none; } -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - @svg-load ctrl-compass-white url("svg/maplibregl-ctrl-compass.svg") { - fill: #fff; - #south { fill: #999; } - } - - background-image: svg-inline(ctrl-compass-white); -} +.taxonDisplay-empty-row .taxonDisplay-key { + display: none; } -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #000); - } +.taxonDisplay-key { + width: 12em; + margin-right: 4px; + font-weight: bold; + padding: 2px; } -@svg-load ctrl-terrain url("svg/maplibregl-ctrl-terrain.svg") { - fill: #333; - #stroke { display: none; } +.taxonDisplay-value { + width: 100%; } -@svg-load ctrl-terrain-enabled url("svg/maplibregl-ctrl-terrain.svg") { - fill: #33b5e5; - #stroke { display: none; } +.taxonDisplay-expand { + width: 2rem; + background-size: 2rem; + height: 1rem; + background-image: url("../img/Arrow-down.svg"); + cursor: pointer; + float: right; + /* From https://codepen.io/sosuke/pen/Pjoqqp */ + filter: invert(57%) sepia(0%) saturate(6%) hue-rotate(187deg) brightness(94%) contrast(88%); } -.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-terrain); +.taxonDisplay-unexpanded .taxonDisplay-expand { + background-image: url("../img/Arrow-down.svg"); } -.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-terrain-enabled); +.taxonDisplay-expanded .taxonDisplay-expand { + background-image: url("../img/Arrow-up.svg"); } -@svg-load ctrl-geolocate url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #333; - #stroke { display: none; } +.taxonDisplay-runon-remainder.taxonDisplay-unexpanded { + display: none } -@svg-load ctrl-geolocate-white url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #fff; - #stroke { display: none; } +.taxonDisplay-expandable-remainder { + padding-left: 20px; } -@svg-load ctrl-geolocate-black url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #000; - #stroke { display: none; } +.taxonDisplay-expandable-remainder.taxonDisplay-runon-remainder { + padding-left: 8px; /* Back to value in taxonDisplay-row */ + padding-right: 0; /* Avoid right gap */ + padding-top: 0; } -@svg-load ctrl-geolocate-disabled url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #aaa; - #stroke { fill: #f00; } +.taxonDisplay-group > p { + display: none; } -@svg-load ctrl-geolocate-disabled-white url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #999; - #stroke { fill: #f00; } +.taxonDisplay-runon-remainder > .taxonDisplay-key { + padding: 0; + margin: 0; } -@svg-load ctrl-geolocate-disabled-black url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #666; - #stroke { fill: #f00; } +.taxonDisplay-image-holder { + position: relative; + padding-bottom: 8px; + padding-left: 8px; + display: flex; + flex-direction: row; + align-items: center; } -@svg-load ctrl-geolocate-active url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #33b5e5; - #stroke { display: none; } +.taxonDisplay-iNat-extern { + position: absolute; + right: 1rem; + bottom: 1rem; + background: #ddd; + padding: 4px; + padding-left: 6px; + color: black; } -@svg-load ctrl-geolocate-active-error url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #e58978; - #stroke { display: none; } -} -@svg-load ctrl-geolocate-background url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #33b5e5; - #stroke { display: none; } - #dot { display: none; } +.imerss-photo { + width: 100%; + height: 400px; + background-size: cover; + background-position: center center; + background-repeat: no-repeat; + position: relative; } -@svg-load ctrl-geolocate-background-error url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #e54e33; - #stroke { display: none; } - #dot { display: none; } +.imerss-photo-caption { + padding-left: 8px; + display: flex; + flex-direction: column; + align-items: center; + font-weight: bold; } -.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate); +.imerss-tooltip .imerss-photo { + width: 165px; + height: 125px; + min-width: auto; } -.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled); +.imerss-tooltip div.text { + max-width: 165px; + margin-top: 0.5rem; } -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active); -} -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active-error); +.imerss-autocomplete { + width: 30em; + margin-left: 1rem; + display: inline-block; } -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background); +.imerss-autocomplete-row { + text-align: center; + padding-top: 1rem; + padding-bottom: 1rem; } -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background-error); +.imerss-autocomplete-row label { + font-size: 1.3rem; + font-weight: bold; } -.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon { - animation: maplibregl-spin 2s infinite linear; +.autocomplete__menu { + max-height: 600px; } -@media (forced-colors: active) { - .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-white); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled-white); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active-error); - } - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background); - } - - .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background-error); - } +.imerss-filter-panel { + padding: 2px 1rem 2px 1rem; + display: flex; + flex-direction: column; } -@media (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-black); - } +.imerss-filter { + padding: 2px 0 2px; + border-bottom: 1px solid #dbe3e7; +} - .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled-black); - } +.imerss-filters { + height: 100%; + width: 20rem; + overflow-y: auto; + padding-right: 0.5em; } -@keyframes maplibregl-spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } +.imerss-filter-controls { + display: flex; + flex-direction: row; + align-items: center; } -a.maplibregl-ctrl-logo { - width: 88px; - height: 23px; - margin: 0 0 -4px -4px; - display: block; - background-repeat: no-repeat; +.imerss-reset-filter { cursor: pointer; - overflow: hidden; - background-image: svg-load("svg/maplibregl-ctrl-logo.svg"); + margin-right: 5px; + padding: 2px; + border-radius: 6px; } -a.maplibregl-ctrl-logo.maplibregl-compact { - width: 14px; +.imerss-reset-filter:hover { + /* outline: 1px solid gray;*/ + background: #d0d7de33; } -@media (forced-colors: active) { - a.maplibregl-ctrl-logo { - @svg-load ctrl-logo-white url("svg/maplibregl-ctrl-logo.svg") { - #outline { opacity: 1; } - #fill { opacity: 1; } - } - - background-color: transparent; - background-image: svg-inline(ctrl-logo-white); -} +.imerss-record-reporter { + padding-top: 2px; } -@media (forced-colors: active) and (prefers-color-scheme: light) { - a.maplibregl-ctrl-logo { - @svg-load ctrl-logo-black url("svg/maplibregl-ctrl-logo.svg") { - #outline { opacity: 1; fill: #fff; stroke: #fff; } - #fill { opacity: 1; fill: #000; } - } - - background-image: svg-inline(ctrl-logo-black); +.imerss-filter-title { + font-size: smaller; } + +.imerss-filter-body { + padding-left: 1rem; + position: relative; + display: flex; + flex-direction: row; } -.maplibregl-ctrl.maplibregl-ctrl-attrib { - padding: 0 5px; - background-color: rgb(255 255 255 / 50%); - margin: 0; +.imerss-filter-clear { + background-image: url(../img/x-circle-close.svg); + background-size: 20px; + position: absolute; + right: 5px; + cursor: pointer; + width: 20px; + height: 20px; } -@media screen { - .maplibregl-ctrl-attrib.maplibregl-compact { - min-height: 20px; - padding: 2px 24px 2px 0; - margin: 10px; - position: relative; - background-color: #fff; - color: #000; - border-radius: 12px; - box-sizing: content-box; - } - - .maplibregl-ctrl-attrib.maplibregl-compact-show { - padding: 2px 28px 2px 8px; - visibility: visible; - } - - .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact-show, - .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact-show { - padding: 2px 8px 2px 28px; - border-radius: 12px; - } - - .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner { - display: none; - } - - .maplibregl-ctrl-attrib-button { - display: none; - cursor: pointer; - position: absolute; - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg"); - background-color: rgb(255 255 255 / 50%); - width: 24px; - height: 24px; - box-sizing: border-box; - border-radius: 12px; - outline: none; - top: 0; - right: 0; - border: 0; - } - - .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button { - appearance: none; - list-style: none; - } - - .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker { - display: none; - } - - .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button, - .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button { - left: 0; - } - - .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button, - .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner { - display: block; - } - - .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button { - background-color: rgb(0 0 0 / 5%); - } - - .maplibregl-ctrl-bottom-right > .maplibregl-ctrl-attrib.maplibregl-compact::after { - bottom: 0; - right: 0; - } - - .maplibregl-ctrl-top-right > .maplibregl-ctrl-attrib.maplibregl-compact::after { - top: 0; - right: 0; - } - - .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact::after { - top: 0; - left: 0; - } - - .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact::after { - bottom: 0; - left: 0; - } -} - -@media screen and (forced-colors: active) { - .maplibregl-ctrl-attrib.maplibregl-compact::after { - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg", fill=#fff); - } -} - -@media screen and (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl-attrib.maplibregl-compact::after { - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg"); - } -} - -.maplibregl-ctrl-attrib a { - color: rgb(0 0 0 / 75%); - text-decoration: none; -} - -.maplibregl-ctrl-attrib a:hover { - color: inherit; - text-decoration: underline; -} - -.maplibregl-attrib-empty { +.imerss-filter-clear.imerss-hidden { display: none; } -.maplibregl-ctrl-scale { - background-color: rgb(255 255 255 / 75%); - font-size: 10px; - border-width: medium 2px 2px; - border-style: none solid solid; - border-color: #333; - padding: 0 5px; - color: #333; - box-sizing: border-box; +.imerss-filters .autocomplete__hint, .imerss-filters .autocomplete__input, .imerss-filters .autocomplete__option { + font-size: 16px; + line-height: 1.25; } -.maplibregl-popup { - position: absolute; - top: 0; - left: 0; - display: flex; - will-change: transform; - pointer-events: none; +.imerss-filters .autocomplete__input--default { + padding: 2px 4px 2px 4px; + border-width: 1px; + width: 15rem; } -.maplibregl-popup-anchor-top, -.maplibregl-popup-anchor-top-left, -.maplibregl-popup-anchor-top-right { +.imerss-region-filter-rows { + display: flex; + font-size: smaller; flex-direction: column; + overflow-y: auto; + align-items: end; } -.maplibregl-popup-anchor-bottom, -.maplibregl-popup-anchor-bottom-left, -.maplibregl-popup-anchor-bottom-right { - flex-direction: column-reverse; -} - -.maplibregl-popup-anchor-left { +.imerss-filter-row { + display: flex; + flex-wrap: nowrap; flex-direction: row; + width: 100%; } -.maplibregl-popup-anchor-right { - flex-direction: row-reverse; -} -.maplibregl-popup-tip { - width: 0; - height: 0; - border: 10px solid transparent; - z-index: 1; -} - -.maplibregl-popup-anchor-top .maplibregl-popup-tip { - align-self: center; - border-top: none; - border-bottom-color: #fff; +#fli-tab-checklist.ui-tabs-panel, #fli-tab-simple-checklist.ui-tabs-panel { + padding: 0; } -.maplibregl-popup-anchor-top-left .maplibregl-popup-tip { - align-self: flex-start; - border-top: none; - border-left: none; - border-bottom-color: #fff; +.imerss-tabs .ui-state-active.ui-tabs-tab { + background: #fff; } -.maplibregl-popup-anchor-top-right .maplibregl-popup-tip { - align-self: flex-end; - border-top: none; - border-right: none; - border-bottom-color: #fff; +.imerss-tabs .ui-state-active.ui-tabs-tab a { + background: #fff; + color: #444; } -.maplibregl-popup-anchor-bottom .maplibregl-popup-tip { - align-self: center; - border-bottom: none; - border-top-color: #fff; +.imerss-checklist-holder { + height: 100%; + display: flex; + flex-direction: column; + padding: 6px; + overflow: auto; } -.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip { - align-self: flex-start; - border-bottom: none; - border-left: none; - border-top-color: #fff; +/** These "panels" currently only exist in the old-style jQuery tabbed panes. This definition is here to make + * Xetthecum phase II panel labels show up in the right place but might be helpful in future. + * These two uses of "imerss-panel-label" (in Xetthecum and BBEAS) are unconnected. + */ +.imerss-panel { + position: relative; } -.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { - align-self: flex-end; - border-bottom: none; - border-right: none; - border-top-color: #fff; +.imerss-panel-label { + font-size: 1.5rem; + padding-bottom: 5px; } -.maplibregl-popup-anchor-left .maplibregl-popup-tip { - align-self: center; - border-left: none; - border-right-color: #fff; +.imerss-copy-checklist { + display: inline-block; + fill: #636c76; + margin-left: 5px; + padding-left: 5px; + padding-top: 5px; + margin-top: -5px; + /* margin-top: -10px; */ + width: 28px; + height: 28px; + cursor: pointer; + border-radius: 6px; + position: relative; + top: 3px; } -.maplibregl-popup-anchor-right .maplibregl-popup-tip { - align-self: center; - border-right: none; - border-left-color: #fff; +.imerss-copy-checklist-copied { + fill: #1a7f37; } -.maplibregl-popup-close-button { - position: absolute; - right: 0; - top: 0; - border: 0; - border-radius: 0 3px 0 0; - cursor: pointer; - background-color: transparent; +.imerss-copy-checklist svg { + /** Ripped off from GitHub so positioning is a little wonky **/ + vertical-align: top; } -.maplibregl-popup-close-button:hover { - background-color: rgb(0 0 0 / 5%); +.imerss-copy-checklist:hover { + background: #d0d7de33; } -.maplibregl-popup-content { - position: relative; - background: #fff; - border-radius: 3px; - box-shadow: 0 1px 2px rgb(0 0 0 / 10%); - padding: 15px 10px; - pointer-events: auto; +.imerss-checklist { + height: 100%; + overflow-y: auto; + /** Otherwise top checkbox gets clipped */ + padding-top: 2px; } -.maplibregl-popup-anchor-top-left .maplibregl-popup-content { - border-top-left-radius: 0; +.imerss-checklist p { + display: inline; + padding: 1px; } -.maplibregl-popup-anchor-top-right .maplibregl-popup-content { - border-top-right-radius: 0; +.imerss-checklist p:hover { + background: #dde; } -.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content { - border-bottom-left-radius: 0; +.checklist-selected { + outline: 2px solid black; } -.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content { - border-bottom-right-radius: 0; +.pretty.p-icon.checklist-fold-control .state .icon { + font-size: 1.5em; + top: -0.18em; + left: -0.16em; + width: 1em; + height: 1em; + opacity: 1; } -.maplibregl-popup-track-pointer { - display: none; +.pretty.checklist-fold-control .state label:before { + border: none; } -.maplibregl-popup-track-pointer * { - pointer-events: none; - user-select: none; +.pretty.checklist-fold-control { + margin-right: -0.3em; + color: #555; } -.maplibregl-map:hover .maplibregl-popup-track-pointer { - display: flex; +.pretty.checklist-fold-control.active { + cursor: pointer; } -.maplibregl-map:active .maplibregl-popup-track-pointer { - display: none; +.imerss-checklist ul { + margin-block-start: 0; + padding-inline-start: 0; + list-style-type: none; } -.maplibregl-marker { - position: absolute; - top: 0; - left: 0; - will-change: transform; - transition: opacity 0.2s; +.imerss-checklist-no-indent ul { + padding-inline-start: 0; } -.maplibregl-user-location-dot { - background-color: #1da1f2; - width: 15px; - height: 15px; - border-radius: 50%; +li.checklist-row { + /** TODO: We put in margin-left: 10px and padding-left: 20px for Xetthecum but this ruins highlighting - figure + * out why we did this + */ + padding-left: 30px; + text-indent: -30px; } -.maplibregl-user-location-dot::before { - background-color: #1da1f2; - content: ""; - width: 15px; - height: 15px; - border-radius: 50%; - position: absolute; - animation: maplibregl-user-location-dot-pulse 2s infinite; +.imerss-checklist > ul { + padding: 0; } -.maplibregl-user-location-dot::after { - border-radius: 50%; - border: 2px solid #fff; - content: ""; - height: 19px; - left: -2px; - position: absolute; - top: -2px; - width: 19px; - box-sizing: border-box; - box-shadow: 0 0 3px rgb(0 0 0 / 35%); +.imerss-checklist-up { + width: 1.5rem; + height: 1.5rem; + min-width: 1.5rem; + min-height: 1.5rem; + background-image: url(../img/up-arrow.svg); + background-size: cover; + margin-bottom: 0.2rem; } -@keyframes maplibregl-user-location-dot-pulse { - 0% { transform: scale(1); opacity: 1; } - 70% { transform: scale(3); opacity: 0; } - 100% { transform: scale(1); opacity: 0; } +.imerss-checklist-up:hover { + outline: 1px solid black; + outline-offset: 1px; } -.maplibregl-user-location-dot-stale { - background-color: #aaa; -} +/* The checklist rank highlighting */ -.maplibregl-user-location-dot-stale::after { - display: none; +.checklist-rank-life > p { + text-transform: uppercase; + font-size: 1.2em; } -.maplibregl-user-location-accuracy-circle { - background-color: #1da1f233; - width: 1px; - height: 1px; - border-radius: 100%; +.checklist-rank-kingdom > p { + text-transform: uppercase; + font-size: 1.2em; } -.maplibregl-crosshair, -.maplibregl-crosshair .maplibregl-interactive, -.maplibregl-crosshair .maplibregl-interactive:active { - cursor: crosshair; +.checklist-rank-phylum > p { + text-transform: uppercase; + font-size: 1.1em; } -.maplibregl-boxzoom { - position: absolute; - top: 0; - left: 0; - width: 0; - height: 0; - background: #fff; - border: 2px dotted #202020; - opacity: 0.5; +.checklist-rank-class > p { + text-transform: uppercase; + font-style: italic; + font-size: 1.0em; } -.maplibregl-cooperative-gesture-screen { - background: rgba(0 0 0 / 40%); - position: absolute; - inset: 0; - display: flex; - justify-content: center; - align-items: center; - color: white; - padding: 1rem; - font-size: 1.4em; - line-height: 1.2; - opacity: 0; - pointer-events: none; - transition: opacity 1s ease 1s; - z-index: 99999; +.checklist-rank-subclass > p { + text-transform: uppercase; + font-size: 1.0em; } -.maplibregl-cooperative-gesture-screen.maplibregl-show { - opacity: 1; - transition: opacity 0.05s; +.checklist-rank-order > p { + text-transform: uppercase; + font-size: 1.0em; } -.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { - display: none; +.checklist-rank-family > p { + text-transform: uppercase; + font-size: 1.0em; } -@media (hover: none), (width <= 480px) { - .maplibregl-cooperative-gesture-screen .maplibregl-desktop-message { - display: none; - } - - .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { - display: block; - } +.checklist-rank-genus > p { + font-size: 1.0em; + font-style: italic; } -.maplibregl-pseudo-fullscreen { - position: fixed !important; - width: 100% !important; - height: 100% !important; - top: 0 !important; - left: 0 !important; - z-index: 99999; -}/* Acquired from https://unpkg.com/@mapbox/mapbox-gl-draw@1.4.3/dist/mapbox-gl-draw.css - * and hacked to remove absurd button hover definitions - */ - -/* Override default control style */ -.mapbox-gl-draw_ctrl-bottom-left, -.mapbox-gl-draw_ctrl-top-left { - margin-left:0; - border-radius:0 4px 4px 0; -} -.mapbox-gl-draw_ctrl-top-right, -.mapbox-gl-draw_ctrl-bottom-right { - margin-right:0; - border-radius:4px 0 0 4px; +.checklist-rank-species > p { + font-size: 1.0em; + font-style: italic; } -.mapbox-gl-draw_ctrl-draw-btn { - border-color:rgba(0,0,0,0.9); - color:rgba(255,255,255,0.5); - width:30px; - height:30px; +.checklist-annote { + font-style: normal } -.mapbox-gl-draw_ctrl-draw-btn { - background-repeat: no-repeat; - background-position: center; -} +/* AS edict of 25th August 2024 - bold for phylum and kingdom names */ -.mapbox-gl-draw_point { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/>%3C/svg>'); -} -.mapbox-gl-draw_polygon { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/>%3C/svg>'); -} -.mapbox-gl-draw_line { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/>%3C/svg>'); -} -.mapbox-gl-draw_trash { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/>%3C/svg>'); -} -.mapbox-gl-draw_uncombine { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m12 2c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm4 4c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm-7 1c-1 0-1 1-.5 1.5.3.3 1 1 1 1l-1 1s-.5.5 0 1 1 0 1 0l1-1 1 1c.5.5 1.5.5 1.5-.5v-4zm-5 3c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l4.9 4.9c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-4.9-4.9c-.1-.2-.4-.3-.7-.3z"/>%3C/svg>'); -} -.mapbox-gl-draw_combine { - background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M12.1,2c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l4.9,4.9c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-4.9-4.9C12.6,2.1,12.3,2,12.1,2z M8,8C7,8,7,9,7.5,9.5c0.3,0.3,1,1,1,1l-1,1c0,0-0.5,0.5,0,1s1,0,1,0l1-1l1,1 C11,13,12,13,12,12V8H8z M4,10c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1c0.4-0.4,0.4-1,0-1.4 l-1-1C4.5,10.1,4.3,10,4,10z M8,14c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-1-1C8.5,14.1,8.3,14,8,14z"/>%3C/svg>'); +.checklist-rank-phylum > .checklist-scientific-name { + font-weight: bold } -.mapboxgl-map.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: pointer; -} -.mapboxgl-map.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: move; +.checklist-rank-kingdom > .checklist-scientific-name { + font-weight: bold } -.mapboxgl-map.mouse-add .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: crosshair; -} -.mapboxgl-map.mouse-move.mode-direct_select .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: grab; - cursor: -moz-grab; - cursor: -webkit-grab; -} -.mapboxgl-map.mode-direct_select.feature-vertex.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: move; -} -.mapboxgl-map.mode-direct_select.feature-midpoint.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: cell; -} -.mapboxgl-map.mode-direct_select.feature-feature.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: move; -} -.mapboxgl-map.mode-static.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { - cursor: grab; - cursor: -moz-grab; - cursor: -webkit-grab; -} - -.mapbox-gl-draw_boxselect { - pointer-events: none; - position: absolute; - top: 0; - left: 0; - width: 0; - height: 0; - background: rgba(0,0,0,.1); - border: 2px dotted #fff; - opacity: 0.5; -} -/** - * pretty-checkbox.css - * - * A pure CSS library to beautify checkbox and radio buttons - * - * Source: https://github.com/lokesh-coder/pretty-checkbox - * Demo: https://lokesh-coder.github.io/pretty-checkbox - * - * Copyright (c) 2017 Lokesh rajendran - */ -.pretty *{box-sizing:border-box}.pretty input:not([type=checkbox]):not([type=radio]){display:none}.pretty{position:relative;display:inline-block;margin-right:1em;white-space:nowrap;line-height:1}.pretty input{position:absolute;left:0;top:0;min-width:1em;width:100%;height:100%;z-index:2;opacity:0;margin:0;padding:0;cursor:pointer}.pretty .state label{position:initial;display:inline-block;font-weight:400;margin:0;text-indent:1.5em;min-width:calc(1em + 2px)}.pretty .state label:after,.pretty .state label:before{content:'';width:calc(1em + 2px);height:calc(1em + 2px);display:block;box-sizing:border-box;border-radius:0;border:1px solid transparent;z-index:0;position:absolute;left:0;top:calc((0% - (100% - 1em)) - 8%);background-color:transparent}.pretty .state label:before{border-color:#bdc3c7}.pretty .state.p-is-hover,.pretty .state.p-is-indeterminate{display:none}@-webkit-keyframes zoom{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoom{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@-webkit-keyframes tada{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:scale(7);transform:scale(7)}38%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;opacity:1;-webkit-transform:scale(1);transform:scale(1)}55%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.5);transform:scale(1.5)}72%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}81%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.24);transform:scale(1.24)}89%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}95%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.04);transform:scale(1.04)}100%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}}@keyframes tada{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:scale(7);transform:scale(7)}38%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;opacity:1;-webkit-transform:scale(1);transform:scale(1)}55%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.5);transform:scale(1.5)}72%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}81%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.24);transform:scale(1.24)}89%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}95%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.04);transform:scale(1.04)}100%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes jelly{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}40%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}50%{-webkit-transform:scale3d(.85,1.15,1);transform:scale3d(.85,1.15,1)}65%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}75%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes jelly{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}40%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}50%{-webkit-transform:scale3d(.85,1.15,1);transform:scale3d(.85,1.15,1)}65%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}75%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes rotate{0%{opacity:0;-webkit-transform:translateZ(-200px) rotate(-45deg);transform:translateZ(-200px) rotate(-45deg)}100%{opacity:1;-webkit-transform:translateZ(0) rotate(0);transform:translateZ(0) rotate(0)}}@keyframes rotate{0%{opacity:0;-webkit-transform:translateZ(-200px) rotate(-45deg);transform:translateZ(-200px) rotate(-45deg)}100%{opacity:1;-webkit-transform:translateZ(0) rotate(0);transform:translateZ(0) rotate(0)}}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 #bdc3c7}100%{box-shadow:0 0 0 1.5em rgba(189,195,199,0)}}@keyframes pulse{0%{box-shadow:0 0 0 0 #bdc3c7}100%{box-shadow:0 0 0 1.5em rgba(189,195,199,0)}}.pretty.p-default.p-fill .state label:after{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.pretty.p-default .state label:after{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}.pretty.p-default input:checked~.state label:after{background-color:#bdc3c7!important}.pretty.p-default.p-thick .state label:after,.pretty.p-default.p-thick .state label:before{border-width:calc(1em / 7)}.pretty.p-default.p-thick .state label:after{-webkit-transform:scale(.4)!important;-ms-transform:scale(.4)!important;transform:scale(.4)!important}.pretty.p-icon .state .icon{position:absolute;font-size:1em;width:calc(1em + 2px);height:calc(1em + 2px);left:0;z-index:1;text-align:center;line-height:normal;top:calc((0% - (100% - 1em)) - 8%);border:1px solid transparent;opacity:0}.pretty.p-icon .state .icon:before{margin:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1}.pretty.p-icon input:checked~.state .icon{opacity:1}.pretty.p-icon input:checked~.state label:before{border-color:#5a656b}.pretty.p-svg .state .svg{position:absolute;font-size:1em;width:calc(1em + 2px);height:calc(1em + 2px);left:0;z-index:1;text-align:center;line-height:normal;top:calc((0% - (100% - 1em)) - 8%);border:1px solid transparent;opacity:0}.pretty.p-svg .state svg{margin:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1}.pretty.p-svg input:checked~.state .svg{opacity:1}.pretty.p-image .state img{opacity:0;position:absolute;width:calc(1em + 2px);height:calc(1em + 2px);top:0;top:calc((0% - (100% - 1em)) - 8%);left:0;z-index:0;text-align:center;line-height:normal;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-image input:checked~.state img{opacity:1}.pretty.p-switch input{min-width:2em}.pretty.p-switch .state{position:relative}.pretty.p-switch .state:before{content:'';border:1px solid #bdc3c7;border-radius:60px;width:2em;box-sizing:unset;height:calc(1em + 2px);position:absolute;top:0;top:calc((0% - (100% - 1em)) - 16%);z-index:0;transition:all .5s ease}.pretty.p-switch .state label{text-indent:2.5em}.pretty.p-switch .state label:after,.pretty.p-switch .state label:before{transition:all .5s ease;border-radius:100%;left:0;border-color:transparent;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-switch .state label:after{background-color:#bdc3c7!important}.pretty.p-switch input:checked~.state:before{border-color:#5a656b}.pretty.p-switch input:checked~.state label:before{opacity:0}.pretty.p-switch input:checked~.state label:after{background-color:#5a656b!important;left:1em}.pretty.p-switch.p-fill input:checked~.state:before{border-color:#5a656b;background-color:#5a656b!important}.pretty.p-switch.p-fill input:checked~.state label:before{opacity:0}.pretty.p-switch.p-fill input:checked~.state label:after{background-color:#fff!important;left:1em}.pretty.p-switch.p-slim .state:before{height:.1em;background:#bdc3c7!important;top:calc(50% - .1em)}.pretty.p-switch.p-slim input:checked~.state:before{border-color:#5a656b;background-color:#5a656b!important}.pretty.p-has-hover input:hover~.state:not(.p-is-hover){display:none}.pretty.p-has-hover input:hover~.state.p-is-hover{display:block}.pretty.p-has-hover input:hover~.state.p-is-hover .icon{display:block}.pretty.p-has-focus input:focus~.state label:before{box-shadow:0 0 3px 0 #bdc3c7}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state:not(.p-is-indeterminate){display:none}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state.p-is-indeterminate{display:block}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state.p-is-indeterminate .icon{display:block;opacity:1}.pretty.p-toggle .state.p-on{opacity:0;display:none}.pretty.p-toggle .state .icon,.pretty.p-toggle .state .svg,.pretty.p-toggle .state img,.pretty.p-toggle .state.p-off{opacity:1;display:inherit}.pretty.p-toggle .state.p-off .icon{color:#bdc3c7}.pretty.p-toggle input:checked~.state.p-on{opacity:1;display:inherit}.pretty.p-toggle input:checked~.state.p-off{opacity:0;display:none}.pretty.p-plain input:checked~.state label:before,.pretty.p-plain.p-toggle .state label:before{content:none}.pretty.p-plain.p-plain .icon{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.pretty.p-round .state label:after,.pretty.p-round .state label:before{border-radius:100%}.pretty.p-round.p-icon .state .icon{border-radius:100%;overflow:hidden}.pretty.p-round.p-icon .state .icon:before{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-curve .state label:after,.pretty.p-curve .state label:before{border-radius:20%}.pretty.p-smooth .icon,.pretty.p-smooth .svg,.pretty.p-smooth label:after,.pretty.p-smooth label:before{transition:all .5s ease}.pretty.p-smooth input:checked+.state label:after{transition:all .3s ease}.pretty.p-smooth input:checked+.state .icon,.pretty.p-smooth input:checked+.state .svg,.pretty.p-smooth input:checked+.state img{-webkit-animation:zoom .2s ease;animation:zoom .2s ease}.pretty.p-smooth.p-default input:checked+.state label:after{-webkit-animation:zoom .2s ease;animation:zoom .2s ease}.pretty.p-smooth.p-plain input:checked+.state label:before{content:'';-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);transition:all .5s ease}.pretty.p-tada:not(.p-default) input:checked+.state .icon,.pretty.p-tada:not(.p-default) input:checked+.state .svg,.pretty.p-tada:not(.p-default) input:checked+.state img,.pretty.p-tada:not(.p-default) input:checked+.state label:after,.pretty.p-tada:not(.p-default) input:checked+.state label:before{-webkit-animation:tada .7s cubic-bezier(.25,.46,.45,.94) 1 alternate;animation:tada .7s cubic-bezier(.25,.46,.45,.94) 1 alternate;opacity:1}.pretty.p-jelly:not(.p-default) input:checked+.state .icon,.pretty.p-jelly:not(.p-default) input:checked+.state .svg,.pretty.p-jelly:not(.p-default) input:checked+.state img,.pretty.p-jelly:not(.p-default) input:checked+.state label:after,.pretty.p-jelly:not(.p-default) input:checked+.state label:before{-webkit-animation:jelly .7s cubic-bezier(.25,.46,.45,.94);animation:jelly .7s cubic-bezier(.25,.46,.45,.94);opacity:1}.pretty.p-jelly:not(.p-default) input:checked+.state label:before{border-color:transparent}.pretty.p-rotate:not(.p-default) input:checked~.state .icon,.pretty.p-rotate:not(.p-default) input:checked~.state .svg,.pretty.p-rotate:not(.p-default) input:checked~.state img,.pretty.p-rotate:not(.p-default) input:checked~.state label:after,.pretty.p-rotate:not(.p-default) input:checked~.state label:before{-webkit-animation:rotate .7s cubic-bezier(.25,.46,.45,.94);animation:rotate .7s cubic-bezier(.25,.46,.45,.94);opacity:1}.pretty.p-rotate:not(.p-default) input:checked~.state label:before{border-color:transparent}.pretty.p-pulse:not(.p-switch) input:checked~.state label:before{-webkit-animation:pulse 1s;animation:pulse 1s}.pretty input[disabled]{cursor:not-allowed;display:none}.pretty input[disabled]~*{opacity:.5}.pretty.p-locked input{display:none;cursor:not-allowed}.pretty input:checked~.state.p-primary label:after,.pretty.p-toggle .state.p-primary label:after{background-color:#428bca!important}.pretty input:checked~.state.p-primary .icon,.pretty input:checked~.state.p-primary .svg,.pretty.p-toggle .state.p-primary .icon,.pretty.p-toggle .state.p-primary .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-primary-o label:before,.pretty.p-toggle .state.p-primary-o label:before{border-color:#428bca}.pretty input:checked~.state.p-primary-o label:after,.pretty.p-toggle .state.p-primary-o label:after{background-color:transparent}.pretty input:checked~.state.p-primary-o .icon,.pretty input:checked~.state.p-primary-o .svg,.pretty input:checked~.state.p-primary-o svg,.pretty.p-toggle .state.p-primary-o .icon,.pretty.p-toggle .state.p-primary-o .svg,.pretty.p-toggle .state.p-primary-o svg{color:#428bca;stroke:#428bca}.pretty.p-default:not(.p-fill) input:checked~.state.p-primary-o label:after{background-color:#428bca!important}.pretty.p-switch input:checked~.state.p-primary:before{border-color:#428bca}.pretty.p-switch.p-fill input:checked~.state.p-primary:before{background-color:#428bca!important}.pretty.p-switch.p-slim input:checked~.state.p-primary:before{border-color:#245682;background-color:#245682!important}.pretty input:checked~.state.p-info label:after,.pretty.p-toggle .state.p-info label:after{background-color:#5bc0de!important}.pretty input:checked~.state.p-info .icon,.pretty input:checked~.state.p-info .svg,.pretty.p-toggle .state.p-info .icon,.pretty.p-toggle .state.p-info .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-info-o label:before,.pretty.p-toggle .state.p-info-o label:before{border-color:#5bc0de}.pretty input:checked~.state.p-info-o label:after,.pretty.p-toggle .state.p-info-o label:after{background-color:transparent}.pretty input:checked~.state.p-info-o .icon,.pretty input:checked~.state.p-info-o .svg,.pretty input:checked~.state.p-info-o svg,.pretty.p-toggle .state.p-info-o .icon,.pretty.p-toggle .state.p-info-o .svg,.pretty.p-toggle .state.p-info-o svg{color:#5bc0de;stroke:#5bc0de}.pretty.p-default:not(.p-fill) input:checked~.state.p-info-o label:after{background-color:#5bc0de!important}.pretty.p-switch input:checked~.state.p-info:before{border-color:#5bc0de}.pretty.p-switch.p-fill input:checked~.state.p-info:before{background-color:#5bc0de!important}.pretty.p-switch.p-slim input:checked~.state.p-info:before{border-color:#2390b0;background-color:#2390b0!important}.pretty input:checked~.state.p-success label:after,.pretty.p-toggle .state.p-success label:after{background-color:#5cb85c!important}.pretty input:checked~.state.p-success .icon,.pretty input:checked~.state.p-success .svg,.pretty.p-toggle .state.p-success .icon,.pretty.p-toggle .state.p-success .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-success-o label:before,.pretty.p-toggle .state.p-success-o label:before{border-color:#5cb85c}.pretty input:checked~.state.p-success-o label:after,.pretty.p-toggle .state.p-success-o label:after{background-color:transparent}.pretty input:checked~.state.p-success-o .icon,.pretty input:checked~.state.p-success-o .svg,.pretty input:checked~.state.p-success-o svg,.pretty.p-toggle .state.p-success-o .icon,.pretty.p-toggle .state.p-success-o .svg,.pretty.p-toggle .state.p-success-o svg{color:#5cb85c;stroke:#5cb85c}.pretty.p-default:not(.p-fill) input:checked~.state.p-success-o label:after{background-color:#5cb85c!important}.pretty.p-switch input:checked~.state.p-success:before{border-color:#5cb85c}.pretty.p-switch.p-fill input:checked~.state.p-success:before{background-color:#5cb85c!important}.pretty.p-switch.p-slim input:checked~.state.p-success:before{border-color:#357935;background-color:#357935!important}.pretty input:checked~.state.p-warning label:after,.pretty.p-toggle .state.p-warning label:after{background-color:#f0ad4e!important}.pretty input:checked~.state.p-warning .icon,.pretty input:checked~.state.p-warning .svg,.pretty.p-toggle .state.p-warning .icon,.pretty.p-toggle .state.p-warning .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-warning-o label:before,.pretty.p-toggle .state.p-warning-o label:before{border-color:#f0ad4e}.pretty input:checked~.state.p-warning-o label:after,.pretty.p-toggle .state.p-warning-o label:after{background-color:transparent}.pretty input:checked~.state.p-warning-o .icon,.pretty input:checked~.state.p-warning-o .svg,.pretty input:checked~.state.p-warning-o svg,.pretty.p-toggle .state.p-warning-o .icon,.pretty.p-toggle .state.p-warning-o .svg,.pretty.p-toggle .state.p-warning-o svg{color:#f0ad4e;stroke:#f0ad4e}.pretty.p-default:not(.p-fill) input:checked~.state.p-warning-o label:after{background-color:#f0ad4e!important}.pretty.p-switch input:checked~.state.p-warning:before{border-color:#f0ad4e}.pretty.p-switch.p-fill input:checked~.state.p-warning:before{background-color:#f0ad4e!important}.pretty.p-switch.p-slim input:checked~.state.p-warning:before{border-color:#c77c11;background-color:#c77c11!important}.pretty input:checked~.state.p-danger label:after,.pretty.p-toggle .state.p-danger label:after{background-color:#d9534f!important}.pretty input:checked~.state.p-danger .icon,.pretty input:checked~.state.p-danger .svg,.pretty.p-toggle .state.p-danger .icon,.pretty.p-toggle .state.p-danger .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-danger-o label:before,.pretty.p-toggle .state.p-danger-o label:before{border-color:#d9534f}.pretty input:checked~.state.p-danger-o label:after,.pretty.p-toggle .state.p-danger-o label:after{background-color:transparent}.pretty input:checked~.state.p-danger-o .icon,.pretty input:checked~.state.p-danger-o .svg,.pretty input:checked~.state.p-danger-o svg,.pretty.p-toggle .state.p-danger-o .icon,.pretty.p-toggle .state.p-danger-o .svg,.pretty.p-toggle .state.p-danger-o svg{color:#d9534f;stroke:#d9534f}.pretty.p-default:not(.p-fill) input:checked~.state.p-danger-o label:after{background-color:#d9534f!important}.pretty.p-switch input:checked~.state.p-danger:before{border-color:#d9534f}.pretty.p-switch.p-fill input:checked~.state.p-danger:before{background-color:#d9534f!important}.pretty.p-switch.p-slim input:checked~.state.p-danger:before{border-color:#a02622;background-color:#a02622!important}.pretty.p-bigger .icon,.pretty.p-bigger .img,.pretty.p-bigger .svg,.pretty.p-bigger label:after,.pretty.p-bigger label:before{font-size:1.2em!important;top:calc((0% - (100% - 1em)) - 35%)!important}.pretty.p-bigger label{text-indent:1.7em}@media print{.pretty .state .icon,.pretty .state label:after,.pretty .state label:before,.pretty .state:before{color-adjust:exact;-webkit-print-color-adjust:exact;print-color-adjust:exact}} +.imerss-checklist-holder .checklist-common-name { + font-style: normal +} \ No newline at end of file diff --git a/docs/css/imerss-viz-new-core.css b/docs/css/imerss-viz-new-core.css new file mode 100644 index 00000000..48bb3180 --- /dev/null +++ b/docs/css/imerss-viz-new-core.css @@ -0,0 +1,796 @@ +/* Taken from https://github.com/maplibre/maplibre-gl-js/blob/main/src/css/maplibre-gl.css rev 96482e5 + * Hacked to remove absurd button hover definition + */ + +.maplibregl-map { + font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif; + overflow: hidden; + position: relative; + -webkit-tap-highlight-color: rgb(0 0 0/0) +} + +.maplibregl-canvas { + left: 0; + position: absolute; + top: 0 +} + +.maplibregl-map:fullscreen { + height: 100%; + width: 100% +} + +.maplibregl-ctrl-group button.maplibregl-ctrl-compass { + touch-action: none +} + +.maplibregl-canvas-container.maplibregl-interactive, +.maplibregl-ctrl-group button.maplibregl-ctrl-compass { + cursor: grab; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none +} + +.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer { + cursor: pointer +} + +.maplibregl-canvas-container.maplibregl-interactive:active, +.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active { + cursor: grabbing +} + +.maplibregl-canvas-container.maplibregl-touch-zoom-rotate, +.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas { + touch-action: pan-x pan-y +} + +.maplibregl-canvas-container.maplibregl-touch-drag-pan, +.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas { + touch-action: pinch-zoom +} + +.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan, +.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas { + touch-action: none +} + +.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures, +.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas { + touch-action: pan-x pan-y +} + +.maplibregl-ctrl-bottom-left, +.maplibregl-ctrl-bottom-right, +.maplibregl-ctrl-top-left, +.maplibregl-ctrl-top-right { + pointer-events: none; + position: absolute; + z-index: 2 +} + +.maplibregl-ctrl-top-left { + left: 0; + top: 0 +} + +.maplibregl-ctrl-top-right { + right: 0; + top: 0 +} + +.maplibregl-ctrl-bottom-left { + bottom: 0; + left: 0 +} + +.maplibregl-ctrl-bottom-right { + bottom: 0; + right: 0 +} + +.maplibregl-ctrl { + clear: both; + pointer-events: auto; + transform: translate(0) +} + +.maplibregl-ctrl-top-left .maplibregl-ctrl { + float: left; + margin: 10px 0 0 10px +} + +.maplibregl-ctrl-top-right .maplibregl-ctrl { + float: right; + margin: 10px 10px 0 0 +} + +.maplibregl-ctrl-bottom-left .maplibregl-ctrl { + float: left; + margin: 0 0 10px 10px +} + +.maplibregl-ctrl-bottom-right .maplibregl-ctrl { + float: right; + margin: 0 10px 10px 0 +} + +.maplibregl-ctrl-group { + background: #fff; + border-radius: 4px +} + +.maplibregl-ctrl-group:not(:empty) { + box-shadow: 0 0 0 2px rgba(0, 0, 0, .1) +} + +@media (-ms-high-contrast:active) { + .maplibregl-ctrl-group:not(:empty) { + box-shadow: 0 0 0 2px ButtonText + } +} + +.maplibregl-ctrl-group button { + background-color: transparent; + border: 0; + box-sizing: border-box; + cursor: pointer; + display: block; + height: 29px; + outline: none; + padding: 0; + width: 29px +} + +.maplibregl-ctrl-group button+button { + border-top: 1px solid #ddd +} + +.maplibregl-ctrl button .maplibregl-ctrl-icon { + background-position: 50%; + background-repeat: no-repeat; + display: block; + height: 100%; + width: 100% +} + +@media (-ms-high-contrast:active) { + .maplibregl-ctrl-icon { + background-color: transparent + } + + .maplibregl-ctrl-group button+button { + border-top: 1px solid ButtonText + } +} + +.maplibregl-ctrl button::-moz-focus-inner { + border: 0; + padding: 0 +} + +.maplibregl-ctrl-attrib-button:focus, +.maplibregl-ctrl-group button:focus { + box-shadow: 0 0 2px 2px #0096ff +} + +.maplibregl-ctrl button:disabled { + cursor: not-allowed +} + +.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon { + opacity: .25 +} + +/* REMOVED AMB +.maplibregl-ctrl button:not(:disabled):hover { + background-color: rgb(0 0 0 / 5%); +} +*/ + +.maplibregl-ctrl-group button:focus:focus-visible { + box-shadow: 0 0 2px 2px #0096ff +} + +.maplibregl-ctrl-group button:focus:not(:focus-visible) { + box-shadow: none +} + +.maplibregl-ctrl-group button:focus:first-child { + border-radius: 4px 4px 0 0 +} + +.maplibregl-ctrl-group button:focus:last-child { + border-radius: 0 0 4px 4px +} + +.maplibregl-ctrl-group button:focus:only-child { + border-radius: inherit +} + +.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E") +} + +@media (-ms-high-contrast:active) { + .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E") + } +} + +.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E") +} + +@media (-ms-high-contrast:active) { + .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E") + } +} + +.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E") +} + +@media (-ms-high-contrast:active) { + .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23999' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E") + } +} + +.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") +} + +.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon { + animation: maplibregl-spin 2s linear infinite +} + +@media (-ms-high-contrast:active) { + .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") + } + + .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E") + } +} + +@keyframes maplibregl-spin { + 0% { + transform: rotate(0deg) + } + + to { + transform: rotate(1turn) + } +} + +a.maplibregl-ctrl-logo { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E"); + background-repeat: no-repeat; + cursor: pointer; + display: block; + height: 23px; + margin: 0 0 -4px -4px; + overflow: hidden; + width: 88px +} + +a.maplibregl-ctrl-logo.maplibregl-compact { + width: 14px +} + +@media (-ms-high-contrast:active) { + a.maplibregl-ctrl-logo { + background-color: transparent; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + a.maplibregl-ctrl-logo { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E") + } +} + +.maplibregl-ctrl.maplibregl-ctrl-attrib { + background-color: hsla(0, 0%, 100%, .5); + margin: 0; + padding: 0 5px +} + +@media screen { + .maplibregl-ctrl-attrib.maplibregl-compact { + background-color: #fff; + border-radius: 12px; + box-sizing: content-box; + margin: 10px; + min-height: 20px; + padding: 2px 24px 2px 0; + position: relative + } + + .maplibregl-ctrl-attrib.maplibregl-compact-show { + padding: 2px 28px 2px 8px; + visibility: visible + } + + .maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show, + .maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show { + border-radius: 12px; + padding: 2px 8px 2px 28px + } + + .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner { + display: none + } + + .maplibregl-ctrl-attrib-button { + background-color: hsla(0, 0%, 100%, .5); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E"); + border: 0; + border-radius: 12px; + box-sizing: border-box; + cursor: pointer; + display: none; + height: 24px; + outline: none; + position: absolute; + right: 0; + top: 0; + width: 24px + } + + .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button { + appearance: none; + list-style: none + } + + .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker { + display: none + } + + .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button, + .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button { + left: 0 + } + + .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button, + .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner { + display: block + } + + .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button { + background-color: rgb(0 0 0/5%) + } + + .maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after { + bottom: 0; + right: 0 + } + + .maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after { + right: 0; + top: 0 + } + + .maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after { + left: 0; + top: 0 + } + + .maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after { + bottom: 0; + left: 0 + } +} + +@media screen and (-ms-high-contrast:active) { + .maplibregl-ctrl-attrib.maplibregl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E") + } +} + +@media screen and (-ms-high-contrast:black-on-white) { + .maplibregl-ctrl-attrib.maplibregl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E") + } +} + +.maplibregl-ctrl-attrib a { + color: rgba(0, 0, 0, .75); + text-decoration: none +} + +.maplibregl-ctrl-attrib a:hover { + color: inherit; + text-decoration: underline +} + +.maplibregl-attrib-empty { + display: none +} + +.maplibregl-ctrl-scale { + background-color: hsla(0, 0%, 100%, .75); + border: 2px solid #333; + border-top: #333; + box-sizing: border-box; + color: #333; + font-size: 10px; + padding: 0 5px +} + +.maplibregl-popup { + display: flex; + left: 0; + pointer-events: none; + position: absolute; + top: 0; + will-change: transform +} + +.maplibregl-popup-anchor-top, +.maplibregl-popup-anchor-top-left, +.maplibregl-popup-anchor-top-right { + flex-direction: column +} + +.maplibregl-popup-anchor-bottom, +.maplibregl-popup-anchor-bottom-left, +.maplibregl-popup-anchor-bottom-right { + flex-direction: column-reverse +} + +.maplibregl-popup-anchor-left { + flex-direction: row +} + +.maplibregl-popup-anchor-right { + flex-direction: row-reverse +} + +.maplibregl-popup-tip { + border: 10px solid transparent; + height: 0; + width: 0; + z-index: 1 +} + +.maplibregl-popup-anchor-top .maplibregl-popup-tip { + align-self: center; + border-bottom-color: #fff; + border-top: none +} + +.maplibregl-popup-anchor-top-left .maplibregl-popup-tip { + align-self: flex-start; + border-bottom-color: #fff; + border-left: none; + border-top: none +} + +.maplibregl-popup-anchor-top-right .maplibregl-popup-tip { + align-self: flex-end; + border-bottom-color: #fff; + border-right: none; + border-top: none +} + +.maplibregl-popup-anchor-bottom .maplibregl-popup-tip { + align-self: center; + border-bottom: none; + border-top-color: #fff +} + +.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip { + align-self: flex-start; + border-bottom: none; + border-left: none; + border-top-color: #fff +} + +.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { + align-self: flex-end; + border-bottom: none; + border-right: none; + border-top-color: #fff +} + +.maplibregl-popup-anchor-left .maplibregl-popup-tip { + align-self: center; + border-left: none; + border-right-color: #fff +} + +.maplibregl-popup-anchor-right .maplibregl-popup-tip { + align-self: center; + border-left-color: #fff; + border-right: none +} + +.maplibregl-popup-close-button { + background-color: transparent; + border: 0; + border-radius: 0 3px 0 0; + cursor: pointer; + position: absolute; + right: 0; + top: 0 +} + +.maplibregl-popup-close-button:hover { + background-color: rgb(0 0 0/5%) +} + +.maplibregl-popup-content { + background: #fff; + border-radius: 3px; + box-shadow: 0 1px 2px rgba(0, 0, 0, .1); + padding: 15px 10px; + pointer-events: auto; + position: relative +} + +.maplibregl-popup-anchor-top-left .maplibregl-popup-content { + border-top-left-radius: 0 +} + +.maplibregl-popup-anchor-top-right .maplibregl-popup-content { + border-top-right-radius: 0 +} + +.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content { + border-bottom-left-radius: 0 +} + +.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content { + border-bottom-right-radius: 0 +} + +.maplibregl-popup-track-pointer { + display: none +} + +.maplibregl-popup-track-pointer * { + pointer-events: none; + user-select: none +} + +.maplibregl-map:hover .maplibregl-popup-track-pointer { + display: flex +} + +.maplibregl-map:active .maplibregl-popup-track-pointer { + display: none +} + +.maplibregl-marker { + left: 0; + position: absolute; + top: 0; + transition: opacity .2s; + will-change: transform +} + +.maplibregl-user-location-dot, +.maplibregl-user-location-dot:before { + background-color: #1da1f2; + border-radius: 50%; + height: 15px; + width: 15px +} + +.maplibregl-user-location-dot:before { + animation: maplibregl-user-location-dot-pulse 2s infinite; + content: ""; + position: absolute +} + +.maplibregl-user-location-dot:after { + border: 2px solid #fff; + border-radius: 50%; + box-shadow: 0 0 3px rgba(0, 0, 0, .35); + box-sizing: border-box; + content: ""; + height: 19px; + left: -2px; + position: absolute; + top: -2px; + width: 19px +} + +@keyframes maplibregl-user-location-dot-pulse { + 0% { + opacity: 1; + transform: scale(1) + } + + 70% { + opacity: 0; + transform: scale(3) + } + + to { + opacity: 0; + transform: scale(1) + } +} + +.maplibregl-user-location-dot-stale { + background-color: #aaa +} + +.maplibregl-user-location-dot-stale:after { + display: none +} + +.maplibregl-user-location-accuracy-circle { + background-color: #1da1f233; + border-radius: 100%; + height: 1px; + width: 1px +} + +.maplibregl-crosshair, +.maplibregl-crosshair .maplibregl-interactive, +.maplibregl-crosshair .maplibregl-interactive:active { + cursor: crosshair +} + +.maplibregl-boxzoom { + background: #fff; + border: 2px dotted #202020; + height: 0; + left: 0; + opacity: .5; + position: absolute; + top: 0; + width: 0 +} + +.maplibregl-cooperative-gesture-screen { + align-items: center; + background: rgba(0, 0, 0, .4); + color: #fff; + display: flex; + font-size: 1.4em; + inset: 0; + justify-content: center; + line-height: 1.2; + opacity: 0; + padding: 1rem; + pointer-events: none; + position: absolute; + transition: opacity 1s ease 1s; + z-index: 99999 +} + +.maplibregl-cooperative-gesture-screen.maplibregl-show { + opacity: 1; + transition: opacity .05s +} + +.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { + display: none +} + +/* Commented out since WebStorm can't parse it +@media (hover:none), (width <= 480px) { + .maplibregl-cooperative-gesture-screen .maplibregl-desktop-message { + display: none + } + + .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { + display: block + } +} +*/ + +.maplibregl-pseudo-fullscreen { + height: 100% !important; + left: 0 !important; + position: fixed !important; + top: 0 !important; + width: 100% !important; + z-index: 99999 +} \ No newline at end of file diff --git a/docs/css/imerss-viz-new.css b/docs/css/imerss-viz-new.css new file mode 100644 index 00000000..003cd581 --- /dev/null +++ b/docs/css/imerss-viz-new.css @@ -0,0 +1,100 @@ +/* Acquired from https://unpkg.com/@mapbox/mapbox-gl-draw@1.4.3/dist/mapbox-gl-draw.css + * and hacked to remove absurd button hover definitions + */ + +/* Override default control style */ +.mapbox-gl-draw_ctrl-bottom-left, +.mapbox-gl-draw_ctrl-top-left { + margin-left:0; + border-radius:0 4px 4px 0; +} +.mapbox-gl-draw_ctrl-top-right, +.mapbox-gl-draw_ctrl-bottom-right { + margin-right:0; + border-radius:4px 0 0 4px; +} + +.mapbox-gl-draw_ctrl-draw-btn { + border-color:rgba(0,0,0,0.9); + color:rgba(255,255,255,0.5); + width:30px; + height:30px; +} + +.mapbox-gl-draw_ctrl-draw-btn { + background-repeat: no-repeat; + background-position: center; +} + +.mapbox-gl-draw_point { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/>%3C/svg>'); +} +.mapbox-gl-draw_polygon { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/>%3C/svg>'); +} +.mapbox-gl-draw_line { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/>%3C/svg>'); +} +.mapbox-gl-draw_trash { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/>%3C/svg>'); +} +.mapbox-gl-draw_uncombine { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m12 2c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm4 4c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm-7 1c-1 0-1 1-.5 1.5.3.3 1 1 1 1l-1 1s-.5.5 0 1 1 0 1 0l1-1 1 1c.5.5 1.5.5 1.5-.5v-4zm-5 3c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l4.9 4.9c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-4.9-4.9c-.1-.2-.4-.3-.7-.3z"/>%3C/svg>'); +} +.mapbox-gl-draw_combine { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M12.1,2c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l4.9,4.9c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-4.9-4.9C12.6,2.1,12.3,2,12.1,2z M8,8C7,8,7,9,7.5,9.5c0.3,0.3,1,1,1,1l-1,1c0,0-0.5,0.5,0,1s1,0,1,0l1-1l1,1 C11,13,12,13,12,12V8H8z M4,10c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1c0.4-0.4,0.4-1,0-1.4 l-1-1C4.5,10.1,4.3,10,4,10z M8,14c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-1-1C8.5,14.1,8.3,14,8,14z"/>%3C/svg>'); +} + +.mapboxgl-map.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: pointer; +} +.mapboxgl-map.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: move; +} +.mapboxgl-map.mouse-add .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: crosshair; +} +.mapboxgl-map.mouse-move.mode-direct_select .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: grab; + cursor: -moz-grab; + cursor: -webkit-grab; +} +.mapboxgl-map.mode-direct_select.feature-vertex.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: move; +} +.mapboxgl-map.mode-direct_select.feature-midpoint.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: cell; +} +.mapboxgl-map.mode-direct_select.feature-feature.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: move; +} +.mapboxgl-map.mode-static.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive { + cursor: grab; + cursor: -moz-grab; + cursor: -webkit-grab; +} + +.mapbox-gl-draw_boxselect { + pointer-events: none; + position: absolute; + top: 0; + left: 0; + width: 0; + height: 0; + background: rgba(0,0,0,.1); + border: 2px dotted #fff; + opacity: 0.5; +} +/** + * pretty-checkbox.css + * + * A pure CSS library to beautify checkbox and radio buttons + * + * Source: https://github.com/lokesh-coder/pretty-checkbox + * Demo: https://lokesh-coder.github.io/pretty-checkbox + * + * Copyright (c) 2017 Lokesh rajendran + */ + +.pretty *{box-sizing:border-box}.pretty input:not([type=checkbox]):not([type=radio]){display:none}.pretty{position:relative;display:inline-block;margin-right:1em;white-space:nowrap;line-height:1}.pretty input{position:absolute;left:0;top:0;min-width:1em;width:100%;height:100%;z-index:2;opacity:0;margin:0;padding:0;cursor:pointer}.pretty .state label{position:initial;display:inline-block;font-weight:400;margin:0;text-indent:1.5em;min-width:calc(1em + 2px)}.pretty .state label:after,.pretty .state label:before{content:'';width:calc(1em + 2px);height:calc(1em + 2px);display:block;box-sizing:border-box;border-radius:0;border:1px solid transparent;z-index:0;position:absolute;left:0;top:calc((0% - (100% - 1em)) - 8%);background-color:transparent}.pretty .state label:before{border-color:#bdc3c7}.pretty .state.p-is-hover,.pretty .state.p-is-indeterminate{display:none}@-webkit-keyframes zoom{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoom{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@-webkit-keyframes tada{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:scale(7);transform:scale(7)}38%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;opacity:1;-webkit-transform:scale(1);transform:scale(1)}55%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.5);transform:scale(1.5)}72%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}81%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.24);transform:scale(1.24)}89%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}95%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.04);transform:scale(1.04)}100%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}}@keyframes tada{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:scale(7);transform:scale(7)}38%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;opacity:1;-webkit-transform:scale(1);transform:scale(1)}55%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.5);transform:scale(1.5)}72%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}81%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.24);transform:scale(1.24)}89%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}95%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:scale(1.04);transform:scale(1.04)}100%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes jelly{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}40%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}50%{-webkit-transform:scale3d(.85,1.15,1);transform:scale3d(.85,1.15,1)}65%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}75%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes jelly{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}40%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}50%{-webkit-transform:scale3d(.85,1.15,1);transform:scale3d(.85,1.15,1)}65%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}75%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes rotate{0%{opacity:0;-webkit-transform:translateZ(-200px) rotate(-45deg);transform:translateZ(-200px) rotate(-45deg)}100%{opacity:1;-webkit-transform:translateZ(0) rotate(0);transform:translateZ(0) rotate(0)}}@keyframes rotate{0%{opacity:0;-webkit-transform:translateZ(-200px) rotate(-45deg);transform:translateZ(-200px) rotate(-45deg)}100%{opacity:1;-webkit-transform:translateZ(0) rotate(0);transform:translateZ(0) rotate(0)}}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 #bdc3c7}100%{box-shadow:0 0 0 1.5em rgba(189,195,199,0)}}@keyframes pulse{0%{box-shadow:0 0 0 0 #bdc3c7}100%{box-shadow:0 0 0 1.5em rgba(189,195,199,0)}}.pretty.p-default.p-fill .state label:after{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.pretty.p-default .state label:after{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}.pretty.p-default input:checked~.state label:after{background-color:#bdc3c7!important}.pretty.p-default.p-thick .state label:after,.pretty.p-default.p-thick .state label:before{border-width:calc(1em / 7)}.pretty.p-default.p-thick .state label:after{-webkit-transform:scale(.4)!important;-ms-transform:scale(.4)!important;transform:scale(.4)!important}.pretty.p-icon .state .icon{position:absolute;font-size:1em;width:calc(1em + 2px);height:calc(1em + 2px);left:0;z-index:1;text-align:center;line-height:normal;top:calc((0% - (100% - 1em)) - 8%);border:1px solid transparent;opacity:0}.pretty.p-icon .state .icon:before{margin:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1}.pretty.p-icon input:checked~.state .icon{opacity:1}.pretty.p-icon input:checked~.state label:before{border-color:#5a656b}.pretty.p-svg .state .svg{position:absolute;font-size:1em;width:calc(1em + 2px);height:calc(1em + 2px);left:0;z-index:1;text-align:center;line-height:normal;top:calc((0% - (100% - 1em)) - 8%);border:1px solid transparent;opacity:0}.pretty.p-svg .state svg{margin:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1}.pretty.p-svg input:checked~.state .svg{opacity:1}.pretty.p-image .state img{opacity:0;position:absolute;width:calc(1em + 2px);height:calc(1em + 2px);top:0;top:calc((0% - (100% - 1em)) - 8%);left:0;z-index:0;text-align:center;line-height:normal;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-image input:checked~.state img{opacity:1}.pretty.p-switch input{min-width:2em}.pretty.p-switch .state{position:relative}.pretty.p-switch .state:before{content:'';border:1px solid #bdc3c7;border-radius:60px;width:2em;box-sizing:unset;height:calc(1em + 2px);position:absolute;top:0;top:calc((0% - (100% - 1em)) - 16%);z-index:0;transition:all .5s ease}.pretty.p-switch .state label{text-indent:2.5em}.pretty.p-switch .state label:after,.pretty.p-switch .state label:before{transition:all .5s ease;border-radius:100%;left:0;border-color:transparent;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-switch .state label:after{background-color:#bdc3c7!important}.pretty.p-switch input:checked~.state:before{border-color:#5a656b}.pretty.p-switch input:checked~.state label:before{opacity:0}.pretty.p-switch input:checked~.state label:after{background-color:#5a656b!important;left:1em}.pretty.p-switch.p-fill input:checked~.state:before{border-color:#5a656b;background-color:#5a656b!important}.pretty.p-switch.p-fill input:checked~.state label:before{opacity:0}.pretty.p-switch.p-fill input:checked~.state label:after{background-color:#fff!important;left:1em}.pretty.p-switch.p-slim .state:before{height:.1em;background:#bdc3c7!important;top:calc(50% - .1em)}.pretty.p-switch.p-slim input:checked~.state:before{border-color:#5a656b;background-color:#5a656b!important}.pretty.p-has-hover input:hover~.state:not(.p-is-hover){display:none}.pretty.p-has-hover input:hover~.state.p-is-hover{display:block}.pretty.p-has-hover input:hover~.state.p-is-hover .icon{display:block}.pretty.p-has-focus input:focus~.state label:before{box-shadow:0 0 3px 0 #bdc3c7}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state:not(.p-is-indeterminate){display:none}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state.p-is-indeterminate{display:block}.pretty.p-has-indeterminate input[type=checkbox]:indeterminate~.state.p-is-indeterminate .icon{display:block;opacity:1}.pretty.p-toggle .state.p-on{opacity:0;display:none}.pretty.p-toggle .state .icon,.pretty.p-toggle .state .svg,.pretty.p-toggle .state img,.pretty.p-toggle .state.p-off{opacity:1;display:inherit}.pretty.p-toggle .state.p-off .icon{color:#bdc3c7}.pretty.p-toggle input:checked~.state.p-on{opacity:1;display:inherit}.pretty.p-toggle input:checked~.state.p-off{opacity:0;display:none}.pretty.p-plain input:checked~.state label:before,.pretty.p-plain.p-toggle .state label:before{content:none}.pretty.p-plain.p-plain .icon{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.pretty.p-round .state label:after,.pretty.p-round .state label:before{border-radius:100%}.pretty.p-round.p-icon .state .icon{border-radius:100%;overflow:hidden}.pretty.p-round.p-icon .state .icon:before{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.pretty.p-curve .state label:after,.pretty.p-curve .state label:before{border-radius:20%}.pretty.p-smooth .icon,.pretty.p-smooth .svg,.pretty.p-smooth label:after,.pretty.p-smooth label:before{transition:all .5s ease}.pretty.p-smooth input:checked+.state label:after{transition:all .3s ease}.pretty.p-smooth input:checked+.state .icon,.pretty.p-smooth input:checked+.state .svg,.pretty.p-smooth input:checked+.state img{-webkit-animation:zoom .2s ease;animation:zoom .2s ease}.pretty.p-smooth.p-default input:checked+.state label:after{-webkit-animation:zoom .2s ease;animation:zoom .2s ease}.pretty.p-smooth.p-plain input:checked+.state label:before{content:'';-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);transition:all .5s ease}.pretty.p-tada:not(.p-default) input:checked+.state .icon,.pretty.p-tada:not(.p-default) input:checked+.state .svg,.pretty.p-tada:not(.p-default) input:checked+.state img,.pretty.p-tada:not(.p-default) input:checked+.state label:after,.pretty.p-tada:not(.p-default) input:checked+.state label:before{-webkit-animation:tada .7s cubic-bezier(.25,.46,.45,.94) 1 alternate;animation:tada .7s cubic-bezier(.25,.46,.45,.94) 1 alternate;opacity:1}.pretty.p-jelly:not(.p-default) input:checked+.state .icon,.pretty.p-jelly:not(.p-default) input:checked+.state .svg,.pretty.p-jelly:not(.p-default) input:checked+.state img,.pretty.p-jelly:not(.p-default) input:checked+.state label:after,.pretty.p-jelly:not(.p-default) input:checked+.state label:before{-webkit-animation:jelly .7s cubic-bezier(.25,.46,.45,.94);animation:jelly .7s cubic-bezier(.25,.46,.45,.94);opacity:1}.pretty.p-jelly:not(.p-default) input:checked+.state label:before{border-color:transparent}.pretty.p-rotate:not(.p-default) input:checked~.state .icon,.pretty.p-rotate:not(.p-default) input:checked~.state .svg,.pretty.p-rotate:not(.p-default) input:checked~.state img,.pretty.p-rotate:not(.p-default) input:checked~.state label:after,.pretty.p-rotate:not(.p-default) input:checked~.state label:before{-webkit-animation:rotate .7s cubic-bezier(.25,.46,.45,.94);animation:rotate .7s cubic-bezier(.25,.46,.45,.94);opacity:1}.pretty.p-rotate:not(.p-default) input:checked~.state label:before{border-color:transparent}.pretty.p-pulse:not(.p-switch) input:checked~.state label:before{-webkit-animation:pulse 1s;animation:pulse 1s}.pretty input[disabled]{cursor:not-allowed;display:none}.pretty input[disabled]~*{opacity:.5}.pretty.p-locked input{display:none;cursor:not-allowed}.pretty input:checked~.state.p-primary label:after,.pretty.p-toggle .state.p-primary label:after{background-color:#428bca!important}.pretty input:checked~.state.p-primary .icon,.pretty input:checked~.state.p-primary .svg,.pretty.p-toggle .state.p-primary .icon,.pretty.p-toggle .state.p-primary .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-primary-o label:before,.pretty.p-toggle .state.p-primary-o label:before{border-color:#428bca}.pretty input:checked~.state.p-primary-o label:after,.pretty.p-toggle .state.p-primary-o label:after{background-color:transparent}.pretty input:checked~.state.p-primary-o .icon,.pretty input:checked~.state.p-primary-o .svg,.pretty input:checked~.state.p-primary-o svg,.pretty.p-toggle .state.p-primary-o .icon,.pretty.p-toggle .state.p-primary-o .svg,.pretty.p-toggle .state.p-primary-o svg{color:#428bca;stroke:#428bca}.pretty.p-default:not(.p-fill) input:checked~.state.p-primary-o label:after{background-color:#428bca!important}.pretty.p-switch input:checked~.state.p-primary:before{border-color:#428bca}.pretty.p-switch.p-fill input:checked~.state.p-primary:before{background-color:#428bca!important}.pretty.p-switch.p-slim input:checked~.state.p-primary:before{border-color:#245682;background-color:#245682!important}.pretty input:checked~.state.p-info label:after,.pretty.p-toggle .state.p-info label:after{background-color:#5bc0de!important}.pretty input:checked~.state.p-info .icon,.pretty input:checked~.state.p-info .svg,.pretty.p-toggle .state.p-info .icon,.pretty.p-toggle .state.p-info .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-info-o label:before,.pretty.p-toggle .state.p-info-o label:before{border-color:#5bc0de}.pretty input:checked~.state.p-info-o label:after,.pretty.p-toggle .state.p-info-o label:after{background-color:transparent}.pretty input:checked~.state.p-info-o .icon,.pretty input:checked~.state.p-info-o .svg,.pretty input:checked~.state.p-info-o svg,.pretty.p-toggle .state.p-info-o .icon,.pretty.p-toggle .state.p-info-o .svg,.pretty.p-toggle .state.p-info-o svg{color:#5bc0de;stroke:#5bc0de}.pretty.p-default:not(.p-fill) input:checked~.state.p-info-o label:after{background-color:#5bc0de!important}.pretty.p-switch input:checked~.state.p-info:before{border-color:#5bc0de}.pretty.p-switch.p-fill input:checked~.state.p-info:before{background-color:#5bc0de!important}.pretty.p-switch.p-slim input:checked~.state.p-info:before{border-color:#2390b0;background-color:#2390b0!important}.pretty input:checked~.state.p-success label:after,.pretty.p-toggle .state.p-success label:after{background-color:#5cb85c!important}.pretty input:checked~.state.p-success .icon,.pretty input:checked~.state.p-success .svg,.pretty.p-toggle .state.p-success .icon,.pretty.p-toggle .state.p-success .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-success-o label:before,.pretty.p-toggle .state.p-success-o label:before{border-color:#5cb85c}.pretty input:checked~.state.p-success-o label:after,.pretty.p-toggle .state.p-success-o label:after{background-color:transparent}.pretty input:checked~.state.p-success-o .icon,.pretty input:checked~.state.p-success-o .svg,.pretty input:checked~.state.p-success-o svg,.pretty.p-toggle .state.p-success-o .icon,.pretty.p-toggle .state.p-success-o .svg,.pretty.p-toggle .state.p-success-o svg{color:#5cb85c;stroke:#5cb85c}.pretty.p-default:not(.p-fill) input:checked~.state.p-success-o label:after{background-color:#5cb85c!important}.pretty.p-switch input:checked~.state.p-success:before{border-color:#5cb85c}.pretty.p-switch.p-fill input:checked~.state.p-success:before{background-color:#5cb85c!important}.pretty.p-switch.p-slim input:checked~.state.p-success:before{border-color:#357935;background-color:#357935!important}.pretty input:checked~.state.p-warning label:after,.pretty.p-toggle .state.p-warning label:after{background-color:#f0ad4e!important}.pretty input:checked~.state.p-warning .icon,.pretty input:checked~.state.p-warning .svg,.pretty.p-toggle .state.p-warning .icon,.pretty.p-toggle .state.p-warning .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-warning-o label:before,.pretty.p-toggle .state.p-warning-o label:before{border-color:#f0ad4e}.pretty input:checked~.state.p-warning-o label:after,.pretty.p-toggle .state.p-warning-o label:after{background-color:transparent}.pretty input:checked~.state.p-warning-o .icon,.pretty input:checked~.state.p-warning-o .svg,.pretty input:checked~.state.p-warning-o svg,.pretty.p-toggle .state.p-warning-o .icon,.pretty.p-toggle .state.p-warning-o .svg,.pretty.p-toggle .state.p-warning-o svg{color:#f0ad4e;stroke:#f0ad4e}.pretty.p-default:not(.p-fill) input:checked~.state.p-warning-o label:after{background-color:#f0ad4e!important}.pretty.p-switch input:checked~.state.p-warning:before{border-color:#f0ad4e}.pretty.p-switch.p-fill input:checked~.state.p-warning:before{background-color:#f0ad4e!important}.pretty.p-switch.p-slim input:checked~.state.p-warning:before{border-color:#c77c11;background-color:#c77c11!important}.pretty input:checked~.state.p-danger label:after,.pretty.p-toggle .state.p-danger label:after{background-color:#d9534f!important}.pretty input:checked~.state.p-danger .icon,.pretty input:checked~.state.p-danger .svg,.pretty.p-toggle .state.p-danger .icon,.pretty.p-toggle .state.p-danger .svg{color:#fff;stroke:#fff}.pretty input:checked~.state.p-danger-o label:before,.pretty.p-toggle .state.p-danger-o label:before{border-color:#d9534f}.pretty input:checked~.state.p-danger-o label:after,.pretty.p-toggle .state.p-danger-o label:after{background-color:transparent}.pretty input:checked~.state.p-danger-o .icon,.pretty input:checked~.state.p-danger-o .svg,.pretty input:checked~.state.p-danger-o svg,.pretty.p-toggle .state.p-danger-o .icon,.pretty.p-toggle .state.p-danger-o .svg,.pretty.p-toggle .state.p-danger-o svg{color:#d9534f;stroke:#d9534f}.pretty.p-default:not(.p-fill) input:checked~.state.p-danger-o label:after{background-color:#d9534f!important}.pretty.p-switch input:checked~.state.p-danger:before{border-color:#d9534f}.pretty.p-switch.p-fill input:checked~.state.p-danger:before{background-color:#d9534f!important}.pretty.p-switch.p-slim input:checked~.state.p-danger:before{border-color:#a02622;background-color:#a02622!important}.pretty.p-bigger .icon,.pretty.p-bigger .img,.pretty.p-bigger .svg,.pretty.p-bigger label:after,.pretty.p-bigger label:before{font-size:1.2em!important;top:calc((0% - (100% - 1em)) - 35%)!important}.pretty.p-bigger label{text-indent:1.7em}@media print{.pretty .state .icon,.pretty .state label:after,.pretty .state label:before,.pretty .state:before{color-adjust:exact;-webkit-print-color-adjust:exact;print-color-adjust:exact}} +.autocomplete__wrapper{position:relative}.autocomplete__hint,.autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%}.autocomplete__input{background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}@media (-ms-high-contrast:active),(forced-colors:active){.autocomplete__menu{border-color:FieldText}.autocomplete__option{background-color:Field;color:FieldText}.autocomplete__option--focused,.autocomplete__option:hover{forced-color-adjust:none;background-color:SelectedItem;border-color:SelectedItem;color:SelectedItemText;outline-color:SelectedItemText}}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:16px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:19px;line-height:1.31579}} \ No newline at end of file diff --git a/docs/css/maplibre-gl.css b/docs/css/maplibre-gl.css index e5599a23..48bb3180 100644 --- a/docs/css/maplibre-gl.css +++ b/docs/css/maplibre-gl.css @@ -1,187 +1,187 @@ /* Taken from https://github.com/maplibre/maplibre-gl-js/blob/main/src/css/maplibre-gl.css rev 96482e5 - * Hacked to remove absurd button hover definitions + * Hacked to remove absurd button hover definition */ .maplibregl-map { - font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif; + font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif; overflow: hidden; position: relative; - -webkit-tap-highlight-color: rgb(0 0 0 / 0%); + -webkit-tap-highlight-color: rgb(0 0 0/0) } .maplibregl-canvas { - position: absolute; left: 0; - top: 0; + position: absolute; + top: 0 } .maplibregl-map:fullscreen { - width: 100%; height: 100%; + width: 100% } .maplibregl-ctrl-group button.maplibregl-ctrl-compass { - touch-action: none; + touch-action: none } .maplibregl-canvas-container.maplibregl-interactive, .maplibregl-ctrl-group button.maplibregl-ctrl-compass { cursor: grab; - user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none } .maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer { - cursor: pointer; + cursor: pointer } .maplibregl-canvas-container.maplibregl-interactive:active, .maplibregl-ctrl-group button.maplibregl-ctrl-compass:active { - cursor: grabbing; + cursor: grabbing } .maplibregl-canvas-container.maplibregl-touch-zoom-rotate, .maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas { - touch-action: pan-x pan-y; + touch-action: pan-x pan-y } .maplibregl-canvas-container.maplibregl-touch-drag-pan, .maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas { - touch-action: pinch-zoom; + touch-action: pinch-zoom } .maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan, .maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas { - touch-action: none; + touch-action: none } .maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures, .maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas { - touch-action: pan-x pan-y; + touch-action: pan-x pan-y } -.maplibregl-ctrl-top-left, -.maplibregl-ctrl-top-right, .maplibregl-ctrl-bottom-left, -.maplibregl-ctrl-bottom-right { - position: absolute; +.maplibregl-ctrl-bottom-right, +.maplibregl-ctrl-top-left, +.maplibregl-ctrl-top-right { pointer-events: none; - z-index: 2; + position: absolute; + z-index: 2 } .maplibregl-ctrl-top-left { - top: 0; left: 0; + top: 0 } .maplibregl-ctrl-top-right { - top: 0; right: 0; + top: 0 } .maplibregl-ctrl-bottom-left { bottom: 0; - left: 0; + left: 0 } .maplibregl-ctrl-bottom-right { - right: 0; bottom: 0; + right: 0 } .maplibregl-ctrl { clear: both; pointer-events: auto; - - /* workaround for a Safari bug https://github.com/mapbox/mapbox-gl-js/issues/8185 */ - transform: translate(0, 0); + transform: translate(0) } .maplibregl-ctrl-top-left .maplibregl-ctrl { - margin: 10px 0 0 10px; float: left; + margin: 10px 0 0 10px } .maplibregl-ctrl-top-right .maplibregl-ctrl { - margin: 10px 10px 0 0; float: right; + margin: 10px 10px 0 0 } .maplibregl-ctrl-bottom-left .maplibregl-ctrl { - margin: 0 0 10px 10px; float: left; + margin: 0 0 10px 10px } .maplibregl-ctrl-bottom-right .maplibregl-ctrl { - margin: 0 10px 10px 0; float: right; + margin: 0 10px 10px 0 } .maplibregl-ctrl-group { - border-radius: 4px; background: #fff; + border-radius: 4px } .maplibregl-ctrl-group:not(:empty) { - box-shadow: 0 0 0 2px rgb(0 0 0 / 10%); + box-shadow: 0 0 0 2px rgba(0, 0, 0, .1) } -@media (forced-colors: active) { +@media (-ms-high-contrast:active) { .maplibregl-ctrl-group:not(:empty) { - box-shadow: 0 0 0 2px ButtonText; + box-shadow: 0 0 0 2px ButtonText } } .maplibregl-ctrl-group button { - width: 29px; - height: 29px; - display: block; - padding: 0; - outline: none; + background-color: transparent; border: 0; box-sizing: border-box; - background-color: transparent; cursor: pointer; + display: block; + height: 29px; + outline: none; + padding: 0; + width: 29px } -.maplibregl-ctrl-group button + button { - border-top: 1px solid #ddd; +.maplibregl-ctrl-group button+button { + border-top: 1px solid #ddd } .maplibregl-ctrl button .maplibregl-ctrl-icon { + background-position: 50%; + background-repeat: no-repeat; display: block; - width: 100%; height: 100%; - background-repeat: no-repeat; - background-position: center center; + width: 100% } -@media (forced-colors: active) { +@media (-ms-high-contrast:active) { .maplibregl-ctrl-icon { - background-color: transparent; + background-color: transparent } - .maplibregl-ctrl-group button + button { - border-top: 1px solid ButtonText; + .maplibregl-ctrl-group button+button { + border-top: 1px solid ButtonText } } -/* https://bugzilla.mozilla.org/show_bug.cgi?id=140562 */ .maplibregl-ctrl button::-moz-focus-inner { border: 0; - padding: 0; + padding: 0 } .maplibregl-ctrl-attrib-button:focus, .maplibregl-ctrl-group button:focus { - box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%); + box-shadow: 0 0 2px 2px #0096ff } .maplibregl-ctrl button:disabled { - cursor: not-allowed; + cursor: not-allowed } .maplibregl-ctrl button:disabled .maplibregl-ctrl-icon { - opacity: 0.25; + opacity: .25 } /* REMOVED AMB @@ -191,670 +191,606 @@ */ .maplibregl-ctrl-group button:focus:focus-visible { - box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%); + box-shadow: 0 0 2px 2px #0096ff } .maplibregl-ctrl-group button:focus:not(:focus-visible) { - box-shadow: none; + box-shadow: none } .maplibregl-ctrl-group button:focus:first-child { - border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0 } .maplibregl-ctrl-group button:focus:last-child { - border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px } .maplibregl-ctrl-group button:focus:only-child { - border-radius: inherit; + border-radius: inherit } .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #333); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #333); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E") } -@media (forced-colors: active) { +@media (-ms-high-contrast:active) { .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #fff); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #fff); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E") } } -@media (forced-colors: active) and (prefers-color-scheme: light) { +@media (-ms-high-contrast:black-on-white) { .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #000); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #000); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E") } } .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #333); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E") } -@media (forced-colors: active) { +@media (-ms-high-contrast:active) { .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #fff); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #fff); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E") } } -@media (forced-colors: active) and (prefers-color-scheme: light) { +@media (-ms-high-contrast:black-on-white) { .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #000); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #000); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E") } } .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #333); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E") } -@media (forced-colors: active) { +@media (-ms-high-contrast:active) { .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - @svg-load ctrl-compass-white url("svg/maplibregl-ctrl-compass.svg") { - fill: #fff; - #south { fill: #999; } + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23999' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E") } - - background-image: svg-inline(ctrl-compass-white); -} } -@media (forced-colors: active) and (prefers-color-scheme: light) { +@media (-ms-high-contrast:black-on-white) { .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon { - background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #000); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E") } } -@svg-load ctrl-terrain url("svg/maplibregl-ctrl-terrain.svg") { - fill: #333; - #stroke { display: none; } -} - -@svg-load ctrl-terrain-enabled url("svg/maplibregl-ctrl-terrain.svg") { - fill: #33b5e5; - #stroke { display: none; } -} - .maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-terrain); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-terrain-enabled); -} - -@svg-load ctrl-geolocate url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #333; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-white url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #fff; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-black url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #000; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-disabled url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #aaa; - #stroke { fill: #f00; } -} - -@svg-load ctrl-geolocate-disabled-white url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #999; - #stroke { fill: #f00; } -} - -@svg-load ctrl-geolocate-disabled-black url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #666; - #stroke { fill: #f00; } -} - -@svg-load ctrl-geolocate-active url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #33b5e5; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-active-error url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #e58978; - #stroke { display: none; } -} - -@svg-load ctrl-geolocate-background url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #33b5e5; - #stroke { display: none; } - #dot { display: none; } -} - -@svg-load ctrl-geolocate-background-error url("svg/maplibregl-ctrl-geolocate.svg") { - fill: #e54e33; - #stroke { display: none; } - #dot { display: none; } + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active-error); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background-error); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon { - animation: maplibregl-spin 2s infinite linear; + animation: maplibregl-spin 2s linear infinite } -@media (forced-colors: active) { +@media (-ms-high-contrast:active) { .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-white); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled-white); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-active-error); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-background-error); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E") } } -@media (forced-colors: active) and (prefers-color-scheme: light) { +@media (-ms-high-contrast:black-on-white) { .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-black); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E") } .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon { - background-image: svg-inline(ctrl-geolocate-disabled-black); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E") } } @keyframes maplibregl-spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } + 0% { + transform: rotate(0deg) + } + + to { + transform: rotate(1turn) + } } a.maplibregl-ctrl-logo { - width: 88px; - height: 23px; - margin: 0 0 -4px -4px; - display: block; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E"); background-repeat: no-repeat; cursor: pointer; + display: block; + height: 23px; + margin: 0 0 -4px -4px; overflow: hidden; - background-image: svg-load("svg/maplibregl-ctrl-logo.svg"); + width: 88px } a.maplibregl-ctrl-logo.maplibregl-compact { - width: 14px; + width: 14px } -@media (forced-colors: active) { +@media (-ms-high-contrast:active) { a.maplibregl-ctrl-logo { - @svg-load ctrl-logo-white url("svg/maplibregl-ctrl-logo.svg") { - #outline { opacity: 1; } - #fill { opacity: 1; } + background-color: transparent; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E") } - - background-color: transparent; - background-image: svg-inline(ctrl-logo-white); -} } -@media (forced-colors: active) and (prefers-color-scheme: light) { +@media (-ms-high-contrast:black-on-white) { a.maplibregl-ctrl-logo { - @svg-load ctrl-logo-black url("svg/maplibregl-ctrl-logo.svg") { - #outline { opacity: 1; fill: #fff; stroke: #fff; } - #fill { opacity: 1; fill: #000; } + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E") } - - background-image: svg-inline(ctrl-logo-black); -} } .maplibregl-ctrl.maplibregl-ctrl-attrib { - padding: 0 5px; - background-color: rgb(255 255 255 / 50%); + background-color: hsla(0, 0%, 100%, .5); margin: 0; + padding: 0 5px } @media screen { .maplibregl-ctrl-attrib.maplibregl-compact { - min-height: 20px; - padding: 2px 24px 2px 0; - margin: 10px; - position: relative; background-color: #fff; - color: #000; border-radius: 12px; box-sizing: content-box; + margin: 10px; + min-height: 20px; + padding: 2px 24px 2px 0; + position: relative } .maplibregl-ctrl-attrib.maplibregl-compact-show { padding: 2px 28px 2px 8px; - visibility: visible; + visibility: visible } - .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact-show, - .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact-show { - padding: 2px 8px 2px 28px; + .maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show, + .maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show { border-radius: 12px; + padding: 2px 8px 2px 28px } .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner { - display: none; + display: none } .maplibregl-ctrl-attrib-button { - display: none; + background-color: hsla(0, 0%, 100%, .5); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E"); + border: 0; + border-radius: 12px; + box-sizing: border-box; cursor: pointer; - position: absolute; - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg"); - background-color: rgb(255 255 255 / 50%); - width: 24px; + display: none; height: 24px; - box-sizing: border-box; - border-radius: 12px; outline: none; - top: 0; + position: absolute; right: 0; - border: 0; + top: 0; + width: 24px } .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button { appearance: none; - list-style: none; + list-style: none } .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker { - display: none; + display: none } - .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button, - .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button { - left: 0; + .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button, + .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button { + left: 0 } .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button, .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner { - display: block; + display: block } .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button { - background-color: rgb(0 0 0 / 5%); + background-color: rgb(0 0 0/5%) } - .maplibregl-ctrl-bottom-right > .maplibregl-ctrl-attrib.maplibregl-compact::after { + .maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after { bottom: 0; - right: 0; + right: 0 } - .maplibregl-ctrl-top-right > .maplibregl-ctrl-attrib.maplibregl-compact::after { - top: 0; + .maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after { right: 0; + top: 0 } - .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact::after { - top: 0; + .maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after { left: 0; + top: 0 } - .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact::after { + .maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after { bottom: 0; - left: 0; + left: 0 } } -@media screen and (forced-colors: active) { - .maplibregl-ctrl-attrib.maplibregl-compact::after { - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg", fill=#fff); +@media screen and (-ms-high-contrast:active) { + .maplibregl-ctrl-attrib.maplibregl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E") } } -@media screen and (forced-colors: active) and (prefers-color-scheme: light) { - .maplibregl-ctrl-attrib.maplibregl-compact::after { - background-image: svg-load("svg/maplibregl-ctrl-attrib.svg"); +@media screen and (-ms-high-contrast:black-on-white) { + .maplibregl-ctrl-attrib.maplibregl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E") } } .maplibregl-ctrl-attrib a { - color: rgb(0 0 0 / 75%); - text-decoration: none; + color: rgba(0, 0, 0, .75); + text-decoration: none } .maplibregl-ctrl-attrib a:hover { color: inherit; - text-decoration: underline; + text-decoration: underline } .maplibregl-attrib-empty { - display: none; + display: none } .maplibregl-ctrl-scale { - background-color: rgb(255 255 255 / 75%); - font-size: 10px; - border-width: medium 2px 2px; - border-style: none solid solid; - border-color: #333; - padding: 0 5px; - color: #333; + background-color: hsla(0, 0%, 100%, .75); + border: 2px solid #333; + border-top: #333; box-sizing: border-box; + color: #333; + font-size: 10px; + padding: 0 5px } .maplibregl-popup { - position: absolute; - top: 0; - left: 0; display: flex; - will-change: transform; + left: 0; pointer-events: none; + position: absolute; + top: 0; + will-change: transform } .maplibregl-popup-anchor-top, .maplibregl-popup-anchor-top-left, .maplibregl-popup-anchor-top-right { - flex-direction: column; + flex-direction: column } .maplibregl-popup-anchor-bottom, .maplibregl-popup-anchor-bottom-left, .maplibregl-popup-anchor-bottom-right { - flex-direction: column-reverse; + flex-direction: column-reverse } .maplibregl-popup-anchor-left { - flex-direction: row; + flex-direction: row } .maplibregl-popup-anchor-right { - flex-direction: row-reverse; + flex-direction: row-reverse } .maplibregl-popup-tip { - width: 0; - height: 0; border: 10px solid transparent; - z-index: 1; + height: 0; + width: 0; + z-index: 1 } .maplibregl-popup-anchor-top .maplibregl-popup-tip { align-self: center; - border-top: none; border-bottom-color: #fff; + border-top: none } .maplibregl-popup-anchor-top-left .maplibregl-popup-tip { align-self: flex-start; - border-top: none; - border-left: none; border-bottom-color: #fff; + border-left: none; + border-top: none } .maplibregl-popup-anchor-top-right .maplibregl-popup-tip { align-self: flex-end; - border-top: none; - border-right: none; border-bottom-color: #fff; + border-right: none; + border-top: none } .maplibregl-popup-anchor-bottom .maplibregl-popup-tip { align-self: center; border-bottom: none; - border-top-color: #fff; + border-top-color: #fff } .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip { align-self: flex-start; border-bottom: none; border-left: none; - border-top-color: #fff; + border-top-color: #fff } .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { align-self: flex-end; border-bottom: none; border-right: none; - border-top-color: #fff; + border-top-color: #fff } .maplibregl-popup-anchor-left .maplibregl-popup-tip { align-self: center; border-left: none; - border-right-color: #fff; + border-right-color: #fff } .maplibregl-popup-anchor-right .maplibregl-popup-tip { align-self: center; - border-right: none; border-left-color: #fff; + border-right: none } .maplibregl-popup-close-button { - position: absolute; - right: 0; - top: 0; + background-color: transparent; border: 0; border-radius: 0 3px 0 0; cursor: pointer; - background-color: transparent; + position: absolute; + right: 0; + top: 0 } .maplibregl-popup-close-button:hover { - background-color: rgb(0 0 0 / 5%); + background-color: rgb(0 0 0/5%) } .maplibregl-popup-content { - position: relative; background: #fff; border-radius: 3px; - box-shadow: 0 1px 2px rgb(0 0 0 / 10%); + box-shadow: 0 1px 2px rgba(0, 0, 0, .1); padding: 15px 10px; pointer-events: auto; + position: relative } .maplibregl-popup-anchor-top-left .maplibregl-popup-content { - border-top-left-radius: 0; + border-top-left-radius: 0 } .maplibregl-popup-anchor-top-right .maplibregl-popup-content { - border-top-right-radius: 0; + border-top-right-radius: 0 } .maplibregl-popup-anchor-bottom-left .maplibregl-popup-content { - border-bottom-left-radius: 0; + border-bottom-left-radius: 0 } .maplibregl-popup-anchor-bottom-right .maplibregl-popup-content { - border-bottom-right-radius: 0; + border-bottom-right-radius: 0 } .maplibregl-popup-track-pointer { - display: none; + display: none } .maplibregl-popup-track-pointer * { pointer-events: none; - user-select: none; + user-select: none } .maplibregl-map:hover .maplibregl-popup-track-pointer { - display: flex; + display: flex } .maplibregl-map:active .maplibregl-popup-track-pointer { - display: none; + display: none } .maplibregl-marker { + left: 0; position: absolute; top: 0; - left: 0; - will-change: transform; - transition: opacity 0.2s; + transition: opacity .2s; + will-change: transform } -.maplibregl-user-location-dot { +.maplibregl-user-location-dot, +.maplibregl-user-location-dot:before { background-color: #1da1f2; - width: 15px; - height: 15px; border-radius: 50%; + height: 15px; + width: 15px } -.maplibregl-user-location-dot::before { - background-color: #1da1f2; - content: ""; - width: 15px; - height: 15px; - border-radius: 50%; - position: absolute; +.maplibregl-user-location-dot:before { animation: maplibregl-user-location-dot-pulse 2s infinite; + content: ""; + position: absolute } -.maplibregl-user-location-dot::after { - border-radius: 50%; +.maplibregl-user-location-dot:after { border: 2px solid #fff; + border-radius: 50%; + box-shadow: 0 0 3px rgba(0, 0, 0, .35); + box-sizing: border-box; content: ""; height: 19px; left: -2px; position: absolute; top: -2px; - width: 19px; - box-sizing: border-box; - box-shadow: 0 0 3px rgb(0 0 0 / 35%); + width: 19px } @keyframes maplibregl-user-location-dot-pulse { - 0% { transform: scale(1); opacity: 1; } - 70% { transform: scale(3); opacity: 0; } - 100% { transform: scale(1); opacity: 0; } + 0% { + opacity: 1; + transform: scale(1) + } + + 70% { + opacity: 0; + transform: scale(3) + } + + to { + opacity: 0; + transform: scale(1) + } } .maplibregl-user-location-dot-stale { - background-color: #aaa; + background-color: #aaa } -.maplibregl-user-location-dot-stale::after { - display: none; +.maplibregl-user-location-dot-stale:after { + display: none } .maplibregl-user-location-accuracy-circle { background-color: #1da1f233; - width: 1px; - height: 1px; border-radius: 100%; + height: 1px; + width: 1px } .maplibregl-crosshair, .maplibregl-crosshair .maplibregl-interactive, .maplibregl-crosshair .maplibregl-interactive:active { - cursor: crosshair; + cursor: crosshair } .maplibregl-boxzoom { - position: absolute; - top: 0; - left: 0; - width: 0; - height: 0; background: #fff; border: 2px dotted #202020; - opacity: 0.5; + height: 0; + left: 0; + opacity: .5; + position: absolute; + top: 0; + width: 0 } .maplibregl-cooperative-gesture-screen { - background: rgba(0 0 0 / 40%); - position: absolute; - inset: 0; - display: flex; - justify-content: center; align-items: center; - color: white; - padding: 1rem; + background: rgba(0, 0, 0, .4); + color: #fff; + display: flex; font-size: 1.4em; + inset: 0; + justify-content: center; line-height: 1.2; opacity: 0; + padding: 1rem; pointer-events: none; + position: absolute; transition: opacity 1s ease 1s; - z-index: 99999; + z-index: 99999 } .maplibregl-cooperative-gesture-screen.maplibregl-show { opacity: 1; - transition: opacity 0.05s; + transition: opacity .05s } .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { - display: none; + display: none } -@media (hover: none), (width <= 480px) { +/* Commented out since WebStorm can't parse it +@media (hover:none), (width <= 480px) { .maplibregl-cooperative-gesture-screen .maplibregl-desktop-message { - display: none; + display: none } .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { - display: block; + display: block } } +*/ .maplibregl-pseudo-fullscreen { - position: fixed !important; - width: 100% !important; height: 100% !important; - top: 0 !important; left: 0 !important; - z-index: 99999; + position: fixed !important; + top: 0 !important; + width: 100% !important; + z-index: 99999 } \ No newline at end of file diff --git a/docs/html/imerss-viz-nomap-wol.html b/docs/html/imerss-viz-nomap-wol.html index 3a0cb3e0..c1364a16 100644 --- a/docs/html/imerss-viz-nomap-wol.html +++ b/docs/html/imerss-viz-nomap-wol.html @@ -3,14 +3,16 @@ .imerss-map-and-taxa { display: flex; flex-direction: row; + height: 100%; } .imerss-container { display: block; } .imerss-taxonDisplay { height: 100%; - max-height: 80vh; + max-height: 60vh; min-width: 380px; + max-width: 380px; } .imerss-autocomplete { width: 20rem; diff --git a/docs/indexBeasOBA.html b/docs/indexBeasOBA.html index a0699583..55f43c94 100644 --- a/docs/indexBeasOBA.html +++ b/docs/indexBeasOBA.html @@ -17,11 +17,14 @@ - + + + + diff --git a/docs/js/imerss-bbea.js b/docs/js/imerss-bbea.js index c3687c67..462578cb 100644 --- a/docs/js/imerss-bbea.js +++ b/docs/js/imerss-bbea.js @@ -749,7 +749,7 @@ fluid.defaults("hortis.bbeaObsQuantiser", { hortis.bbeaGridTooltipTemplate = `
Observations: %obsCount
-
Bees species: %beeCount
%beeTaxa
+
Bees: %beeCount
%beeTaxa
%footer
`; diff --git a/docs/js/imerss-viz-all.js b/docs/js/imerss-viz-all.js index 70efa851..fb9cd767 100644 --- a/docs/js/imerss-viz-all.js +++ b/docs/js/imerss-viz-all.js @@ -1,4 +1,4 @@ -(function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{factory(jQuery)}})((function($){"use strict";$.ui=$.ui||{};return $.ui.version="1.13.0"})); +!function(i,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((i||self).preactSignalsCore={})}(this,(function(i){function t(){throw new Error("Cycle detected")}var n=Symbol.for("preact-signals");function o(){if(!(s>1)){var i,t=!1;while(void 0!==h){var n=h;h=void 0;e++;while(void 0!==n){var o=n.o;n.o=void 0;n.f&=-3;if(!(8&n.f)&&c(n))try{n.c()}catch(n){if(!t){i=n;t=!0}}n=o}}e=0;s--;if(t)throw i}else s--}var r=void 0,f=0,h=void 0,s=0,e=0,v=0;function u(i){if(void 0!==r){var t=i.n;if(void 0===t||t.t!==r){t={i:0,S:i,p:r.s,n:void 0,t:r,e:void 0,x:void 0,r:t};if(void 0!==r.s)r.s.n=t;r.s=t;i.n=t;if(32&r.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=r.s;t.n=void 0;r.s.n=t;r.s=t}return t}}}function d(i){this.v=i;this.i=0;this.n=void 0;this.t=void 0}d.prototype.brand=n;d.prototype.h=function(){return!0};d.prototype.S=function(i){if(this.t!==i&&void 0===i.e){i.x=this.t;if(void 0!==this.t)this.t.e=i;this.t=i}};d.prototype.U=function(i){if(void 0!==this.t){var t=i.e,n=i.x;if(void 0!==t){t.x=n;i.e=void 0}if(void 0!==n){n.e=t;i.x=void 0}if(i===this.t)this.t=n}};d.prototype.subscribe=function(i){var t=this;return _((function(){var n=t.value,o=32&this.f;this.f&=-33;try{i(n)}finally{this.f|=o}}))};d.prototype.valueOf=function(){return this.value};d.prototype.toString=function(){return this.value+""};d.prototype.toJSON=function(){return this.value};d.prototype.peek=function(){return this.v};Object.defineProperty(d.prototype,"value",{get:function(){var i=u(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(r instanceof y)!function(){throw new Error("Computed cannot have side-effects")}();if(i!==this.v){if(e>100)t();this.v=i;this.i++;v++;s++;try{for(var n=this.t;void 0!==n;n=n.x)n.t.N()}finally{o()}}}});function c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function a(i){for(var t=i.s;void 0!==t;t=t.n){var n=t.S.n;if(void 0!==n)t.r=n;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function l(i){var t=i.s,n=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else n=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=n}function y(i){d.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4}(y.prototype=new d).h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!c(this)){this.f&=-2;return!0}var i=r;try{a(this);r=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}r=i;l(this);this.f&=-2;return!0};y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}d.prototype.S.call(this,i)};y.prototype.U=function(i){if(void 0!==this.t){d.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};y.prototype.peek=function(){if(!this.h())t();if(16&this.f)throw this.v;return this.v};Object.defineProperty(y.prototype,"value",{get:function(){if(1&this.f)t();var i=u(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function w(i){var t=i.u;i.u=void 0;if("function"==typeof t){s++;var n=r;r=void 0;try{t()}catch(t){i.f&=-2;i.f|=8;p(i);throw t}finally{r=n;o()}}}function p(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;w(i)}function b(i){if(r!==this)throw new Error("Out-of-order effect");l(this);r=i;this.f&=-2;if(8&this.f)p(this);o()}function g(i){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32}g.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if("function"==typeof t)this.u=t}finally{i()}};g.prototype.S=function(){if(1&this.f)t();this.f|=1;this.f&=-9;w(this);a(this);s++;var i=r;r=this;return b.bind(this,i)};g.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=h;h=this}};g.prototype.d=function(){this.f|=8;if(!(1&this.f))p(this)};function _(i){var t=new g(i);try{t.c()}catch(i){t.d();throw i}return t.d.bind(t)}i.Signal=d;i.batch=function(i){if(s>0)return i();s++;try{return i()}finally{o()}};i.computed=function(i){return new y(i)};i.effect=_;i.signal=function(i){return new d(i)};i.untracked=function(i){if(f>0)return i();var t=r;r=void 0;f++;try{return i()}finally{f--;r=t}}}));(function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{factory(jQuery)}})((function($){"use strict";$.ui=$.ui||{};return $.ui.version="1.13.0"})); /*! * jQuery UI Keycode 1.13.0 * http://jqueryui.com @@ -65,13 +65,7 @@ License MIT */ -"use strict";fluid.promise=function(){var that={onResolve:[],onReject:[],onCancel:[]};that.then=function(onResolve,onReject,onCancel){fluid.promise.pushHandler(that,onResolve,"onResolve","resolve");fluid.promise.pushHandler(that,onReject,"onReject","reject");fluid.promise.pushHandler(that,onCancel,"onCancel","cancel");return that};that.resolve=function(value){if(that.disposition){if(that.disposition!=="cancel"){fluid.fail("Error: resolving promise ",that,' which has already received "'+that.disposition+'"')}}else{that.complete("resolve",that.onResolve,value)}return that};that.reject=function(reason){if(that.disposition){if(that.disposition!=="cancel"){fluid.fail("Error: rejecting promise ",that,'which has already received "'+that.disposition+'"')}}else{if(that.onReject.length===0){fluid.armUnhandledRejection(that,reason)}that.complete("reject",that.onReject,reason)}return that};that.cancel=function(reason){if(!that.disposition){that.complete("cancel",that.onCancel,reason)}};that.complete=function(which,queue,arg){that.disposition=which;that.value=arg;for(var i=0;i=0;--i){var resolved=that.resolvedSources[i];var accumulator=fluid.isPromise(resolved)&&typeof resolved.accumulateRejectionReason==="function"?resolved.accumulateRejectionReason:fluid.identity;error=accumulator(error)}that.promise.reject(error)};fluid.promise.resumeSequence=function(that){that.sequenceStarted=true;if(that.sequenceCancelled){return}else if(that.index===that.sources.length){that.promise.resolve(that.strategy.resolveResult(that))}else{var value=that.strategy.invokeNext(that);that.resolvedSources[that.index]=value;if(fluid.isPromise(value)){value.then((function(retValue){fluid.promise.progressSequence(that,retValue)}),(function(error){fluid.promise.processSequenceReject(that,error)}))}else{fluid.promise.progressSequence(that,value)}}};fluid.promise.makeSequenceStrategy=function(){return{invokeNext:function(that){var source=that.sources[that.index];return typeof source==="function"?source(that.options):source},resolveResult:function(that){return that.returns}}};fluid.promise.sequence=function(sources,options){var sequencer=fluid.promise.makeSequencer(sources,options,fluid.promise.makeSequenceStrategy());fluid.promise.resumeSequence(sequencer);return sequencer.promise};fluid.promise.makeTransformerStrategy=function(){return{invokeNext:function(that){var lisrec=that.sources[that.index];lisrec.listener=fluid.event.resolveListener(lisrec.listener);var value=lisrec.listener.apply(null,[that.returns[that.index],that.options]);return value},resolveResult:function(that){return that.returns[that.index]}}};fluid.promise.makeTransformer=function(listeners,payload,options){listeners.unshift({listener:function(){return payload}});var sequencer=fluid.promise.makeSequencer(listeners,options,fluid.promise.makeTransformerStrategy());sequencer.returns.push(null);return sequencer};fluid.promise.filterNamespaces=function(listeners,namespaces){if(!namespaces){return listeners}return fluid.remove_if(fluid.makeArray(listeners),(function(element){return element.namespace&&!element.softNamespace&&!namespaces.includes(element.namespace)}))};fluid.promise.fireTransformEvent=function(event,payload,options){options=options||{};var listeners=options.reverse?fluid.makeArray(event.sortedListeners).reverse():fluid.makeArray(event.sortedListeners);listeners=fluid.promise.filterNamespaces(listeners,options.filterNamespaces);var sequencer=fluid.promise.makeTransformer(listeners,payload,options);var canceller=sequencer.promise.cancel;var remover=function(){fluid.remove_if(event.onDestroy,(function(func){return func===canceller}))};fluid.event.addPrimitiveListener(event,"onDestroy",canceller);sequencer.promise.then(remover,remover,remover);fluid.promise.resumeSequence(sequencer);return sequencer.promise};"use strict";fluid.renderTimestamp=function(date){var zeropad=function(num,width){if(!width){width=2}var numstr=num===undefined?"":num.toString();return"00000".substring(5-width+numstr.length)+numstr};return zeropad(date.getHours())+":"+zeropad(date.getMinutes())+":"+zeropad(date.getSeconds())+"."+zeropad(date.getMilliseconds(),3)};fluid.isTracing=false;fluid.registerNamespace("fluid.tracing");fluid.tracing.pathCount=[];fluid.tracing.summarisePathCount=function(pathCount){pathCount=pathCount||fluid.tracing.pathCount;var togo={};for(var i=0;ioptions.maxRenderChars){return true}if(obj===null){out("null")}else if(obj===undefined){out("undefined")}else if(obj===fluid.SYNTHETIC_PROPERTY){out("[Synthetic property]")}else if(fluid.isPrimitive(obj)&&!isFunction){out(JSON.stringify(obj))}else{if(options.stack.indexOf(obj)!==-1){out("(CIRCULAR)");return}options.stack.push(obj);var i;if(fluid.isArrayable(obj)){if(obj.length===0){out("[]")}else{out("[\n"+big);for(i=0;i=0;--i){var that=thatStack[i];options.visited[that.id]=true;if(visitor(that,memberNames[i],memberNames,i)){return}if(fluid.visitComponentChildren(that,visitor,options,memberNames)){return}memberNames.pop()}};fluid.mountStrategy=function(prefix,root,toMount){var offset=prefix.length;return function(target,name,i,segs){if(i<=prefix.length){return}for(var j=0;j0){fluid.fail("Reference to "+recordPath+" record with name "+name+" which is not registered for component "+fluid.dumpComponentAndPath(that))}else{return}}fluid.set(target,[name],fluid.inEvaluationMarker);var member=recordMaker(record,name,that);fluid.set(target,[name],member);return member},initter:function(){var records=fluid.driveStrategy(options,recordPath,optionsStrategy)||{};for(var name in records){if(!exceptions||!exceptions[name]){fluid.getForComponent(that,prefix.concat([name]))}}fullyEvaluated=true}}};fluid.makeDistributionRecord=function(contextThat,sourceRecord,sourcePath,targetSegs,exclusions,sourceType){sourceType=sourceType||"distribution";fluid.pushActivity("makeDistributionRecord","Making distribution record from source record %sourceRecord path %sourcePath to target path %targetSegs",{sourceRecord:sourceRecord,sourcePath:sourcePath,targetSegs:targetSegs});var source=fluid.copy(fluid.get(sourceRecord,sourcePath));fluid.each(exclusions,(function(exclusion){fluid.model.applyChangeRequest(source,{segs:exclusion,type:"DELETE"})}));var record={options:{}};fluid.model.applyChangeRequest(record,{segs:targetSegs,type:"ADD",value:source});fluid.checkComponentRecord(record,fluid.componentRecordExpected);fluid.popActivity();return $.extend(record,{contextThat:contextThat,recordType:sourceType})};fluid.filterBlocks=function(contextThat,sourceBlocks,sourceSegs,targetSegs,exclusions,removeSource){var togo=[];fluid.each(sourceBlocks,(function(block){var source=fluid.get(block.source,sourceSegs);if(source!==undefined){togo.push(fluid.makeDistributionRecord(contextThat,block.source,sourceSegs,targetSegs,exclusions,"distribution"));var rescued=$.extend({},source);if(removeSource){fluid.model.applyChangeRequest(block.source,{segs:sourceSegs,type:"DELETE"})}fluid.each(exclusions,(function(exclusion){var orig=fluid.get(rescued,exclusion);fluid.set(block.source,sourceSegs.concat(exclusion),orig)}))}}));return togo};fluid.noteCollectedDistribution=function(parentShadow,memberName,distribution){fluid.model.setSimple(parentShadow,["collectedDistributions",memberName,distribution.id],true)};fluid.isCollectedDistribution=function(parentShadow,memberName,distribution){return fluid.model.getSimple(parentShadow,["collectedDistributions",memberName,distribution.id])};fluid.clearCollectedDistributions=function(parentShadow,memberName){fluid.model.applyChangeRequest(parentShadow,{segs:["collectedDistributions",memberName],type:"DELETE"})};fluid.collectDistributions=function(distributedBlocks,parentShadow,distribution,thatStack,contextHashes,memberNames,i){var lastMember=fluid.peek(memberNames);if(!fluid.isCollectedDistribution(parentShadow,lastMember,distribution)&&fluid.matchIoCSelector(distribution.selector,thatStack,contextHashes,memberNames,i)){distributedBlocks.push.apply(distributedBlocks,fluid.copy(distribution.blocks));fluid.noteCollectedDistribution(parentShadow,lastMember,distribution)}};fluid.registerCollectedClearer=function(shadow,parentShadow,memberName){if(!shadow.collectedClearer&&parentShadow){shadow.collectedClearer=function(){fluid.clearCollectedDistributions(parentShadow,memberName)}}};fluid.receiveDistributions=function(parentThat,gradeNames,memberName,that){var instantiator=fluid.getInstantiator(parentThat||that);var thatStack=instantiator.getThatStack(parentThat||that);thatStack.unshift(fluid.rootComponent);var memberNames=fluid.getMemberNames(instantiator,thatStack);var shadows=fluid.transform(thatStack,(function(thisThat){return instantiator.idToShadow[thisThat.id]}));var parentShadow=shadows[shadows.length-(parentThat?1:2)];var contextHashes=fluid.getMembers(shadows,"contextHash");if(parentThat){memberNames.push(memberName);contextHashes.push(fluid.gradeNamesToHash(gradeNames));thatStack.push(that)}else{fluid.registerCollectedClearer(fluid.peek(shadows),parentShadow,fluid.peek(memberNames))}var distributedBlocks=[];for(var i=0;ii&&mustMatchHere&&isChild){match=false}if(match){if(selpos===0){return true}--thatpos;--selpos}else{if(mustMatchHere){return false}else{--thatpos}}if(thatpos0){var readyBlocks=fluid.applyDistributions(rec.that,distributedBlocks,rec.shadow);var gradeNamesList=fluid.transform(fluid.getMembers(readyBlocks,["source","gradeNames"]),fluid.makeArray);fluid.accumulateDynamicGrades(rec,fluid.flatten(gradeNamesList))}};fluid.applyDynamicGrades=function(rec){rec.oldGradeNames=fluid.makeArray(rec.gradeNames);var newDefaults=fluid.copy(fluid.getMergedDefaults(rec.that.typeName,rec.gradeNames));rec.gradeNames.length=0;rec.gradeNames.push.apply(rec.gradeNames,newDefaults.gradeNames);fluid.each(rec.gradeNames,(function(gradeName){if(!fluid.isReferenceOrExpander(gradeName)){rec.seenGrades[gradeName]=true}}));var shadow=rec.shadow;fluid.cacheShadowGrades(rec.that,shadow);shadow.mergeOptions.destroyValue(["mergePolicy"]);shadow.mergeOptions.destroyValue(["components"]);shadow.mergeOptions.destroyValue(["invokers"]);rec.defaultsBlock.source=newDefaults;shadow.mergeOptions.updateBlocks();shadow.mergeOptions.computeMergePolicy();fluid.accumulateDynamicGrades(rec,newDefaults.gradeNames)};fluid.accumulateDynamicGrades=function(rec,newGradeNames){fluid.each(newGradeNames,(function(gradeName){var flatGradeName=fluid.flattenGradeName(gradeName);if(!rec.seenGrades[flatGradeName]){if(fluid.isReferenceOrExpander(gradeName)){rec.rawDynamic.push(gradeName);rec.seenGrades[flatGradeName]=true}else if(!rec.oldGradeNames.includes(gradeName)){rec.plainDynamic.push(gradeName)}}}))};fluid.accumulateContextAwareGrades=function(that,rec){var newContextAware=[];if(rec.gradeNames.includes("fluid.contextAware")){var contextAwarenessOptions=fluid.getForComponent(that,["options","contextAwareness"]);newContextAware=fluid.contextAware.check(that,contextAwarenessOptions);var lostGrade=fluid.find_if(rec.contextAware,(function(gradeName){return!newContextAware.includes(gradeName)}));if(lostGrade){fluid.fail("Failure operating contextAwareness definition ",contextAwarenessOptions," for component "+fluid.dumpComponentAndPath(that)+": grade name "+lostGrade+" returned by an earlier round of checks was lost through a context change caused by a raw dynamic grade")}rec.contextAware=newContextAware}return newContextAware};fluid.computeDynamicGrades=function(that,shadow,strategy){delete that.options.gradeNames;var gradeNames=fluid.driveStrategy(that.options,"gradeNames",strategy);gradeNames.length=0;var defaultsBlock=fluid.findMergeBlocks(shadow.mergeOptions.mergeBlocks,"defaults")[0];var rec={that:that,shadow:shadow,defaultsBlock:defaultsBlock,gradeNames:gradeNames,seenGrades:{},plainDynamic:[],contextAware:[],rawDynamic:[]};fluid.each(shadow.mergeOptions.mergeBlocks,(function(block){gradeNames.push.apply(gradeNames,fluid.makeArray(block.target&&block.target.gradeNames));fluid.applyDynamicGrades(rec)}));fluid.collectDistributedGrades(rec);var checkContextAware=true;while(true){while(rec.plainDynamic.length>0){gradeNames.push.apply(gradeNames,rec.plainDynamic);rec.plainDynamic.length=0;fluid.applyDynamicGrades(rec);fluid.collectDistributedGrades(rec)}if(checkContextAware){var newContextAware=fluid.accumulateContextAwareGrades(that,rec);rec.plainDynamic=rec.plainDynamic.concat(newContextAware);checkContextAware=false}else if(rec.rawDynamic.length>0){var toexpand=rec.rawDynamic.shift();var expanded=fluid.expandImmediate(toexpand,that,shadow.localRecord);if(typeof expanded==="function"){expanded=expanded()}if(expanded){rec.plainDynamic=rec.plainDynamic.concat(expanded)}checkContextAware=true}else{break}}fluid.remove_if(gradeNames,fluid.isReferenceOrExpander);if(shadow.collectedClearer){shadow.collectedClearer();delete shadow.collectedClearer}};fluid.computeComponentAccessor=function(that,localRecord){var instantiator=fluid.globalInstantiator;var shadow=fluid.shadowForComponent(that);shadow.localRecord=localRecord;var options=that.options;var strategy=shadow.mergeOptions.strategy;var optionsStrategy=fluid.mountStrategy(["options"],options,strategy);shadow.invokerStrategy=fluid.recordStrategy(that,options,strategy,"invokers",fluid.invokerFromRecord);shadow.eventStrategyBlock=fluid.recordStrategy(that,options,strategy,"events",fluid.eventFromRecord,["events"]);var eventStrategy=fluid.mountStrategy(["events"],that,shadow.eventStrategyBlock.strategy);shadow.memberStrategy=fluid.recordStrategy(that,options,strategy,"members",fluid.memberFromRecord,null,{model:true,modelRelay:true});shadow.getConfig={strategies:[fluid.concreteStrategy,fluid.model.funcResolverStrategy,optionsStrategy,shadow.invokerStrategy.strategy,shadow.memberStrategy.strategy,eventStrategy]};fluid.computeDynamicGrades(that,shadow,strategy,shadow.mergeOptions.mergeBlocks);if(shadow.contextHash["fluid.resourceLoader"]){shadow.resourceStrategyBlock=fluid.recordStrategy(that,options,strategy,"resources",fluid.resourceFromRecord,["resources"]);var resourceStrategy=fluid.mountStrategy(["resources"],that,shadow.resourceStrategyBlock.strategy);shadow.getConfig.strategies.push(resourceStrategy);that.resources={}}fluid.distributeOptions(that,strategy);if(shadow.contextHash["fluid.resolveRoot"]){var memberName;if(shadow.contextHash["fluid.resolveRootSingle"]){var singleRootType=fluid.getForComponent(that,["options","singleRootType"]);if(!singleRootType){fluid.fail("Cannot register object with grades "+Object.keys(shadow.contextHash).join(", ")+" as fluid.resolveRootSingle since it has not defined option singleRootType")}memberName=fluid.typeNameToMemberName(singleRootType)}else{memberName=fluid.computeGlobalMemberName(that.typeName,that.id)}var parent=fluid.resolveRootComponent;if(parent[memberName]){instantiator.clearComponent(parent,memberName)}instantiator.recordKnownComponent(parent,that,memberName,false)}return shadow.getConfig};fluid.shadowForComponent=function(component){var instantiator=fluid.getInstantiator(component);return instantiator&&component?instantiator.idToShadow[component.id]:null};fluid.pathInEvaluation=function(path,paths){var index=paths.indexOf(path);return index!==-1&&index!==paths.length-1};fluid.getForComponent=function(component,path){var segs=fluid.model.pathToSegments(path);if(segs.length===0){return component}var instantiator=fluid.globalInstantiator;var shadow=fluid.shadowForComponent(component);if(shadow){var next=fluid.get(component,segs[0],shadow.getConfig);if(fluid.isComponent(next)){return fluid.getForComponent(next,segs.slice(1))}else{var inEvaluationPaths=instantiator.inEvaluationPaths;var inEvaluationPath=component.id+":"+path;if(fluid.pathInEvaluation(inEvaluationPath,inEvaluationPaths)){fluid.fail("Error in component configuration - a circular reference was found during evaluation of path "+path+" for component "+fluid.dumpComponentAndPath(component)+": a circular set of references was found - for more details, see the activity records following this message in the console")}else{inEvaluationPaths.push(inEvaluationPath);var togo=fluid.get(component,path,shadow.getConfig);inEvaluationPaths.pop();return togo}}}else{return fluid.get(component,path)}};fluid.concreteStrategy=function(component,thisSeg,index,segs){var atval=component[thisSeg];if(atval===fluid.inEvaluationMarker){fluid.fail('Error in component configuration - a circular reference was found during evaluation of path segment "'+thisSeg+" of path ",segs,'": for more details, see the activity records following this message in the console, or issue fluid.setLogging(fluid.logLevel.TRACE) when running your application')}if(index>1){return atval}if(atval===undefined&&component.hasOwnProperty(thisSeg)){return fluid.NO_VALUE}return atval};fluid.frameworkGrades=["fluid.component","fluid.modelComponent","fluid.viewComponent","fluid.rendererComponent"];fluid.filterBuiltinGrades=function(gradeNames){return fluid.remove_if(fluid.makeArray(gradeNames),(function(gradeName){return fluid.frameworkGrades.indexOf(gradeName)!==-1}))};fluid.dumpGradeNames=function(that){return that.options&&that.options.gradeNames?" gradeNames: "+JSON.stringify(fluid.filterBuiltinGrades(that.options.gradeNames)):""};fluid.dumpThat=function(that){return'{ typeName: "'+that.typeName+" id: "+that.id+'"'+fluid.dumpGradeNames(that)+"}"};fluid.dumpThatStack=function(thatStack,instantiator){var togo=fluid.transform(thatStack,(function(that){var path=instantiator.idToPath(that.id);return fluid.dumpThat(that)+(path?" - path: "+path:"")}));return togo.join("\n")};fluid.dumpComponentPath=function(that){var path=fluid.pathForComponent(that);return path?fluid.pathUtil.composeSegments.apply(null,path):"** no path registered for component **"};fluid.dumpComponentAndPath=function(that){return"component "+fluid.dumpThat(that)+" at path "+fluid.dumpComponentPath(that)};fluid.resolveContext=function(context,that,fast){if(context==="that"){return that}else if(context==="/"){return fluid.rootComponent}if(typeof context==="object"){var innerContext=fluid.resolveContext(context.context,that,fast);if(!fluid.isComponent(innerContext)){fluid.triggerMismatchedPathError(context.context,that)}var rawValue=fluid.getForComponent(innerContext,context.path);var expanded=fluid.expandOptions(rawValue,that);if(!fluid.isComponent(expanded)){fluid.fail("Unable to resolve recursive context expression "+fluid.renderContextReference(context)+": the directly resolved value of "+rawValue+" did not resolve to a component in the scope of "+fluid.dumpComponentAndPath(that)+": got ",expanded)}return expanded}else{var foundComponent;var instantiator=fluid.globalInstantiator;if(fast){var shadow=instantiator.idToShadow[that.id];return shadow.ownScope[context]}else{var thatStack=instantiator.getFullStack(that);fluid.visitComponentsForVisibility(instantiator,thatStack,(function(component,memberName){var shadow=fluid.shadowForComponent(component);var scopeValue=shadow.contextHash[context];if(scopeValue&&scopeValue!==fluid.memberName||context===memberName){foundComponent=component;return true}}));return foundComponent}}};fluid.triggerMismatchedPathError=function(parsed,parentThat){var ref=fluid.renderContextReference(parsed);fluid.fail("Failed to resolve reference "+ref+" - could not match context with name "+parsed.context+" from "+fluid.dumpComponentAndPath(parentThat))};fluid.makeStackFetcher=function(parentThat,localRecord,fast){var fetcher=function(parsed){if(parentThat&&parentThat.lifecycleStatus==="destroyed"){fluid.fail("Cannot resolve reference "+fluid.renderContextReference(parsed)+" from component "+fluid.dumpComponentAndPath(parentThat)+" which has been destroyed")}var context=parsed.context;if(localRecord&&context in localRecord){return fluid.get(localRecord[context],parsed.path)}var foundComponent=fluid.resolveContext(context,parentThat,fast);if(!foundComponent&&parsed.path!==""){fluid.triggerMismatchedPathError(parsed,parentThat)}return fluid.getForComponent(foundComponent,parsed.path)};return fetcher};fluid.makeStackResolverOptions=function(parentThat,localRecord,fast){return $.extend(fluid.copy(fluid.rawDefaults("fluid.makeExpandOptions")),{ELstyle:"{}",localRecord:localRecord||{},fetcher:fluid.makeStackFetcher(parentThat,localRecord,fast),contextThat:parentThat,exceptions:{members:{model:true,modelRelay:true}}})};fluid.clearListeners=function(shadow){fluid.each(shadow.listeners,(function(rec){rec.event.removeListener(rec.listenerId||rec.listener)}));delete shadow.listeners};fluid.recordListener=function(event,listener,shadow,listenerId){if(event.ownerId!==shadow.that.id){fluid.pushArray(shadow,"listeners",{event:event,listener:listener,listenerId:listenerId})}};fluid.constructScopeObjects=function(instantiator,parent,child,childShadow){var parentShadow=parent?instantiator.idToShadow[parent.id]:null;childShadow.childrenScope=parentShadow?Object.create(parentShadow.ownScope):{};childShadow.ownScope=Object.create(childShadow.childrenScope);childShadow.parentShadow=parentShadow;childShadow.childComponents={};fluid.cacheShadowGrades(child,childShadow)};fluid.clearChildrenScope=function(parentShadow,child,childShadow,memberName){var keys=fluid.keys(childShadow.contextHash);keys.push(memberName);keys.forEach((function(context){if(parentShadow.childrenScope[context]===child){delete parentShadow.childrenScope[context]}}))};fluid.clearComponentIndexes=function(instantiator,destroyRec){var shadow=destroyRec.shadow;fluid.clearChildrenScope(shadow,destroyRec.child,destroyRec.childShadow,destroyRec.name);delete instantiator.pathToComponent[destroyRec.childPath];delete shadow.childComponents[destroyRec.name]};fluid.doDestroy=function(instantiator,destroyRec){var shadow=destroyRec.childShadow,that=destroyRec.child;fluid.each(shadow.injectedPaths,(function(troo,injectedPath){var parentPath=fluid.model.getToTailPath(injectedPath);var otherParent=instantiator.pathToComponent[parentPath];instantiator.clearComponent(otherParent,fluid.model.getTailPath(injectedPath),that)}));fluid.clearComponentIndexes(instantiator,destroyRec);fluid.clearDistributions(shadow);fluid.clearListeners(shadow);for(var key in that.events){if(key!=="afterDestroy"&&typeof that.events[key].destroy==="function"){that.events[key].destroy()}}if(that.applier){that.applier.destroy()}that.lifecycleStatus="destroyed";fluid.fireEvent(destroyRec.child,"afterDestroy",[destroyRec.child,destroyRec.name,destroyRec.component]);delete instantiator.idToShadow[destroyRec.child.id]};fluid.instantiator=function(){var that=fluid.typeTag("instantiator");$.extend(that,{lifecycleStatus:"constructed",pathToComponent:{},idToShadow:{},modelTransactions:{},treeTransactions:{},inEvaluationPaths:[],currentTreeTransactionId:null,composePath:fluid.model.composePath,composeSegments:fluid.model.composeSegments,parseEL:fluid.model.parseEL,events:{onComponentAttach:fluid.makeEventFirer({name:"instantiator's onComponentAttach event"}),onComponentClear:fluid.makeEventFirer({name:"instantiator's onComponentClear event"}),onBeginTreeTransaction:fluid.makeEventFirer({name:"instantiator's onBeginTransaction event"}),onEndTreeTransaction:fluid.makeEventFirer({name:"instantiator's onEndTransaction event"})}});that.parseToSegments=function(path){return fluid.model.parseToSegments(path,that.parseEL,true)};that.idToPath=function(id){var shadow=that.idToShadow[id];return shadow?shadow.path:""};that.getThatStack=function(component){var shadow=that.idToShadow[component.id];if(shadow){var path=shadow.path;var parsed=that.parseEL(path);var root=that.pathToComponent[""],togo=[];for(var i=0;i0){fluid.fail(fluid.transform(errors,(function(error){return["Error constructing component "+fluid.dumpComponentAndPath(that)+" - the listener for event "+error.name+" with namespace "+error.namespace+((error.componentSource?" which was defined in grade "+error.componentSource:"")+" needs to be overridden with a concrete implementation")]}))).join("\n")}};fluid.initComponentShell=function(potentia,lightMerge){var instantiator=fluid.globalInstantiator,upDefaults=fluid.defaults(lightMerge.type),parentThat=potentia.parentThat,memberName=potentia.memberName,fakeThat={};var distributions=fluid.receiveDistributions(parentThat,upDefaults&&upDefaults.gradeNames,memberName,fakeThat);fluid.each(distributions,(function(distribution){fluid.computeDistributionPriority(parentThat,distribution);if(fluid.isPrimitive(distribution.priority)){distribution.priority=fluid.parsePriority(distribution.priority,0,false,"options distribution")}}));fluid.sortByPriority(distributions);fluid.lightMergeRecords.pushRecords(lightMerge,distributions);upDefaults=fluid.defaults(lightMerge.type);var defaultCopy=fluid.copy(upDefaults);lightMerge.toMerge.unshift({options:defaultCopy,recordType:"defaults"});var that=lightMerge.type==="fluid.emptySubcomponent"?null:fluid.typeTag(lightMerge.type,potentia.componentId);if(that){that.lifecycleStatus="constructing";instantiator.recordKnownComponent(parentThat,that,memberName,true);var mergeOptions=fluid.mergeComponentOptions(that,potentia,lightMerge);mergeOptions.exceptions={members:{model:true,modelRelay:true}};that.events={}}return that};fluid.registerConcreteSubPotentia=function(lightMerge,key,componentDepth,parentShell,localRecord,transactionId){componentDepth=componentDepth||0;var newSegs=fluid.pathForComponent(parentShell).concat([key]);var existing=parentShell[key];if(existing){fluid.registerPotentia({segs:newSegs,type:"destroy"},transactionId)}lightMerge.toMerge=fluid.transform(lightMerge.toMerge,(function(toMerge){var record=$.extend({componentDepth:componentDepth+1,sourceComponentId:parentShell.id,recordType:"subcomponentRecord"},toMerge);return record}));lightMerge.type=fluid.expandImmediate(lightMerge.type,parentShell,localRecord);var subPotentia={type:"create",segs:newSegs,lightMerge:lightMerge,localRecord:localRecord};fluid.registerPotentia(subPotentia,transactionId)};fluid.lightMergeComponentRecord=function(shadow,shadowKey,key,mergingArray){var lightMerge=fluid.lightMergeRecords(mergingArray);fluid.set(shadow,[shadowKey,key],lightMerge);return lightMerge};fluid.componentRecordExpected=fluid.arrayToHash(["type","options","container","createOnEvent"]);fluid.dynamicComponentRecordExpected=$.extend({},fluid.componentRecordExpected,fluid.arrayToHash(["source","sources"]));fluid.checkComponentRecord=function(localRecord,expected){if(!fluid.isInjectedComponentRecord(localRecord)){if(fluid.isPlainObject(localRecord,true)){fluid.each(localRecord,(function(value,key){if(!expected[key]){fluid.fail("Error in subcomponent record "+JSON.stringify(localRecord)+' - key "'+key+'" found, where the only legal options are '+fluid.keys(expected).join(", "))}}))}else{fluid.fail("Error in subcomponent record "+JSON.stringify(localRecord)+' - this should either be an object with member "type" or else a reference to another component')}}};fluid.checkSubcomponentRecords=function(subcomponentRecords,expected){subcomponentRecords.forEach((function(oneRecord){fluid.checkComponentRecord(oneRecord,expected)}))};fluid.registerSourcedDynamicComponent=function(potentia,shell,source,sourceKey,lightMerge,key,localRecordContributor){var localRecord=$.extend({},potentia.localRecord,{source:source,sourcePath:sourceKey});(localRecordContributor||fluid.identity)(localRecord,source,sourceKey);var dynamicKey=fluid.computeDynamicComponentKey(key,sourceKey);var freshLightMerge=fluid.copy(lightMerge);fluid.registerConcreteSubPotentia(freshLightMerge,dynamicKey,potentia.componentDepth,shell,localRecord)};fluid.registerSourcedDynamicComponents=function(potentia,shell,sources,lightMerge,key,localRecordContributor){fluid.each(sources,(function(source,sourceKey){fluid.registerSourcedDynamicComponent(potentia,shell,source,sourceKey,lightMerge,key,localRecordContributor)}))};fluid.lensedComponentModelListener=function(that,key,segs,value,isBoolean){var isEmptyValue=function(value){return isBoolean?!value:value===undefined};var shadow=fluid.shadowForComponent(that);var sourceKey=isBoolean?0:fluid.peek(segs);var expectedMemberName=fluid.computeDynamicComponentKey(key,sourceKey);var currentComponent=that[expectedMemberName];if(!isEmptyValue(value)&&!currentComponent){var lightMerge=shadow.lightMergeDynamicComponents[key];var parentRecord=shadow.modelSourcedDynamicComponents[key];fluid.registerSourcedDynamicComponent(shadow.potentia,that,value,sourceKey,lightMerge,key,parentRecord.localRecordContributor)}else if(isEmptyValue(value)&¤tComponent){currentComponent.destroy()}};fluid.lensedComponentDefToBlock=function(key,sourcesParsed,isBoolean){var fromModelPath=sourcesParsed.segs.slice(1);var modelListener={path:{context:sourcesParsed.context,segs:fromModelPath.concat(isBoolean?[]:["*"])},excludeSource:"init",transactional:true,funcName:"fluid.lensedComponentModelListener",args:["{that}",key,"{change}.path","{change}.value",isBoolean]};var modelListeners={};modelListeners["lensedComponents-"+key]=modelListener;return{modelListeners:modelListeners}};fluid.addLensedComponentBlocks=function(lensedComponentBlocks,potentia,shadow){var merged=fluid.extend.apply(null,[true,{}].concat(lensedComponentBlocks));shadow.mergeOptions.mergeBlocks.push(fluid.generateExpandBlock({options:merged,recordType:"lensedComponents",priority:fluid.mergeRecordTypes.lensedComponents},shadow.that,shadow.mergePolicy,potentia.localRecord));shadow.mergeOptions.updateBlocks()};fluid.pushMarkupSourcedDynamicComponentListener=function(shell,key,sourcesParsed,registerDynamicComponents){var namespace=shell.id+"-markupDynamicComponents-"+key;var context=fluid.resolveContext(sourcesParsed.context,shell);if(context.events.onDomBind){context.events.onDomBind.addListener(registerDynamicComponents,namespace)}else{var targetShadow=fluid.shadowForComponent(context);fluid.addLensedComponentBlocks([{listeners:{onDomBind:{namespace:namespace,listener:registerDynamicComponents}}}],{},targetShadow)}};fluid.expectExactlyOne=function(failStart,target,members){var found=0;members.forEach((function(member){if(target[member]!==undefined){++found}}));if(found!==1){fluid.fail.apply(null,failStart.concat([" must contain exactly one member out of "+members.join(", ")]))}};fluid.registerSourcedDynamicComponentsTriage=function(potentia,shell,sourceOrSources,lightMerge,key,isBoolean,localRecordContributor){if(isBoolean&&sourceOrSources){fluid.registerSourcedDynamicComponent(potentia,shell,sourceOrSources,0,lightMerge,key,localRecordContributor)}else{fluid.registerSourcedDynamicComponents(potentia,shell,sourceOrSources,lightMerge,key,localRecordContributor)}};fluid.processComponentShell=function(potentia,shell,transRec){var instantiator=fluid.globalInstantiator;var shadow=instantiator.idToShadow[shell.id];shadow.potentia=potentia;shadow.createdTransactionId=transRec.transactionId;var mergeOptions=shadow.mergeOptions;var components=fluid.driveStrategy(shell.options,"components",mergeOptions.strategy);fluid.each(components,(function(subcomponentRecords,key){fluid.checkSubcomponentRecords(subcomponentRecords,fluid.componentRecordExpected);var lightMerge=fluid.lightMergeComponentRecord(shadow,"lightMergeComponents",key,subcomponentRecords);if(!lightMerge.createOnEvent){fluid.registerConcreteSubPotentia(lightMerge,key,potentia.componentDepth,shell,potentia.localRecord)}}));var dynamicComponents=fluid.driveStrategy(shell.options,"dynamicComponents",mergeOptions.strategy);var lensedComponentBlocks=[];fluid.each(dynamicComponents,(function(subcomponentRecords,key){fluid.checkSubcomponentRecords(subcomponentRecords,fluid.dynamicComponentRecordExpected);var lightMerge=fluid.lightMergeComponentRecord(shadow,"lightMergeDynamicComponents",key,subcomponentRecords);fluid.expectExactlyOne(["dynamicComponents records ",subcomponentRecords],lightMerge,["source","sources","createOnEvent"]);if(lightMerge.sources!==undefined||lightMerge.source!==undefined){var recordSources=lightMerge.sources,isBoolean=false;if(lightMerge.source!==undefined){recordSources=lightMerge.source;isBoolean=true}if(fluid.isIoCReference(recordSources)){var sourcesParsed=fluid.parseValidModelReference(shell,"dynamicComponents source",recordSources,true);var registerDynamicComponents=function(){var sources=fluid.getForComponent(sourcesParsed.that,sourcesParsed.segs);fluid.registerSourcedDynamicComponentsTriage(potentia,shell,sources,lightMerge,key,null,isBoolean)};if(sourcesParsed.nonModel){if(sourcesParsed.segs[0]==="dom"){fluid.pushMarkupSourcedDynamicComponentListener(shell,key,sourcesParsed,registerDynamicComponents)}else{registerDynamicComponents()}}else{fluid.set(shadow,["modelSourcedDynamicComponents",key],{sourcesParsed:sourcesParsed,isBoolean:isBoolean});lensedComponentBlocks.push(fluid.lensedComponentDefToBlock(key,sourcesParsed,isBoolean))}}else{var sources=fluid.expandImmediate(recordSources,shell,potentia.localRecord);fluid.registerSourcedDynamicComponentsTriage(potentia,shell,sources,lightMerge,key,null,isBoolean)}}}));if(lensedComponentBlocks.length){fluid.addLensedComponentBlocks(lensedComponentBlocks,potentia,shadow)}if(transRec.deferredDistributions.length){transRec.pendingPotentiae.creates.push({type:"distributeOptions",distributions:transRec.deferredDistributions});++transRec.pendingPotentiae.activeCount;transRec.deferredDistributions=[]}};fluid.preparePathedPotentia=function(potentia,instantiator){var segs=potentia.segs||instantiator.parseToSegments(potentia.path);potentia.segs=segs;potentia.memberName=fluid.peek(segs);potentia.parentThat=fluid.getImmediate(fluid.rootComponent,segs.slice(0,-1));if(potentia.type==="create"&&!potentia.parentThat){fluid.fail("Cannot construct component at path ",segs," whose parent does not exist")}};fluid.fetchNestedInjectedComponentReference=function(transRec,potentiaList,injected,head,parentPath,segs){var instantiator=fluid.globalInstantiator;var path=parentPath,current=head;for(var i=0;i0){togo.push({shadows:shadows,workflowIndex:workflowRecord.index,workflowOptions:workflowRecord.workflowOptions})}}));return togo};fluid.findWorkflowShadows=function(shadows,blockStart,blockEnd,workflowRecord){var workflowShadows=[];for(var i=blockStart;i0){var workflow=workflowRecord.workflowOptions;var workflowFunc=fluid.getGlobalValue(workflow.funcName);var sequence=sequencer.sources;if(workflow.waitIO){sequence.push(fluid.waitPendingIOTask(transRec))}if(workflowRecord.workflowType==="global"){var globalWorkflowTask=function(){resumeCurrentTransaction();workflowFunc(workflowShadows,transRec)};globalWorkflowTask.taskName=workflowRecord.namespace;sequence.push(globalWorkflowTask)}else{var localWorkflowTask=function(){resumeCurrentTransaction();if(workflowRecord.namespace==="concludeComponentInit"){sequencer.hasStartedConcludeInit=true}workflowShadows.forEach((function(shadow){workflowFunc(shadow,transRec)}))};localWorkflowTask.taskName=workflowRecord.namespace;sequence.push(localWorkflowTask)}workQueued=true}}));if(transRec.maximumWorkflowStage===transRec.workflowStageBreak){transRec.maximumWorkflowStage=0;transRec.restartLastWorkflowShadow=transRec.lastWorkflowShadow}return workQueued};fluid.applyWorkflowPhase=function(transRec,sequencer){var shadows=transRec.outputShadows;if(shadows.length>transRec.lastWorkflowShadow&&transRec.maximumWorkflowStage>0){fluid.enqueueWorkflowBlock(transRec,shadows,0,transRec.maximumWorkflowStage,transRec.lastWorkflowShadow,shadows.length,sequencer);return true}else if(transRec.maximumWorkflowStage0};fluid.commitPotentiae=function(transactionId,resumeSequencer){var instantiator=fluid.globalInstantiator;var transRec=instantiator.treeTransactions[transactionId];++transRec.commitDepth;var lastWorkflowShadow=transRec.lastWorkflowShadow;var rootSequencer=transRec.rootSequencer;var sequencer=resumeSequencer;if(!sequencer){var topSequencer=fluid.getImmediate(fluid.peek(rootSequencer.sources),["sequencer"]);if(!topSequencer||topSequencer.hasStartedConcludeInit||topSequencer.promise.disposition){sequencer=fluid.promise.makeSequencer([],{},fluid.promise.makeSequenceStrategy());sequencer.promise.sequencer=sequencer;rootSequencer.sources.push(sequencer.promise)}else{sequencer=topSequencer}}fluid.tryCatch((function commitPotentiae(){if(fluid.isPopulatedPotentiaList(transRec.pendingPotentiae)){fluid.commitPotentiaePhase(transRec)}var workflowEnqueued=fluid.applyWorkflowPhase(transRec,sequencer);if(workflowEnqueued){sequencer.sources.push((function(){if(!sequencer.hasStartedConcludeInit){fluid.commitPotentiae(transactionId,sequencer)}else if(sequencer===fluid.peek(rootSequencer.sources).sequencer){fluid.commitPotentiae(transactionId,null)}}))}if(!sequencer.sequenceStarted){fluid.promise.resumeSequence(sequencer)}if(!rootSequencer.sequenceStarted){fluid.promise.resumeSequence(rootSequencer)}}),(function(e){if(!transRec.promise.disposition){transRec.promise.reject(e)}}));--transRec.commitDepth;if(transRec.commitDepth===0&&!resumeSequencer){instantiator.currentTreeTransactionId=null}return transRec.outputShadows[lastWorkflowShadow]};fluid.pushPotentia=function(potentiaList,instantiator,potentia){var segs=potentia.segs=potentia.segs||instantiator.parseToSegments(potentia.path);var path=potentia.path=instantiator.composeSegments.apply(null,segs);if(potentia.type==="destroy"){potentiaList.destroys.push(potentia);potentiaList.activeCount++;fluid.remove_if(potentiaList.creates,(function(create){if(!create.applied&&create.path.startsWith(potentia.path)){potentiaList.activeCount--;return true}}))}else{var newPotentia=potentia;if(potentia.type==="create"){newPotentia=fluid.pushCreatePotentia(potentiaList,path,potentia)}if(newPotentia){potentiaList.creates.push(potentia);potentiaList.activeCount++}}};fluid.pathForComponent=function(component,instantiator){instantiator=instantiator||fluid.getInstantiator(component)||fluid.globalInstantiator;var shadow=instantiator.idToShadow[component.id];if(!shadow){return null}return instantiator.parseEL(shadow.path)};fluid.currentTreeTransaction=function(){var instantiator=fluid.globalInstantiator;return instantiator.treeTransactions[instantiator.currentTreeTransactionId]};fluid.clearTreeTransaction=function(transRec){transRec.rootSequencer=fluid.promise.makeSequencer([],{},fluid.promise.makeSequenceStrategy());transRec.restoreRecords=fluid.blankPotentiaList();transRec.initModelTransaction={};transRec.outputShadows=[];transRec.lastWorkflowShadow=0;transRec.maximumWorkflowStage=0;transRec.restartLastWorkflowShadow=0;transRec.deferredDistributions=[]};fluid.beginTreeTransaction=function(transactionOptions){var instantiator=fluid.globalInstantiator;if(instantiator.currentTreeTransactionId){fluid.fail("Attempt to start new tree transaction when transaction "+instantiator.currentTreeTransactionId+" is already active")}var transactionId=instantiator.currentTreeTransactionId=fluid.allocateGuid();var transRec=$.extend({transactionId:transactionId,workflowStageBreak:undefined,pendingPotentiae:fluid.blankPotentiaList(),commitDepth:0,cancelled:false,cancellationError:null,pendingIO:[]},transactionOptions);fluid.clearTreeTransaction(transRec);transRec.promise=transRec.rootSequencer.promise;var onConclude=function(){instantiator.events.onEndTreeTransaction.fire(transRec);if(transRec.rootSequencer.promise.disposition){instantiator.currentTreeTransactionId=null;delete instantiator.treeTransactions[transactionId]}};var onException=function(err){if(!transRec.cancelled){delete transRec.rootSequencer;instantiator.inEvaluationPaths.length=0;fluid.cancelTreeTransaction(transactionId,instantiator,err);onConclude()}};transRec.promise.then(onConclude,onException);instantiator.treeTransactions[transactionId]=transRec;try{transRec.workflowStageBreak=fluid.lookupWorkflowStage(transRec.breakAt)}catch(e){transRec.promise.reject(e)}instantiator.events.onBeginTreeTransaction.fire(transRec);return transRec};fluid.registerPotentia=function(potentia,transactionId){var instantiator=fluid.globalInstantiator;transactionId=transactionId||instantiator.currentTreeTransactionId;if(!transactionId){transactionId=fluid.beginTreeTransaction().transactionId}var transRec=instantiator.treeTransactions[transactionId];fluid.pushPotentia(transRec.pendingPotentiae,instantiator,potentia);return transRec};fluid.cancelTreeTransaction=function(transactionId,instantiator){var transRec=instantiator.treeTransactions[transactionId];if(transRec){try{transRec.pendingPotentiae=transRec.restoreRecords;transRec.cancelled=true;fluid.clearTreeTransaction(transRec);fluid.commitPotentiae(transactionId)}catch(e){fluid.log(fluid.logLevel.FAIL,"Fatal error cancelling transaction "+transactionId+": destroying all affected paths");transRec.restoreRecords.creates.forEach((function(potentia){instantiator.clearComponent(potentia.parentThat,potentia.memberName,potentia.parentThat[potentia.memberName])}));throw e}}};fluid.constructChild=function(parent,memberName,options){var parentPath=fluid.pathForComponent(parent);var path=parentPath.concat([memberName]);return fluid.construct(path,options)};fluid.construct=function(path,componentOptions,constructOptions){constructOptions=constructOptions||{};var transRec=fluid.registerPotentia({path:path,type:"destroy"},constructOptions.transactionId);var record={recordType:"user"};fluid.each(fluid.componentRecordExpected,(function(troo,key){if(componentOptions[key]!==undefined){record[key]=componentOptions[key]}}));record.options=componentOptions;var potentia={path:path,type:"create",localRecord:constructOptions.localRecord,records:[record]};fluid.registerPotentia(potentia,transRec.transactionId);if(!constructOptions.transactionId){fluid.commitPotentiae(transRec.transactionId)}fluid.adaptTransactionFailure(transRec);return constructOptions.returnTransaction?transRec:fluid.getImmediate(fluid.rootComponent,potentia.segs)};fluid.destroy=function(path,instantiator){instantiator=instantiator||fluid.globalInstantiator;var segs=instantiator.parseToSegments(path);if(segs.length===0){fluid.fail("Cannot destroy the root component")}var transRec=fluid.registerPotentia({path:path,type:"destroy"});fluid.commitPotentiae(transRec.transactionId);return transRec};fluid.constructSingle=function(parentPath,options,instantiator){instantiator=instantiator||fluid.globalInstantiator;parentPath=parentPath||"";var segs=fluid.model.parseToSegments(parentPath,instantiator.parseEL,true);if(typeof options==="string"){options={type:options}}var type=options.type;if(!type){fluid.fail("Cannot construct singleton object without a type entry")}options=$.extend({},options);var gradeNames=options.gradeNames=fluid.makeArray(options.gradeNames);gradeNames.unshift(type);options.type="fluid.component";var root=segs.length===0;if(root){gradeNames.push("fluid.resolveRoot")}var memberName=fluid.typeNameToMemberName(options.singleRootType||type);segs.push(memberName);return fluid.construct(segs,options)};fluid.destroySingle=function(parentPath,typeName,instantiator){instantiator=instantiator||fluid.globalInstantiator;var segs=fluid.model.parseToSegments(parentPath,instantiator.parseEL,true);var memberName=fluid.typeNameToMemberName(typeName);segs.push(memberName);fluid.destroy(segs,instantiator)};fluid.makeGradeLinkage=function(linkageName,inputNames,outputNames){fluid.defaults(linkageName,{gradeNames:"fluid.component",distributeOptions:{record:outputNames,target:"{/ "+inputNames.join("&")+"}.options.gradeNames"}});fluid.constructSingle([],linkageName)};fluid.componentForPath=function(path){return fluid.globalInstantiator.pathToComponent[fluid.isArrayable(path)?path.join("."):path]};fluid.thisistToApplicable=function(record,recthis,that){return{apply:function(noThis,args){var resolvedThis=fluid.expandImmediate(recthis,that);if(typeof resolvedThis==="string"){resolvedThis=fluid.getGlobalValue(resolvedThis)}if(!resolvedThis){fluid.fail("Could not resolve reference "+recthis+" to a value")}var resolvedFunc=resolvedThis[record.method];if(typeof resolvedFunc!=="function"){fluid.fail("Object ",resolvedThis," at reference "+recthis+" has no member named "+record.method+" which is a function ")}if(fluid.passLogLevel(fluid.logLevel.TRACE)){fluid.log(fluid.logLevel.TRACE,"Applying arguments ",args," to method "+record.method+" of instance ",resolvedThis)}return resolvedFunc.apply(resolvedThis,args)}}};fluid.changeToApplicable=function(record,that){fluid.getForComponent(that,"applier");var parsed=fluid.parseValidModelReference(that,"changePath listener record",record.changePath);fluid.materialiseModelPath(parsed.that,parsed.modelSegs);return{apply:function(noThis,args,localRecord,mergeRecord){var value;if(record.func||record.funcName){var invoker=fluid.makeInvoker(that,fluid.filterKeys(record,["func","funcName","args"]),"changePath listener record",localRecord);value=invoker()}else{value=fluid.expandImmediate(record.value,that,fluid.extend(localRecord,{arguments:args}))}var sources=mergeRecord&&mergeRecord.source&&mergeRecord.source.length?fluid.makeArray(record.source).concat(mergeRecord.source):record.source;parsed.applier.change(parsed.modelSegs,value,record.type,sources)}}};fluid.recordToApplicable=function(record,that,standard){if(record.changePath!==undefined){return fluid.changeToApplicable(record,that,standard)}var recthis=record["this"];if(record.method^recthis){fluid.fail("Record ",that,' must contain both entries "method" and "this" if it contains either')}return record.method?fluid.thisistToApplicable(record,recthis,that):null};fluid.getGlobalValueNonComponent=function(funcName,context){var defaults=fluid.defaults(funcName);if(defaults&&fluid.hasGrade(defaults,"fluid.component")){fluid.fail("Error in function specification - cannot invoke function "+funcName+" in the context of "+context+": component creator functions can only be used as subcomponents")}return fluid.getGlobalValue(funcName)};fluid.makeInvoker=function(that,invokerec,name,localRecord){invokerec=fluid.upgradePrimitiveFunc(invokerec);if(invokerec.args!==undefined&&invokerec.args!==fluid.NO_ARGUMENTS&&!fluid.isArrayable(invokerec.args)){invokerec.args=fluid.makeArray(invokerec.args)}var func=fluid.recordToApplicable(invokerec,that);var invokePre=fluid.preExpand(invokerec.args);localRecord=localRecord||{};var expandOptions=fluid.makeStackResolverOptions(that,localRecord,true);func=func||(invokerec.funcName?fluid.getGlobalValueNonComponent(invokerec.funcName,"an invoker"):fluid.expandImmediate(invokerec.func,that));if(!func||!func.apply){fluid.fail("Error in invoker record: could not resolve members func, funcName or method to a function implementation - got "+func+" from ",invokerec)}else if(func===fluid.notImplemented){fluid.fail("Error constructing component "+fluid.dumpComponentAndPath(that)+" - the invoker named "+name+" which was defined in grade "+invokerec.componentSource+" needs to be overridden with a concrete implementation")}return function invokeInvoker(){if(fluid.defeatLogging===false){fluid.pushActivity("invokeInvoker","invoking invoker with name %name and record %record holding component %that",{name:name,record:invokerec,that:that})}var togo,finalArgs;if(that.lifecycleStatus==="destroyed"){fluid.log(fluid.logLevel.WARN,"Ignoring call to invoker "+name+" of component "+fluid.dumpComponentAndPath(that)+" which has been destroyed")}else{localRecord.arguments=arguments;if(invokerec.args===undefined||invokerec.args===fluid.NO_ARGUMENTS){finalArgs=arguments}else{fluid.expandImmediateImpl(invokePre,expandOptions);finalArgs=invokePre.source}togo=func.apply(null,finalArgs)}if(fluid.defeatLogging===false){fluid.popActivity()}return togo}};fluid.event.makeTrackedListenerAdder=function(source){var shadow=fluid.shadowForComponent(source);return function(event){return{addListener:function(listener,namespace,priority,softNamespace,listenerId){fluid.recordListener(event,listener,shadow,listenerId);event.addListener.apply(null,arguments)}}}};fluid.event.listenerEngine=function(eventSpec,callback,adder){var argstruc={};function checkFire(){var notall=fluid.find(eventSpec,(function(value,key){if(argstruc[key]===undefined){return true}}));if(!notall){var oldstruc=argstruc;argstruc={};callback(oldstruc)}}fluid.each(eventSpec,(function(event,eventName){adder(event).addListener((function(){argstruc[eventName]=fluid.makeArray(arguments);checkFire()}))}))};fluid.event.dispatchListener=function(that,listener,eventName,eventSpec,wrappedArgs){if(eventSpec.args!==undefined&&eventSpec.args!==fluid.NO_ARGUMENTS&&!fluid.isArrayable(eventSpec.args)){eventSpec.args=fluid.makeArray(eventSpec.args)}listener=fluid.event.resolveListener(listener);var dispatchPre=fluid.preExpand(eventSpec.args);var localRecord={};var expandOptions=fluid.makeStackResolverOptions(that,localRecord,true);var togo=function(){if(fluid.defeatLogging===false){fluid.pushActivity("dispatchListener","firing to listener to event named %eventName of component %that",{eventName:eventName,that:that})}var args=wrappedArgs?arguments[0]:arguments,finalArgs;localRecord.arguments=args;if(eventSpec.args!==undefined&&eventSpec.args!==fluid.NO_ARGUMENTS){fluid.expandImmediateImpl(dispatchPre,expandOptions);finalArgs=dispatchPre.source}else{finalArgs=args}var togo=listener.apply(null,finalArgs);if(fluid.defeatLogging===false){fluid.popActivity()}return togo};fluid.event.impersonateListener(listener,togo);return togo};fluid.event.resolveSoftNamespace=function(key){if(typeof key!=="string"){return null}else{var lastpos=Math.max(key.lastIndexOf("."),key.lastIndexOf("}"));return key.substring(lastpos+1)}};fluid.event.resolveListenerRecord=function(lisrec,that,eventName,namespace,standard){var badRec=function(record,extra){fluid.fail("Error in listener record - could not resolve reference ",record," to a listener or firer. "+'Did you miss out "events." when referring to an event firer?'+extra)};fluid.pushActivity("resolveListenerRecord","resolving listener record for event named %eventName for component %that",{eventName:eventName,that:that});var records=fluid.makeArray(lisrec);var transRecs=fluid.transform(records,(function(record){var expanded=fluid.isPrimitive(record)||record.expander?{listener:record}:fluid.copy(record);var methodist=fluid.recordToApplicable(record,that,standard);if(methodist){expanded.listener=methodist}else{expanded.listener=expanded.listener||expanded.func||expanded.funcName}if(!expanded.listener){badRec(record,' Listener record must contain a member named "listener", "func", "funcName" or "method"')}var softNamespace=record.method?fluid.event.resolveSoftNamespace(record["this"])+"."+record.method:fluid.event.resolveSoftNamespace(expanded.listener);if(!expanded.namespace&&!namespace&&softNamespace){expanded.softNamespace=true;expanded.namespace=(record.componentSource?record.componentSource:that.typeName)+"."+softNamespace}var listener=expanded.listener=fluid.expandOptions(expanded.listener,that);if(!listener){badRec(record,"")}var firer=false;if(listener.typeName==="fluid.event.firer"){listener=listener.fire;firer=true}expanded.listener=standard&&(expanded.args&&listener!=="fluid.notImplemented"||firer)?fluid.event.dispatchListener(that,listener,eventName,expanded):listener;expanded.listenerId=fluid.allocateGuid();return expanded}));var togo={records:transRecs,adderWrapper:standard?fluid.event.makeTrackedListenerAdder(that):null};fluid.popActivity();return togo};fluid.event.expandOneEvent=function(that,event){var origin;if(typeof event==="string"&&event.charAt(0)!=="{"){origin=fluid.getForComponent(that,["events",event])}else{origin=fluid.expandOptions(event,that)}if(!origin||origin.typeName!=="fluid.event.firer"){fluid.fail("Error in event specification - could not resolve base event reference ",event," to an event firer: got ",origin)}return origin};fluid.event.expandEvents=function(that,event){return typeof event==="string"?fluid.event.expandOneEvent(that,event):fluid.transform(event,(function(oneEvent){return fluid.event.expandOneEvent(that,oneEvent)}))};fluid.event.resolveEvent=function(that,eventName,eventSpec){fluid.pushActivity("resolveEvent","resolving event with name %eventName attached to component %that",{eventName:eventName,that:that});var adder=fluid.event.makeTrackedListenerAdder(that);if(typeof eventSpec==="string"){eventSpec={event:eventSpec}}var event=eventSpec.typeName==="fluid.event.firer"?eventSpec:eventSpec.event||eventSpec.events;if(!event){fluid.fail("Event specification for event with name "+eventName+" does not include a base event specification: ",eventSpec)}var origin=event.typeName==="fluid.event.firer"?event:fluid.event.expandEvents(that,event);var isMultiple=origin.typeName!=="fluid.event.firer";var isComposite=eventSpec.args||isMultiple;var firer;if(isComposite){firer=fluid.makeEventFirer({name:" [composite] "+fluid.event.nameEvent(that,eventName)});var dispatcher=fluid.event.dispatchListener(that,firer.fire,eventName,eventSpec,isMultiple);if(isMultiple){fluid.event.listenerEngine(origin,dispatcher,adder)}else{adder(origin).addListener(dispatcher)}}else{firer={typeName:"fluid.event.firer"};firer.fire=function(){var outerArgs=fluid.makeArray(arguments);fluid.pushActivity("fireSynthetic","firing synthetic event %eventName ",{eventName:eventName});var togo=origin.fire.apply(null,outerArgs);fluid.popActivity();return togo};firer.addListener=function(listener,namespace,priority,softNamespace,listenerId){var dispatcher=fluid.event.dispatchListener(that,listener,eventName,eventSpec);adder(origin).addListener(dispatcher,namespace,priority,softNamespace,listenerId)};firer.removeListener=function(listener){origin.removeListener(listener)};firer.originEvent=origin}fluid.popActivity();return firer};fluid.coerceToPrimitive=function(string){return string==="false"?false:string==="true"?true:isFinite(string)?Number(string):string};fluid.compactStringToRec=function(string,type){var openPos=string.indexOf("(");var closePos=string.indexOf(")");if(openPos===-1^closePos===-1||openPos>closePos){fluid.fail("Badly-formed compact "+type+" record without matching parentheses: "+string)}if(openPos!==-1&&closePos!==-1){var trail=string.substring(closePos+1);if(trail.trim()!==""){fluid.fail("Badly-formed compact "+type+" record "+string+" - unexpected material following close parenthesis: "+trail)}var prefix=string.substring(0,openPos);var body=string.substring(openPos+1,closePos).trim();var args=body===""?[]:fluid.transform(body.split(","),(function(str){return str.trim()}),fluid.coerceToPrimitive);var togo=fluid.upgradePrimitiveFunc(prefix,null);togo.args=args;return togo}else if(type==="expander"){fluid.fail("Badly-formed compact expander record without parentheses: "+string)}return string};fluid.expandPrefix="@expand:";fluid.expandCompactString=function(string,active){var rec=string;if(string.indexOf(fluid.expandPrefix)===0){var rem=string.substring(fluid.expandPrefix.length);rec={expander:fluid.compactStringToRec(rem,"expander")}}else if(active){rec=fluid.compactStringToRec(string,active)}return rec};var singularPenRecord={listeners:"listener",modelListeners:"modelListener"};var singularRecord=$.extend({invokers:"invoker"},singularPenRecord);fluid.expandCompactRec=function(segs,target,source){fluid.guardCircularExpansion(segs,segs.length);var pen=fluid.peek(segs);var active=singularRecord[pen];if(!active&&segs.length>1){active=singularPenRecord[segs[segs.length-2]]}fluid.each(source,(function(value,key){if(fluid.isPlainObject(value)){target[key]=fluid.freshContainer(value);segs.push(key);fluid.expandCompactRec(segs,target[key],value);segs.pop();return}else if(typeof value==="string"){value=fluid.expandCompactString(value,active)}target[key]=value}))};fluid.expandCompact=function(options){var togo={};fluid.expandCompactRec([],togo,options);return togo};fluid.extractEL=function(string,options){if(options.ELstyle==="ALL"||options.ELstyle==="{}"){return string}else if(options.ELstyle.length===1){if(string.charAt(0)===options.ELstyle){return string.substring(1)}}else if(options.ELstyle==="${}"){var i1=string.indexOf("${");var i2=string.lastIndexOf("}");if(i1===0&&i2!==-1){return string.substring(2,i2)}}};fluid.extractELWithContext=function(string,options){var EL=fluid.extractEL(string,options);if(fluid.isIoCReference(EL)){return fluid.parseContextReference(EL)}else if(options.ELstyle==="{}"){return null}return EL?{path:EL}:EL};fluid.parseContextReference=function(reference,index,delimiter){index=index||0;var isNested=reference.charAt(index+1)==="{",endcpos,context,nested;if(isNested){nested=fluid.parseContextReference(reference,index+1,"}");endcpos=nested.endpos}else{endcpos=reference.indexOf("}",index+1)}if(endcpos===-1){fluid.fail('Cannot parse context reference "'+reference+'": Malformed context reference without }')}if(isNested){context=nested}else{context=reference.substring(index+1,endcpos)}var endpos=delimiter?reference.indexOf(delimiter,endcpos+1):reference.length;var path=reference.substring(endcpos+1,endpos);if(path.charAt(0)==="."){path=path.substring(1)}return{context:context,path:path,endpos:endpos}};fluid.renderContextReference=function(parsed){var context=parsed.context;return"{"+(fluid.isPrimitive(context)?context:fluid.renderContextReference(context))+"}"+(parsed.path?"."+parsed.path:"")};fluid.resolveContextValue=function(string,options){function fetch(parsed){fluid.pushActivity("resolveContextValue","resolving context value %parsed",{parsed:parsed});var togo=options.fetcher(parsed);fluid.pushActivity("resolvedContextValue","resolved value %parsed to value %value",{parsed:parsed,value:togo});fluid.popActivity(2);return togo}var parsed;if(options.bareContextRefs&&fluid.isIoCReference(string)){parsed=fluid.parseContextReference(string);return fetch(parsed)}else if(options.ELstyle&&options.ELstyle!=="${}"){parsed=fluid.extractELWithContext(string,options);if(parsed){return fetch(parsed)}}if(options.ELstyle==="${}"){while(typeof string==="string"){var i1=string.indexOf("${");var i2=string.indexOf("}",i1+2);if(i1!==-1&&i2!==-1){if(string.charAt(i1+2)==="{"){parsed=fluid.parseContextReference(string,i1+2,"}");i2=parsed.endpos}else{parsed={path:string.substring(i1+2,i2)}}var subs=fetch(parsed);var all=i1===0&&i2===string.length-1;if(subs===undefined||subs===null){return subs}string=all?subs:string.substring(0,i1)+subs+string.substring(i2+1)}else{break}}}return string};fluid.fetchExpandChildren=function(target,i,segs,source,mergePolicy,options){if(source.expander){var expanded=fluid.expandExpander(target,source,options);if(fluid.isPrimitive(expanded)||!fluid.isPlainObject(expanded)||fluid.isArrayable(expanded)^fluid.isArrayable(target)){return expanded}else{$.extend(true,target,expanded)}}fluid.each(source,(function(newSource,key){if(newSource===undefined){target[key]=undefined}else if(key!=="expander"){segs[i]=key;if(fluid.getImmediate(options.exceptions,segs,i)!==true){options.strategy(target,key,i+1,segs,source,mergePolicy)}}}));return target};fluid.isUnexpandable=function(source){return fluid.isPrimitive(source)||!fluid.isPlainObject(source)};fluid.expandSource=function(options,target,i,segs,deliverer,source,policy,recurse){var expanded,isTrunk;var thisPolicy=fluid.derefMergePolicy(policy);if(typeof source==="string"&&!thisPolicy.noexpand){if(!options.defaultEL||source.charAt(0)==="{"){fluid.pushActivity("expandContextValue","expanding context value %source held at path %path",{source:source,path:fluid.path.apply(null,segs.slice(0,i))});expanded=fluid.copy(fluid.resolveContextValue(source,options));fluid.popActivity(1)}else{expanded=source}}else if(thisPolicy.noexpand||fluid.isUnexpandable(source)){expanded=fluid.copy(source)}else if(source.expander){expanded=fluid.expandExpander(deliverer,source,options)}else{expanded=fluid.freshContainer(source);isTrunk=true}if(expanded!==fluid.NO_VALUE){deliverer(expanded)}if(isTrunk){recurse(expanded,source,i,segs,policy)}return expanded};fluid.guardCircularExpansion=function(segs,i){if(i>fluid.strategyRecursionBailout){fluid.fail("Overflow/circularity in options expansion, current path is ",segs," at depth ",i,' - please ensure options are not circularly connected, or protect from expansion using the "noexpand" policy or expander')}};fluid.makeExpandStrategy=function(options){var recurse=function(target,source,i,segs,policy){return fluid.fetchExpandChildren(target,i||0,segs||[],source,policy,options)};var strategy=function(target,name,i,segs,source,policy){fluid.guardCircularExpansion(segs,i);if(!target){return}if(target.hasOwnProperty(name)){return target[name]}if(source===undefined){source=fluid.regenerateCursor(options.source,segs,i-1,options.sourceStrategy);policy=fluid.regenerateCursor(options.mergePolicy,segs,i-1,fluid.concreteTrundler)}var thisSource=options.sourceStrategy(source,name,i,segs);var thisPolicy=fluid.concreteTrundler(policy,name);function deliverer(value){target[name]=value}return fluid.expandSource(options,target,i,segs,deliverer,thisSource,thisPolicy,recurse)};options.recurse=recurse;options.strategy=strategy;return strategy};fluid.defaults("fluid.makeExpandOptions",{ELstyle:"${}",bareContextRefs:true,target:fluid.inCreationMarker});fluid.makeExpandOptions=function(source,options){options=$.extend({},fluid.rawDefaults("fluid.makeExpandOptions"),options);options.defaultEL=options.ELStyle==="${}"&&options.bareContextRefs;options.expandSource=function(source){return fluid.expandSource(options,null,0,[],fluid.identity,source,options.mergePolicy,false)};if(!fluid.isUnexpandable(source)){options.source=source;options.target=fluid.freshContainer(source);options.sourceStrategy=options.sourceStrategy||fluid.concreteTrundler;fluid.makeExpandStrategy(options);options.initter=function(){options.target=fluid.fetchExpandChildren(options.target,0,[],options.source,options.mergePolicy,options)}}else{options.strategy=fluid.concreteTrundler;options.initter=fluid.identity;if(typeof source==="string"){options.target=(options.defer?fluid.copy:fluid.identity)(options.expandSource(source))}else{options.target=source}options.immutableTarget=true}return options};fluid.expand=function(source,options){var expandOptions=fluid.makeExpandOptions(source,options);expandOptions.initter();return expandOptions.target};fluid.preExpandRecurse=function(root,source,holder,member,rootSegs){fluid.guardCircularExpansion(rootSegs,rootSegs.length);function pushExpander(expander){root.expanders.push({expander:expander,holder:holder,member:member});delete holder[member]}if(fluid.isIoCReference(source)){var parsed=fluid.parseContextReference(source);var segs=fluid.model.parseEL(parsed.path);pushExpander({typeFunc:fluid.expander.fetch,context:parsed.context,segs:segs})}else if(fluid.isPlainObject(source)){if(source.expander){source.expander.typeFunc=fluid.getGlobalValue(source.expander.type||"fluid.expander.invokeFunc");pushExpander(source.expander)}else{fluid.each(source,(function(value,key){rootSegs.push(key);fluid.preExpandRecurse(root,value,source,key,rootSegs);rootSegs.pop()}))}}};fluid.preExpand=function(source){var root={expanders:[],source:fluid.isUnexpandable(source)?source:fluid.copy(source)};fluid.preExpandRecurse(root,root.source,root,"source",[]);return root};fluid.expandImmediate=function(source,that,localRecord,noproxy){var options=fluid.makeStackResolverOptions(that,localRecord,true);options.noproxy=!!noproxy;var root=fluid.preExpand(source);fluid.expandImmediateImpl(root,options);return root.source};fluid.expandImmediateImpl=function(root,options){var expanders=root.expanders;for(var i=0;i0){fluid.triggerMismatchedPathError(source.expander,options.contextThat)}};fluid.expander.invokeFunc=function(deliverer,source,options){var expander=source.expander;var args=fluid.makeArray(expander.args);var whichFuncEntry=expander.func?"func":expander.funcName?"funcName":null;expander.args=args;if(options.recurse){args=options.recurse([],args)}else{expander=fluid.expandImmediate(expander,options.contextThat,options.localRecord,expander.noproxy);args=expander.args}if(!expander.noproxy){fluid.proxyComponentArgs(args)}var funcEntry=expander[whichFuncEntry];var func=(options.expandSource?options.expandSource(funcEntry):funcEntry)||fluid.recordToApplicable(expander,options.contextThat);if(typeof func==="string"){func=fluid.getGlobalValue(func)}if(!func){fluid.fail("Error in expander record ",source.expander,": "+source.expander[whichFuncEntry]+" could not be resolved to a function for component ",options.contextThat)}return func.apply(null,args)};fluid.expander.noexpand=function(deliverer,source){return source.expander.value?source.expander.value:source.expander.tree};fluid.noexpand=fluid.expander.noexpand;"use strict";fluid.model.makeEnvironmentStrategy=function(environment){return function(root,segment,index){return index===0&&environment[segment]?environment[segment]:undefined}};fluid.model.defaultCreatorStrategy=function(root,segment){if(root[segment]===undefined){root[segment]={};return root[segment]}};fluid.model.defaultFetchStrategy=function(root,segment){return root[segment]};fluid.model.funcResolverStrategy=function(root,segment){if(root.resolvePathSegment){return root.resolvePathSegment(segment)}};fluid.model.traverseWithStrategy=function(root,segs,initPos,config,uncess){var strategies=config.strategies;var limit=segs.length-uncess;for(var i=initPos;ifluid.relayRecursionBailout){fluid.fail("Error in model relay specification at component ",target," - operated more than "+fluid.relayRecursionBailout+" relays without model value settling - current model contents are ",trans.newHolder.model)}if(!transEl){transEl=fluid.registerRelayTransaction(transRec,targetApplier,transId,options,npOptions)}if(transducer&&!options.targetApplier){fluid.pushActivity("relayTransducer",'computing modelRelay output for rule with target path "%targetSegs" and namespace "%namespace"',{targetSegs:targetSegs,namespace:npOptions.namespace});transducer(transEl.transaction,options.sourceApplier?undefined:newValue,source,sourceSegs,targetSegs,changeRequest);fluid.popActivity()}else{if(changeRequest&&changeRequest.type==="DELETE"){var deleteSegs=targetSegs.concat(changeRequest.segs.slice(sourceSegs.length));transEl.transaction.fireChangeRequest({type:"DELETE",segs:deleteSegs})}else if(newValue!==undefined){transEl.transaction.fireChangeRequest({type:"ADD",segs:targetSegs,value:newValue})}}}};var spec=sourceApplier.modelChanged.addListener({isRelay:true,cond:transducer&&transducer.cond,targetId:target.id,targetApplierId:targetApplier.id,segs:sourceSegs,transactional:options.transactional},sourceListener);if(fluid.passLogLevel(fluid.logLevel.TRACE)){fluid.log(fluid.logLevel.TRACE,"Adding relay listener with listenerId "+spec.listenerId+" to source applier with id "+sourceApplier.applierId+" from target applier with id "+applierId+" for target component with id "+target.id)}if(source){fluid.recordChangeListener(source,sourceApplier,sourceListener,spec.listenerId);if(target!==source){fluid.recordChangeListener(target,sourceApplier,sourceListener,spec.listenerId)}}};fluid.connectModelRelay=function(source,sourceSegs,target,targetSegs,options){var linkId=fluid.allocateGuid();fluid.enlistModelComponent(target);fluid.enlistModelComponent(source);var npOptions=fluid.filterKeys(options,["namespace","priority"]);if(options.update){if(options.targetApplier){fluid.registerDirectChangeRelay(source,sourceSegs,target,targetSegs,linkId,null,{transactional:false,targetApplier:options.targetApplier,refCount:options.refCount,update:options.update},npOptions)}else{fluid.registerDirectChangeRelay(target,targetSegs,source,[],linkId+"-transform",options.forwardAdapter,{transactional:true,sourceApplier:options.forwardApplier},npOptions)}}else{fluid.registerDirectChangeRelay(target,targetSegs,source,sourceSegs,linkId,options.forwardAdapter,{transactional:false},npOptions);fluid.registerDirectChangeRelay(source,sourceSegs,target,targetSegs,linkId,options.backwardAdapter,{transactional:false},npOptions)}};fluid.parseSourceExclusionSpec=function(targetSpec,sourceSpec){targetSpec.excludeSource=fluid.arrayToHash(fluid.makeArray(sourceSpec.excludeSource||(sourceSpec.includeSource?"*":undefined)));targetSpec.includeSource=fluid.arrayToHash(fluid.makeArray(sourceSpec.includeSource));return targetSpec};fluid.isExcludedChangeSource=function(transaction,spec){if(!spec||!spec.excludeSource){return false}var excluded=spec.excludeSource["*"];for(var source in transaction.fullSources){if(spec.excludeSource[source]){excluded=true}if(spec.includeSource[source]){excluded=false}}return excluded};fluid.model.guardedAdapter=function(transaction,cond,func,args){if(!fluid.isExcludedChangeSource(transaction,cond)&&func!==fluid.model.transform.uninvertibleTransform){func.apply(null,args)}};fluid.transformToAdapter=function(transform,targetPath){var basedTransform={};basedTransform[targetPath]=transform;return function(trans,newValue,source,sourceSegs,targetSegs,changeRequest){if(changeRequest&&changeRequest.type==="DELETE"){trans.fireChangeRequest({type:"DELETE",path:targetPath})}var oldTarget=fluid.getImmediate(trans.oldHolder.model,targetSegs);var oldSource=fluid.getImmediate(source.model,sourceSegs);fluid.model.transformWithRules(newValue,basedTransform,{finalApplier:trans,oldTarget:oldTarget,oldSource:oldSource})}};fluid.makeTransformPackage=function(componentThat,transform,sourcePath,targetPath,forwardCond,backwardCond,namespace,priority){var that={forwardHolder:{model:transform},backwardHolder:{model:null}};that.generateAdapters=function(trans){that.forwardAdapterImpl=fluid.transformToAdapter(trans?trans.newHolder.model:that.forwardHolder.model,targetPath);if(sourcePath!==null){var inverted=fluid.model.transform.invertConfiguration(transform);if(inverted!==fluid.model.transform.uninvertibleTransform){that.backwardHolder.model=inverted;that.backwardAdapterImpl=fluid.transformToAdapter(that.backwardHolder.model,sourcePath)}else{that.backwardAdapterImpl=inverted}}};that.forwardAdapter=function(transaction,newValue){if(newValue===undefined){that.generateAdapters()}fluid.model.guardedAdapter(transaction,forwardCond,that.forwardAdapterImpl,arguments)};that.forwardAdapter.cond=forwardCond;that.runTransform=function(trans){trans.commit();trans.reset()};that.forwardApplier=fluid.makeHolderChangeApplier(that.forwardHolder);that.forwardApplier.isRelayApplier=true;that.invalidator=fluid.makeEventFirer({name:"Invalidator for model relay with applier "+that.forwardApplier.applierId});if(sourcePath!==null){that.backwardApplier=fluid.makeHolderChangeApplier(that.backwardHolder);that.backwardAdapter=function(transaction){fluid.model.guardedAdapter(transaction,backwardCond,that.backwardAdapterImpl,arguments)};that.backwardAdapter.cond=backwardCond}that.update=that.invalidator.fire;var implicitOptions={targetApplier:that.forwardApplier,update:that.update,namespace:namespace,priority:priority,refCount:0};that.forwardHolder.model=fluid.parseImplicitRelay(componentThat,transform,[],implicitOptions);that.refCount=implicitOptions.refCount;that.namespace=namespace;that.priority=priority;that.generateAdapters();that.invalidator.addListener(that.generateAdapters);that.invalidator.addListener(that.runTransform);return that};fluid.singleTransformToFull=function(singleTransform){var expanded=typeof singleTransform==="string"?{type:singleTransform}:singleTransform;var withPath=$.extend(true,{inputPath:""},expanded);return{"":{transform:withPath}}};fluid.funcToSingleTransform=function(that,mrrec){if(mrrec.func){if((mrrec.args!==undefined)+(mrrec.source!==undefined)+(mrrec.value!==undefined)!==1){fluid.fail("Error in model relay definition: short-form relay must specify just one out of (args, source, value)")}return{type:"fluid.transforms.free",func:mrrec.func,args:mrrec.args?mrrec.args:[fluid.isIoCReference(mrrec.source)?mrrec.source:"{that}.model."+mrrec.source]}}else{return null}};fluid.model.relayConditions={initOnly:{includeSource:"init"},liveOnly:{excludeSource:"init"},never:{includeSource:[]},always:{}};fluid.model.expandRelayCondition=function(condition){var exclusionRec;if(condition==="initOnly"){fluid.log(fluid.logLevel.WARN,'The relay condition "initOnly" is deprecated: Please use the form \'includeSource: "init"\' instead')}else if(condition==="liveOnly"){fluid.log(fluid.logLevel.WARN,'The relay condition "liveOnly" is deprecated: Please use the form \'excludeSource: "init"\' instead')}if(!condition){exclusionRec={}}else if(typeof condition==="string"){exclusionRec=fluid.model.relayConditions[condition];if(!exclusionRec){fluid.fail('Unrecognised model relay condition string "'+condition+'": the supported values are "never" or a record with members "includeSource" and/or "excludeSource"')}}else{exclusionRec=condition}return exclusionRec};fluid.model.parseRelayConditions=function(conditions){var expanded=conditions.map(fluid.model.expandRelayCondition);var mergeArgs=[true,{}].concat(expanded);var merged=fluid.extend.apply(null,mergeArgs);return fluid.parseSourceExclusionSpec({},merged)};fluid.parseModelRelay=function(that,mrrec,key){fluid.pushActivity("parseModelRelay",'parsing modelRelay definition with key "%key" and body "%body" attached to component "%that"',{key:key,body:mrrec,that:that});if(typeof mrrec.target!=="string"&&!(fluid.isPlainObject(mrrec.target,true)&&mrrec.target.segs)){fluid.fail('Error parsing model relay definition: model reference must be specified for "target"')}var parsedSource=mrrec.source!==undefined?fluid.parseValidModelReference(that,'modelRelay record member "source"',mrrec.source,true):mrrec.value!==undefined?{nonModel:true}:{path:null,modelSegs:null};var parsedTarget=fluid.parseValidModelReference(that,'modelRelay record member "target"',mrrec.target);var namespace=mrrec.namespace||key;var singleTransform=typeof mrrec.singleTransform==="string"?{type:mrrec.singleTransform}:mrrec.singleTransform;var shortSingleTransform=fluid.funcToSingleTransform(that,mrrec);var transform=mrrec.transform||fluid.singleTransformToFull(singleTransform||shortSingleTransform||{type:"fluid.transforms.identity"});var upDefaults=singleTransform?fluid.defaults(singleTransform.type):null;var relayOptions=upDefaults&&upDefaults.relayOptions||{};var forwardCond=fluid.model.parseRelayConditions([relayOptions.forward,mrrec.forward]),backwardCond=fluid.model.parseRelayConditions([relayOptions.backward,mrrec.backward]);var transformPackage=fluid.makeTransformPackage(that,transform,parsedSource.path,parsedTarget.path,forwardCond,backwardCond,namespace,mrrec.priority);if(parsedSource.nonModel){var initValue=fluid.parseImplicitRelay(that,fluid.firstDefined(mrrec.source,mrrec.value),parsedTarget.modelSegs),transformed;if(transform[""].transform.type!=="fluid.transforms.identity"){var localTransform=fluid.copy(transform);localTransform[""].transform.args=[initValue];transformed=fluid.model.transformWithRules(initValue,localTransform)}else{transformed=initValue}var enlist=fluid.enlistModelComponent(parsedTarget.that);var initModel={};fluid.model.setSimple(initModel,parsedTarget.modelSegs,transformed);enlist.initModels.push(initModel)}else{if(transformPackage.refCount===0){fluid.connectModelRelay(parsedSource.that||that,parsedSource.modelSegs,parsedTarget.that,parsedTarget.modelSegs,fluid.filterKeys(transformPackage,["forwardAdapter","backwardAdapter","namespace","priority"]))}else{if(parsedSource.modelSegs&&!shortSingleTransform){fluid.fail('Error in model relay definition: If a relay transform has a model dependency, you can not specify a "source" entry - please instead enter this as "input" in the transform specification. Definition was ',mrrec," for component ",that)}fluid.connectModelRelay(that,null,parsedTarget.that,parsedTarget.modelSegs,transformPackage)}}fluid.popActivity()};fluid.parseImplicitRelay=function(that,modelRec,segs,options){var value;if(fluid.isIoCReference(modelRec)){var parsed=fluid.parseValidModelReference(that,"model reference from model (implicit relay)",modelRec,true);if(parsed.nonModel){value=fluid.isComponent(parsed.that)?fluid.possiblyProxyComponent(fluid.getForComponent(parsed.that,parsed.segs)):fluid.getImmediate(parsed.that,parsed.segs);if(value instanceof fluid.fetchResources.FetchOne){that.applier.resourceMap.push({segs:fluid.makeArray(segs),fetchOne:value});return undefined}}else{++options.refCount;fluid.connectModelRelay(that,segs,parsed.that,parsed.modelSegs,options)}}else if(fluid.isPrimitive(modelRec)||!fluid.isPlainObject(modelRec)){value=modelRec}else if(modelRec.expander&&fluid.isPlainObject(modelRec.expander)){value=fluid.expandOptions(modelRec,that)}else{value=fluid.freshContainer(modelRec);fluid.each(modelRec,(function(innerValue,key){segs.push(key);var innerTrans=fluid.parseImplicitRelay(that,innerValue,segs,options);if(innerTrans!==undefined){value[key]=innerTrans}segs.pop()}))}return value};fluid.model.notifyExternal=function(transRec){var allChanges=transRec?fluid.values(transRec.externalChanges):[];fluid.sortByPriority(allChanges);for(var i=0;i0&&transEl.relayCount0){}}function commitRelays(transaction){fluid.model.commitRelays(instantiator,transaction.id)}applier.preCommit.addListener(updateRelays);applier.preCommit.addListener(commitRelays);applier.postCommit.addListener(fluid.concludeModelTransaction);applier.postCommit.addListener(fluid.concludeAnyTreeTransaction);return null};fluid.destroyLensedComponentSource=function(that,isBoolean){var shadow=fluid.shadowForComponent(that);var sourceModelReference=shadow.localRecord.sourceModelReference;if(sourceModelReference&&!fluid.isDestroyed(sourceModelReference.that,true)){sourceModelReference.that.applier.change(sourceModelReference.modelSegs,false,isBoolean?"ADD":"DELETE")}};fluid.constructLensedComponents=function(shadow,initTransRec,sourcesParsed,dynamicComponentKey){var lightMerge=shadow.lightMergeDynamicComponents[dynamicComponentKey];var sources=fluid.getImmediate(shadow.that.model,sourcesParsed.modelSegs);var shadowRecord=shadow.modelSourcedDynamicComponents[dynamicComponentKey];var localRecordContributor=shadowRecord.localRecordContributor=function(localRecord,source,sourceKey){localRecord.sourceModelReference={that:sourcesParsed.that,modelSegs:sourcesParsed.modelSegs.concat(shadowRecord.isBoolean?[]:[sourceKey])}};fluid.lightMergeRecords.pushRecord(lightMerge,{options:{listeners:{afterDestroy:{funcName:"fluid.destroyLensedComponentSource",args:["{that}",shadowRecord.isBoolean]}}}});fluid.registerSourcedDynamicComponentsTriage(shadow.potentia,shadow.that,sources,lightMerge,dynamicComponentKey,shadowRecord.isBoolean,localRecordContributor)};fluid.operateInitialTransactionWorkflow=function(shadows,treeTransaction){fluid.tryCatch((function(){var initModelTransaction=treeTransaction.initModelTransaction;var transId=treeTransaction.initModelTransactionId;fluid.operateInitialTransaction(initModelTransaction,transId)}),(function(e){treeTransaction.initModelTransaction={};treeTransaction.initModelTransactionId=null;fluid.clearTransactions();throw e}),fluid.identity)};fluid.enlistModelWorkflow=function(shadows,treeTransaction){var transId=treeTransaction.initModelTransactionId;if(!transId){transId=fluid.allocateGuid();treeTransaction.initModelTransactionId=transId}shadows.forEach((function(shadow){fluid.getForComponent(shadow.that,"modelRelay")}));fluid.operateInitialTransactionWorkflow(shadows,treeTransaction)};fluid.notifyInitModelWorkflow=function(shadow,treeTransaction){if(!shadow.modelComplete){var initModelTransaction=treeTransaction.initModelTransaction;var transRec=fluid.getModelTransactionRec(fluid.rootComponent,shadow.initTransactionId);var trans=fluid.values(initModelTransaction)[0].transaction;treeTransaction.initModelTransaction={};treeTransaction.initModelTransactionId=null;trans.commit();fluid.each(initModelTransaction,(function(oneRec){var that=oneRec.that,applier=that.applier;trans=transRec[applier.applierId].transaction;var listeners=applier.transListeners.sortedListeners;var initShadow=fluid.shadowForComponent(that);initShadow.modelComplete=true;var shadowTrans=initShadow.initTransactionId;if(shadowTrans===shadow.initTransactionId){fluid.notifyModelChanges(listeners,"ADD",trans.oldHolder,fluid.emptyHolder,null,trans,applier,that)}else{}}));fluid.concludeModelTransaction(trans)}};fluid.defaults("fluid.modelComponent",{gradeNames:["fluid.component"],workflows:{global:{enlistModel:{funcName:"fluid.enlistModelWorkflow"},resolveResourceModel:{funcName:"fluid.resolveResourceModelWorkflow",priority:"after:enlistModel",waitIO:true}},local:{notifyInitModelWorkflow:{funcName:"fluid.notifyInitModelWorkflow",priority:"before:concludeComponentInit"}}},members:{model:{expander:{funcName:"fluid.initRelayModel",args:["{that}","{that}.modelRelay"],noproxy:true}},applier:{expander:{funcName:"fluid.makeHolderChangeApplier",args:["{that}","{that}.options.changeApplierOptions"],noproxy:true}},modelRelay:{expander:{funcName:"fluid.establishModelRelay",args:["{that}","{that}.options.model","{that}.options.modelListeners","{that}.options.modelRelay","{that}.applier"],noproxy:true}}},mergePolicy:{model:{noexpand:true,func:fluid.arrayConcatPolicy},modelListeners:fluid.makeMergeListenersPolicy(fluid.arrayConcatPolicy),modelRelay:fluid.makeMergeListenersPolicy(fluid.arrayConcatPolicy,true)}});fluid.modelChangedToChange=function(args){return{value:args[0],oldValue:args[1],path:args[2],transaction:args[4]}};fluid.event.invokeListener=function(listener,args,localRecord,mergeRecord){if(typeof listener==="string"){listener=fluid.event.resolveListener(listener)}return listener.apply(null,args,localRecord,mergeRecord)};fluid.resolveModelListener=function(that,record){var togo=function(){if(fluid.isDestroyed(that,true)){return}var change=fluid.modelChangedToChange(arguments);var args=arguments;var localRecord={change:change,arguments:args};var mergeRecord={source:Object.keys(change.transaction.sources)};if(record.args){args=fluid.expandImmediate(record.args,that,localRecord)}fluid.event.invokeListener(record.listener,fluid.makeArray(args),localRecord,mergeRecord)};fluid.event.impersonateListener(record.listener,togo);return togo};fluid.registerModelListeners=function(that,record,paths,namespace){var func=fluid.resolveModelListener(that,record);fluid.each(record.byTarget,(function(parsedArray){var parsed=parsedArray[0];var spec={listener:func,listenerId:fluid.allocateGuid(),segsArray:fluid.getMembers(parsedArray,"modelSegs"),includeSource:record.includeSource,excludeSource:record.excludeSource,priority:fluid.expandOptions(record.priority,that),transactional:true};spec=parsed.applier.modelChanged.addListener(spec,func,namespace,record.softNamespace);spec.segsArray.forEach((function(segs){fluid.materialiseModelPath(that,segs)}));fluid.recordChangeListener(that,parsed.applier,func,spec.listenerId)}))};fluid.registerMergedModelListeners=function(that,listeners){fluid.each(listeners,(function(value,key){if(typeof value==="string"){value={funcName:value}}var records=fluid.event.resolveListenerRecord(value,that,"modelListeners",null,false).records;fluid.each(records,(function(record){record.byTarget={};var paths=fluid.makeArray(record.path===undefined?key:record.path);fluid.each(paths,(function(path){var parsed=fluid.parseValidModelReference(that,"modelListeners entry",path);fluid.pushArray(record.byTarget,parsed.that.id,parsed)}));var namespace=(record.namespace&&!record.softNamespace?record.namespace:null)||(record.path!==undefined?key:null);fluid.registerModelListeners(that,record,paths,namespace)}))}))};fluid.replaceModelValue=function(applier,path,newValue){var transaction=applier.initiate();transaction.fireChangeRequest({path:path,type:"DELETE"});transaction.fireChangeRequest({path:path,value:newValue});transaction.commit();return applier.holder.model};fluid.fireChanges=function(applier,changes){for(var i=0;i1;for(var j=0;j1){fluid.fail("Error in model listener specification ",spec," - you may not supply a wildcard pattern as one of a set of multiple paths to be matched")}}var firer=that[spec.transactional?"transListeners":"listeners"];firer.addListener(spec);return spec};that.modelChanged.removeListener=function(listener){that.listeners.removeListener(listener);that.transListeners.removeListener(listener)};that.fireChangeRequest=function(changeRequest){var initTransaction=fluid.findInitModelTransaction(holder);if(initTransaction){initTransaction.transaction.fireChangeRequest(changeRequest)}else{var ation=that.initiate("local",changeRequest.source);ation.fireChangeRequest(changeRequest);ation.commit()}};that.initiate=function(localSource,globalSources,transactionId){localSource=globalSources==="init"?null:localSource||"local";var defeatPost=localSource==="relay"||globalSources==="init";var trans={instanceId:fluid.allocateGuid(),id:transactionId||fluid.allocateGuid(),changeRecord:{resolverSetConfig:options.resolverSetConfig,resolverGetConfig:options.resolverGetConfig},reset:function(){trans.oldHolder=holder;trans.newHolder={model:fluid.copy(holder.model)};trans.changeRecord.changes=0;trans.changeRecord.unchanged=0;trans.changeRecord.changeMap={}},commit:function(code){if(code!=="relay"){that.preCommit.fire(trans,that,code)}if(trans.changeRecord.changes>0){var oldHolder={model:holder.model};holder.model=trans.newHolder.model;fluid.notifyModelChanges(that.transListeners.sortedListeners,trans.changeRecord.changeMap,holder,oldHolder,null,trans,that,holder)}if(!defeatPost&&code!=="relay"){that.postCommit.fire(trans,that,code)}},fireChangeRequest:function(changeRequest){fluid.preFireChangeRequest(that,changeRequest);changeRequest.transactionId=trans.id;var deltaMap=fluid.model.applyHolderChangeRequest(trans.newHolder,changeRequest,trans.changeRecord);fluid.notifyModelChanges(that.listeners.sortedListeners,deltaMap,trans.newHolder,holder,changeRequest,trans,that,holder)},hasChangeSource:function(source){return trans.fullSources[source]}};var transRec=fluid.getModelTransactionRec(holder,trans.id);if(transRec){fluid.mergeChangeSources(transRec.sources,globalSources);trans.sources=transRec.sources;trans.fullSources=Object.create(transRec.sources);if(localSource){trans.fullSources[localSource]=true}}trans.reset();fluid.bindRequestChange(trans);return trans};fluid.bindRequestChange(that);fluid.bindELMethods(that);return that};fluid.modelPairToChanges=function(value,oldValue,changePathPrefix){changePathPrefix=changePathPrefix||"";var diffOptions={changes:0,unchanged:0,changeMap:{}};fluid.model.diff(oldValue,value,diffOptions);var changes=[];fluid.modelPairToChangesImpl(value,fluid.pathUtil.parseEL(changePathPrefix),diffOptions.changeMap,[],changes);return changes};fluid.modelPairToChangesImpl=function(value,changePathPrefixSegs,changeMap,changeSegs,changes){if(changeMap==="ADD"){changes.push({path:changePathPrefixSegs,value:value,type:"ADD"})}else if(changeMap==="DELETE"){changes.push({path:changePathPrefixSegs,value:null,type:"DELETE"})}else if(fluid.isPlainObject(changeMap,true)){fluid.each(changeMap,(function(change,seg){var currentChangeSegs=changeSegs.concat([seg]);if(change==="ADD"){changes.push({path:changePathPrefixSegs.concat(currentChangeSegs),value:fluid.get(value,currentChangeSegs),type:"ADD"})}else if(change==="DELETE"){changes.push({path:changePathPrefixSegs.concat(currentChangeSegs),value:null,type:"DELETE"})}else if(fluid.isPlainObject(change,true)){fluid.modelPairToChangesImpl(value,changePathPrefixSegs,change,currentChangeSegs,changes)}}))}};"use strict";fluid.registerNamespace("fluid.model.transform");fluid.defaults("fluid.transformFunction",{gradeNames:"fluid.function"});fluid.defaults("fluid.standardInputTransformFunction",{gradeNames:"fluid.transformFunction"});fluid.defaults("fluid.standardOutputTransformFunction",{gradeNames:"fluid.transformFunction"});fluid.defaults("fluid.multiInputTransformFunction",{gradeNames:"fluid.transformFunction"});fluid.defaults("fluid.standardTransformFunction",{gradeNames:["fluid.standardInputTransformFunction","fluid.standardOutputTransformFunction"]});fluid.defaults("fluid.lens",{gradeNames:"fluid.transformFunction",invertConfiguration:null});fluid.model.transform.pathToRule=function(inputPath){return{transform:{type:"fluid.transforms.value",inputPath:inputPath}}};fluid.model.transform.literalValueToRule=function(input){return{transform:{type:"fluid.transforms.literalValue",input:input}}};fluid.model.composePaths=function(prefix,suffix){prefix=prefix===0?"0":prefix||"";suffix=suffix===0?"0":suffix||"";return!prefix?suffix:!suffix?prefix:prefix+"."+suffix};fluid.model.transform.accumulateInputPath=function(inputPath,transformer,paths){if(inputPath!==undefined){paths.push(fluid.model.composePaths(transformer.inputPrefix,inputPath))}};fluid.model.transform.accumulateStandardInputPath=function(input,transformSpec,transformer,paths){fluid.model.transform.getValue(undefined,transformSpec[input],transformer);fluid.model.transform.accumulateInputPath(transformSpec[input+"Path"],transformer,paths)};fluid.model.transform.accumulateMultiInputPaths=function(inputVariables,transformSpec,transformer,paths){fluid.each(inputVariables,(function(v,k){fluid.model.transform.accumulateStandardInputPath(k,transformSpec,transformer,paths)}))};fluid.model.transform.getValue=function(inputPath,value,transformer){var togo;if(inputPath!==undefined){togo=fluid.get(transformer.source,fluid.model.composePaths(transformer.inputPrefix,inputPath),transformer.resolverGetConfig)}if(togo===undefined){togo=fluid.isPrimitive(value)?value:"literalValue"in value?value.literalValue:value.transform===undefined?value:transformer.expand(value)}return togo};fluid.model.transform.NONDEFAULT_OUTPUT_PATH_RETURN={};fluid.model.transform.setValue=function(userOutputPath,value,transformer){var toset=fluid.copy(value);var outputPath=fluid.model.composePaths(transformer.outputPrefix,userOutputPath);if(toset!==undefined){transformer.applier.change(outputPath,toset)}return userOutputPath?fluid.model.transform.NONDEFAULT_OUTPUT_PATH_RETURN:toset};fluid.model.transform.resolveParam=function(transformSpec,transformer,key,def){var val=fluid.model.transform.getValue(transformSpec[key+"Path"],transformSpec[key],transformer);return val!==undefined?val:def};fluid.model.transform.matchValue=function(expected,actual,partialMatches){var stats={changes:0,unchanged:0,changeMap:{}};fluid.model.diff(expected,actual,stats);return stats.unchanged===0?0:partialMatches?0xffffff000000-16777216*stats.changes+stats.unchanged:stats.changes?0:0xffffff000000+stats.unchanged};fluid.model.transform.invertPaths=function(transformSpec,transformer){var oldOutput=fluid.model.composePaths(transformer.outputPrefix,transformSpec.outputPath);transformSpec.outputPath=fluid.model.composePaths(transformer.inputPrefix,transformSpec.inputPath);transformSpec.inputPath=oldOutput;return transformSpec};fluid.model.transform.prefixApplier=function(transformSpec,transformer){if(transformSpec.inputPrefix){transformer.inputPrefixOp.push(transformSpec.inputPrefix)}if(transformSpec.outputPrefix){transformer.outputPrefixOp.push(transformSpec.outputPrefix)}transformer.expand(transformSpec.input);if(transformSpec.inputPrefix){transformer.inputPrefixOp.pop()}if(transformSpec.outputPrefix){transformer.outputPrefixOp.pop()}};fluid.defaults("fluid.model.transform.prefixApplier",{gradeNames:["fluid.transformFunction"]});fluid.model.makePathStack=function(transform,prefixName){var stack=transform[prefixName+"Stack"]=[];transform[prefixName]="";return{push:function(prefix){var newPath=fluid.model.composePaths(transform[prefixName],prefix);stack.push(transform[prefixName]);transform[prefixName]=newPath},pop:function(){transform[prefixName]=stack.pop()}}};fluid.model.transform.doTransform=function(transformSpec,transformer,transformOpts){var expdef=transformOpts.defaults;var transformFn=fluid.getGlobalValue(transformOpts.typeName);if(typeof transformFn!=="function"){fluid.fail("Transformation record specifies transformation function with name "+transformSpec.type+" which is not a function - ",transformFn)}if(!fluid.hasGrade(expdef,"fluid.transformFunction")){expdef=fluid.defaults("fluid.standardTransformFunction")}var transformArgs=[transformSpec,transformer];if(fluid.hasGrade(expdef,"fluid.multiInputTransformFunction")){var inputs={};fluid.each(expdef.inputVariables,(function(v,k){inputs[k]=function(){var input=fluid.model.transform.getValue(transformSpec[k+"Path"],transformSpec[k],transformer);input=input===undefined&&v!==null?v:input;return input}}));transformArgs.unshift(inputs)}if(fluid.hasGrade(expdef,"fluid.standardInputTransformFunction")){if(!("input"in transformSpec)&&!("inputPath"in transformSpec)){fluid.fail('Error in transform specification. Either "input" or "inputPath" must be specified for a standardInputTransformFunction: received ',transformSpec)}var expanded=fluid.model.transform.getValue(transformSpec.inputPath,transformSpec.input,transformer);transformArgs.unshift(expanded);if(expanded===undefined){return undefined}}var transformed=transformFn.apply(null,transformArgs);if(fluid.hasGrade(expdef,"fluid.standardOutputTransformFunction")){var outputPath=transformSpec.outputPath!==undefined?transformSpec.outputPath:transformOpts.doOutput?"":undefined;if(outputPath!==undefined&&transformed!==undefined){fluid.model.transform.setValue(transformSpec.outputPath,transformed,transformer);transformed=undefined}}return transformed};var globalAccept=[];fluid.registerNamespace("fluid.pathUtil");fluid.pathUtil.getPathSegment=function(path,i){fluid.pathUtil.getPathSegmentImpl(globalAccept,path,i);return globalAccept[0]};fluid.pathUtil.getHeadPath=function(path){return fluid.pathUtil.getPathSegment(path,0)};fluid.pathUtil.getFromHeadPath=function(path){var firstdot=fluid.pathUtil.getPathSegmentImpl(null,path,0);return firstdot===path.length?"":path.substring(firstdot+1)};fluid.pathUtil.matchPath=function(spec,path,exact){var togo=[];while(true){if(path===""^spec===""&&exact){return null}if(!spec||!path){break}var spechead=fluid.pathUtil.getHeadPath(spec);var pathhead=fluid.pathUtil.getHeadPath(path);if(spechead!=="*"&&spechead!==pathhead){return null}togo.push(pathhead);spec=fluid.pathUtil.getFromHeadPath(spec);path=fluid.pathUtil.getFromHeadPath(path)}return togo};fluid.model.transform.expandWildcards=function(transformer,source){fluid.each(source,(function(value,key){var q=transformer.queuedTransforms;transformer.pathOp.push(fluid.pathUtil.escapeSegment(key.toString()));for(var i=0;i0){transformer.typeStack=[];transformer.pathOp=fluid.model.makePathStack(transformer,"path");fluid.model.transform.expandWildcards(transformer,source)}fluid.model.fireSortedChanges(transformer.queuedChanges,transformer.finalApplier);return transformer.target.model};$.extend(fluid.model.transformWithRules,fluid.model.transform);fluid.model.transform=fluid.model.transformWithRules;fluid.transformOne=function(rules){return{transformOptions:{transformer:"fluid.model.transformWithRules",config:rules}}};fluid.transformMany=function(rules){return{transformOptions:{transformer:"fluid.model.transform.sequence",config:rules}}};"use strict";fluid.registerNamespace("fluid.model.transform");fluid.registerNamespace("fluid.transforms");fluid.defaults("fluid.transforms.value",{gradeNames:"fluid.standardTransformFunction",invertConfiguration:"fluid.identity"});fluid.transforms.value=fluid.identity;fluid.transforms.identity=fluid.transforms.value;fluid.defaults("fluid.transforms.identity",{gradeNames:"fluid.transforms.value"});fluid.transforms.invertToIdentity=function(transformSpec){transformSpec.type="fluid.transforms.identity";return transformSpec};fluid.defaults("fluid.transforms.literalValue",{gradeNames:"fluid.standardOutputTransformFunction"});fluid.transforms.literalValue=function(transformSpec){return transformSpec.input};fluid.defaults("fluid.transforms.stringToNumber",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.stringToNumber.invert"});fluid.transforms.stringToNumber=function(value){var newValue=Number(value);return isNaN(newValue)?undefined:newValue};fluid.transforms.stringToNumber.invert=function(transformSpec){transformSpec.type="fluid.transforms.numberToString";return transformSpec};fluid.defaults("fluid.transforms.numberToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.numberToString.invert"});fluid.transforms.numberToString=function(value,transformSpec){if(typeof value==="number"){if(typeof transformSpec.scale==="number"&&!isNaN(transformSpec.scale)){var rounded=fluid.roundToDecimal(value,transformSpec.scale,transformSpec.method);return rounded.toString()}else{return value.toString()}}};fluid.transforms.numberToString.invert=function(transformSpec){transformSpec.type="fluid.transforms.stringToNumber";return transformSpec};fluid.defaults("fluid.transforms.count",{gradeNames:"fluid.standardTransformFunction"});fluid.transforms.count=function(value){return fluid.makeArray(value).length};fluid.defaults("fluid.transforms.round",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.invertToIdentity"});fluid.transforms.round=function(value,transformSpec){return fluid.roundToDecimal(value,transformSpec.scale,transformSpec.method)};fluid.defaults("fluid.transforms.delete",{gradeNames:"fluid.transformFunction"});fluid.transforms["delete"]=function(transformSpec,transformer){var outputPath=fluid.model.composePaths(transformer.outputPrefix,transformSpec.outputPath);transformer.applier.change(outputPath,null,"DELETE")};fluid.defaults("fluid.transforms.firstValue",{gradeNames:"fluid.standardOutputTransformFunction"});fluid.transforms.firstValue=function(transformSpec,transformer){if(!transformSpec.values||!transformSpec.values.length){fluid.fail('firstValue transformer requires an array of values at path named "values", supplied',transformSpec)}for(var i=0;i=":function(a,b){return a>=b},">":function(a,b){return a>b},"+":function(a,b){return a+b},"-":function(a,b){return a-b},"*":function(a,b){return a*b},"/":function(a,b){return a/b},"%":function(a,b){return a%b},"&&":function(a,b){return a&&b},"||":function(a,b){return a||b}};fluid.transforms.binaryOp=function(inputs,transformSpec,transformer){var left=inputs.left();var right=inputs.right();var operator=fluid.model.transform.getValue(undefined,transformSpec.operator,transformer);var fun=fluid.transforms.binaryLookup[operator];return fun===undefined||left===undefined||right===undefined?undefined:fun(left,right)};fluid.defaults("fluid.transforms.condition",{gradeNames:["fluid.multiInputTransformFunction","fluid.standardOutputTransformFunction"],inputVariables:{true:null,false:null,condition:null}});fluid.transforms.condition=function(inputs){var condition=inputs.condition();if(condition===null){return undefined}return inputs[condition?"true":"false"]()};fluid.defaults("fluid.transforms.valueMapper",{gradeNames:["fluid.lens"],invertConfiguration:"fluid.transforms.valueMapper.invert",collectInputPaths:"fluid.transforms.valueMapper.collect"});fluid.model.transform.compareMatches=function(speca,specb){var matchDiff=specb.matchValue-speca.matchValue;return matchDiff===0?speca.index-specb.index:matchDiff};fluid.transforms.valueMapper=function(transformSpec,transformer){if(!transformSpec.match){fluid.fail('valueMapper requires an array or hash of matches at path named "match", supplied ',transformSpec)}var value=fluid.model.transform.getValue(transformSpec.defaultInputPath,transformSpec.defaultInput,transformer);var matchedEntry=fluid.isArrayable(transformSpec.match)?fluid.transforms.valueMapper.longFormMatch(value,transformSpec,transformer):transformSpec.match[value];if(matchedEntry===undefined){matchedEntry=transformSpec.noMatch}if(matchedEntry===undefined){return}var outputPath=matchedEntry.outputPath===undefined?transformSpec.defaultOutputPath:matchedEntry.outputPath;transformer.outputPrefixOp.push(outputPath);var outputValue;if(fluid.isPrimitive(matchedEntry)){outputValue=matchedEntry}else if(matchedEntry.outputUndefinedValue){outputValue=undefined}else{outputValue=fluid.model.transform.resolveParam(matchedEntry,transformer,"outputValue",undefined);outputValue=outputValue===undefined?transformSpec.defaultOutputValue:outputValue}if(typeof outputPath==="string"&&outputValue!==undefined){fluid.model.transform.setValue(undefined,outputValue,transformer,transformSpec.merge);outputValue=undefined}transformer.outputPrefixOp.pop();return outputValue};fluid.transforms.valueMapper.longFormMatch=function(valueFromDefaultPath,transformSpec,transformer){var o=transformSpec.match;if(o.length===0){fluid.fail("valueMapper supplied empty list of matches: ",transformSpec)}var matchPower=[];for(var i=0;imax){value=max}}return value};fluid.defaults("fluid.transforms.indexOf",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.indexOf.invert"});fluid.transforms.indexOf=function(value,transformSpec){if(typeof transformSpec.notFound==="number"&&transformSpec.notFound>=0){fluid.fail("A positive number is not allowed as 'notFound' value for indexOf")}var offset=fluid.transforms.parseIndexationOffset(transformSpec.offset,"indexOf");var array=fluid.makeArray(transformSpec.array);var originalIndex=array.indexOf(value);return originalIndex===-1&&transformSpec.notFound?transformSpec.notFound:originalIndex+offset};fluid.transforms.indexOf.invert=function(transformSpec,transformer){var togo=fluid.transforms.invertArrayIndexation(transformSpec,transformer);togo.type="fluid.transforms.dereference";return togo};fluid.defaults("fluid.transforms.dereference",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.dereference.invert"});fluid.transforms.dereference=function(value,transformSpec){if(typeof value!=="number"){return undefined}var offset=fluid.transforms.parseIndexationOffset(transformSpec.offset,"dereference");var array=fluid.makeArray(transformSpec.array);var index=value+offset;return array[index]};fluid.transforms.dereference.invert=function(transformSpec,transformer){var togo=fluid.transforms.invertArrayIndexation(transformSpec,transformer);togo.type="fluid.transforms.indexOf";return togo};fluid.transforms.parseIndexationOffset=function(offset,transformName){var parsedOffset=0;if(offset!==undefined){parsedOffset=fluid.parseInteger(offset);if(isNaN(parsedOffset)){fluid.fail(transformName+' requires the value of "offset" to be an integer or a string that can be converted to an integer. '+offset+" is invalid.")}}return parsedOffset};fluid.transforms.invertArrayIndexation=function(transformSpec){if(!isNaN(Number(transformSpec.offset))){transformSpec.offset=Number(transformSpec.offset)*-1}return transformSpec};fluid.defaults("fluid.transforms.stringTemplate",{gradeNames:"fluid.standardOutputTransformFunction"});fluid.transforms.stringTemplate=function(transformSpec){return fluid.stringTemplate(transformSpec.template,transformSpec.terms)};fluid.defaults("fluid.transforms.free",{gradeNames:"fluid.transformFunction"});fluid.transforms.free=function(transformSpec){var args=fluid.makeArray(transformSpec.args);if(!transformSpec.func){fluid.fail("Error in transform specification ",transformSpec,' required member "func" was not set')}return fluid.event.invokeListener(transformSpec.func,args)};fluid.defaults("fluid.transforms.quantize",{gradeNames:"fluid.standardTransformFunction",collectInputPaths:"fluid.transforms.quantize.collect"});fluid.transforms.quantize=function(value,transformSpec,transformer){if(!transformSpec.ranges||!transformSpec.ranges.length){fluid.fail("fluid.transforms.quantize should have a key called ranges containing an array defining ranges to quantize")}for(var i=0;i=Number.NEGATIVE_INFINITY){return fluid.isPrimitive(rangeSpec.output)?rangeSpec.output:transformer.expand(rangeSpec.output)}}};fluid.transforms.quantize.collect=function(transformSpec,transformer){transformSpec.ranges.forEach((function(rangeSpec){if(!fluid.isPrimitive(rangeSpec.output)){transformer.expand(rangeSpec.output)}}))};fluid.defaults("fluid.transforms.inRange",{gradeNames:"fluid.standardTransformFunction"});fluid.transforms.inRange=function(value,transformSpec){return(transformSpec.min===undefined||transformSpec.min<=value)&&(transformSpec.max===undefined||transformSpec.max>=value)?true:false};fluid.defaults("fluid.transforms.toggle",{gradeNames:["fluid.standardTransformFunction"],invertConfiguration:"fluid.transforms.toggle.invert",relayOptions:{forward:{excludeSource:"init"},backward:{includeSource:"init"}}});fluid.transforms.toggle=function(source,transformSpec,transformer){var oldSource=transformer.oldSource,oldTarget=transformer.oldTarget;var phase=(oldSource||0)-fluid.transforms.inverseToggle.base(oldTarget);return fluid.transforms.toggle.base(source+phase)};fluid.transforms.toggle.base=function(source){return(source||0)%2===1};fluid.transforms.toggle.invert=function(transformSpec){transformSpec.type="fluid.transforms.inverseToggle";return transformSpec};fluid.defaults("fluid.transforms.inverseToggle",{gradeNames:["fluid.standardTransformFunction"]});fluid.transforms.inverseToggle=function(source,transformSpec,transformer){return transformer.originalTarget||undefined};fluid.transforms.inverseToggle.base=function(source){return source?1:0};fluid.transforms.parseClasses=function(classes){var classList=classes.match(fluid.transforms.parseClasses.rnothtmlwhite)||[];return fluid.arrayToHash(classList)};fluid.transforms.parseClasses.rnothtmlwhite=/[^\x20\t\r\n\f]+/g;fluid.transforms.stringToBoolean=function(value){if(value){return!(value==="0"||value==="false")}else{return false}};fluid.transforms.stringToBoolean.invert=function(transformSpec){transformSpec.type="fluid.transforms.booleanToString";return transformSpec};fluid.defaults("fluid.transforms.stringToBoolean",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.stringToBoolean.invert"});fluid.transforms.booleanToString=function(value){return value?"true":"false"};fluid.transforms.booleanToString.invert=function(transformSpec){transformSpec.type="fluid.transforms.stringToBoolean";return transformSpec};fluid.defaults("fluid.transforms.booleanToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.booleanToString.invert"});fluid.transforms.JSONstringToObject=function(value){try{return JSON.parse(value)}catch(e){return undefined}};fluid.transforms.JSONstringToObject.invert=function(transformSpec){transformSpec.type="fluid.transforms.objectToJSONString";return transformSpec};fluid.defaults("fluid.transforms.JSONstringToObject",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.JSONstringToObject.invert"});fluid.transforms.objectToJSONString=function(value,transformSpec){var space=transformSpec.space||0;return JSON.stringify(value,null,space)};fluid.transforms.objectToJSONString.invert=function(transformSpec){transformSpec.type="fluid.transforms.JSONstringToObject";return transformSpec};fluid.defaults("fluid.transforms.objectToJSONString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.objectToJSONString.invert"});fluid.transforms.stringToDate=function(value){var date=new Date(value);return isNaN(date.getTime())?undefined:date};fluid.transforms.stringToDate.invert=function(transformSpec){transformSpec.type="fluid.transforms.dateToString";return transformSpec};fluid.defaults("fluid.transforms.stringToDate",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.stringToDate.invert"});fluid.transforms.dateToString=function(value){if(value instanceof Date){var isoString=value.toISOString();var dateString=isoString.substring(0,isoString.indexOf("T"));return dateString}else{return undefined}};fluid.transforms.dateToString.invert=function(transformSpec){transformSpec.type="fluid.transforms.stringToDate";return transformSpec};fluid.defaults("fluid.transforms.dateToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.dateToString.invert"});fluid.transforms.dateTimeToString=function(value){return value instanceof Date?value.toISOString():undefined};fluid.defaults("fluid.transforms.dateTimeToString",{gradeNames:["fluid.standardTransformFunction","fluid.lens"],invertConfiguration:"fluid.transforms.dateToString.invert"});"use strict";fluid.registerNamespace("fluid.contextAware");fluid.defaults("fluid.contextAware.marker",{gradeNames:["fluid.component"]});fluid.contextAware.makeCheckMarkers=function(checks,path,instantiator){fluid.each(checks,(function(value,markerTypeName){fluid.constructSingle(path,{type:markerTypeName,gradeNames:"fluid.contextAware.marker",value:value},instantiator)}))};fluid.contextAware.performChecks=function(checkHash){return fluid.transform(checkHash,(function(checkRecord){if(typeof checkRecord==="function"){checkRecord={func:checkRecord}}else if(typeof checkRecord==="string"){checkRecord={funcName:checkRecord}}if(fluid.isPrimitive(checkRecord)){return checkRecord}else if("value"in checkRecord){return checkRecord.value}else if("func"in checkRecord){return checkRecord.func()}else if("funcName"in checkRecord){return fluid.invokeGlobalFunction(checkRecord.funcName)}else{fluid.fail("Error in contextAwareness check record ",checkRecord," - must contain an entry with name value, func, or funcName")}}))};fluid.contextAware.makeChecks=function(checkHash,path,instantiator){var checkOptions=fluid.contextAware.performChecks(checkHash);fluid.contextAware.makeCheckMarkers(checkOptions,path,instantiator)};fluid.contextAware.forgetChecks=function(markerNames,path,instantiator){instantiator=instantiator||fluid.globalInstantiator;path=path||[];var markerArray=fluid.makeArray(markerNames);fluid.each(markerArray,(function(markerName){var memberName=fluid.typeNameToMemberName(markerName);var segs=fluid.model.parseToSegments(path,instantiator.parseEL,true);segs.push(memberName);fluid.destroy(segs,instantiator)}))};fluid.defaults("fluid.contextAware",{mergePolicy:{contextAwareness:"noexpand"},contextAwareness:{}});fluid.contextAware.getCheckValue=function(that,reference){var targetRef=fluid.parseContextReference(reference);var targetComponent=fluid.resolveContext(targetRef.context,that);var path=targetRef.path||(fluid.isComponent(targetComponent)&&fluid.componentHasGrade(targetComponent,"fluid.contextAware.marker")?["options","value"]:[]);var value=fluid.getForComponent(targetComponent,path);return value};fluid.contextAware.checkOne=function(that,contextAwareRecord){if(contextAwareRecord.checks&&contextAwareRecord.checks.contextValue){fluid.fail("Nesting error in contextAwareness record ",contextAwareRecord,' - the "checks" entry must contain a hash and not a contextValue/gradeNames record at top level')}var checkList=fluid.parsePriorityRecords(contextAwareRecord.checks,"contextAwareness checkRecord");return fluid.find(checkList,(function(check){if(!check.contextValue){fluid.fail("Cannot perform check for contextAwareness record ",check,' without a valid field named "contextValue"')}var value=fluid.contextAware.getCheckValue(that,check.contextValue);if(check.equals===undefined?value:value===check.equals){return check.gradeNames}}),contextAwareRecord.defaultGradeNames)};fluid.contextAware.check=function(that,contextAwarenessOptions){var gradeNames=[];var contextAwareList=fluid.parsePriorityRecords(contextAwarenessOptions,"contextAwareness adaptationRecord");fluid.each(contextAwareList,(function(record){var matched=fluid.contextAware.checkOne(that,record);gradeNames=gradeNames.concat(fluid.makeArray(matched))}));return gradeNames};fluid.contextAware.makeAdaptation=function(options){fluid.expect("fluid.contextAware.makeAdaptation",options,["distributionName","targetName","adaptationName","checkName","record"]);fluid.defaults(options.distributionName,{gradeNames:["fluid.component"],distributeOptions:{target:"{/ "+options.targetName+"}.options.contextAwareness."+options.adaptationName+".checks."+options.checkName,record:options.record}});fluid.constructSingle([],options.distributionName)};fluid.contextAware.isBrowser=function(){return typeof window!=="undefined"&&!!window.document};fluid.contextAware.isNode=function(){return typeof process!=="undefined"&&process.versions&&process.versions.node};fluid.contextAware.makeChecks({"fluid.browser":{funcName:"fluid.contextAware.isBrowser"},"fluid.node":{funcName:"fluid.contextAware.isNode"}});fluid.registerNamespace("fluid.contextAware.browser");fluid.contextAware.browser.getPlatformName=function(){return typeof navigator!=="undefined"&&navigator.platform?navigator.platform:undefined};fluid.contextAware.browser.getUserAgent=function(){return typeof navigator!=="undefined"&&navigator.userAgent?navigator.userAgent:undefined};fluid.contextAware.makeChecks({"fluid.browser.platformName":{funcName:"fluid.contextAware.browser.getPlatformName"},"fluid.browser.userAgent":{funcName:"fluid.contextAware.browser.getUserAgent"}});"use strict";if(fluid.contextAware.isBrowser()&&$.fn){$("head").append("")}"use strict";fluid.apply=function(options){return options.func.apply(null,options.args)};fluid.defaults("fluid.baseViewComponent",{gradeNames:"fluid.component",argumentMap:{container:0,options:1},events:{onDomBind:"promise"},listeners:{"onCreate.onDomBind":"{that}.events.onDomBind"},selectors:{},members:{dom:"@expand:fluid.createDomBinder({that}.container, {that}.options.selectors)",locate:"{that}.dom.locate"},mergePolicy:{"members.dom":"replace","members.container":"replace"}});fluid.defaults("fluid.viewComponent",{gradeNames:["fluid.modelComponent","fluid.baseViewComponent"],members:{container:"@expand:fluid.containerForViewComponent({that}, {that}.options.container)"}});fluid.dumpSelector=function(selectable){return typeof selectable==="string"?selectable:selectable.selector?selectable.selector:""};fluid.checkTryCatchParameter=function(){var location=window.location||{search:"",protocol:"file:"};var GETparams=location.search.slice(1).split("&");return fluid.find(GETparams,(function(param){if(param.indexOf("notrycatch")===0){return true}}))===true};fluid.notrycatch=fluid.checkTryCatchParameter();fluid.wrap=function(obj,userJQuery){userJQuery=userJQuery||$;return!obj||obj.jquery?obj:userJQuery(obj)};fluid.unwrap=function(obj){return obj&&obj.jquery?obj[0]:obj};fluid.container=function(containerSpec,fallible,userJQuery){if(!containerSpec){fluid.fail("fluid.container argument is empty")}var selector=containerSpec.selector||containerSpec;if(userJQuery){containerSpec=fluid.unwrap(containerSpec)}var container=fluid.wrap(containerSpec,userJQuery);if(fallible&&(!container||container.length===0)){return null}if(!container||!container.jquery||container.length!==1){if(typeof containerSpec!=="string"){containerSpec=container.selector}var count=container.length!==undefined?container.length:0;var extraMessage=container.selectorName?" with selector name "+container.selectorName+" in context "+fluid.dumpEl(containerSpec.context):"";fluid.fail((count>1?"More than one ("+count+") container elements were":"No container element was")+" found for selector "+containerSpec+extraMessage)}if(!fluid.isDOMNode(container[0])){fluid.fail("fluid.container was supplied a non-jQueryable element")}container.selector=selector;container.context=container.context||containerSpec.ownerDocument||document;return container};fluid.createDomBinder=function(container,selectors){var userJQuery=container.constructor;var that={container:container,id:fluid.allocateGuid(),doQuery:function(selector){return userJQuery(selector,that.container)},cache:{}};that.locate=function(selectorName){var selector=selectorName==="container"?"":selectors[selectorName];if(selector===undefined){fluid.fail("DOM binder request for selector "+selectorName+" which is not registered")}var togo;if(selector===""){togo=that.container}else{togo=that.doQuery(selector,selectorName)}togo.selector=selector;togo.context=that.container;togo.selectorName=selectorName;that.cache[selectorName]=togo;return togo};that.fastLocate=function(selectorName){return that.cache[selectorName]||that.locate(selectorName)};that.resetContainer=function(container){that.container=container;that.clear()};that.clear=function(){that.cache={}};that.resolvePathSegment=that.locate;return that};fluid.createLocalContainerDomBinder=function(container,selectors){var that={container:container,id:fluid.allocateGuid(),cache:{}};var userJQuery=container.constructor;function cacheKey(name,thisContainer){return fluid.allocateSimpleId(thisContainer)+"-"+name}function record(name,thisContainer,result){that.cache[cacheKey(name,thisContainer)]=result}that.locate=function(name,localContainer){var selector,thisContainer,togo;selector=selectors[name];if(selector===undefined){if(name==="container"){selector=""}else{fluid.fail("DOM binder request for selector "+name+" which is not registered")}}thisContainer=localContainer||that.container;if(!thisContainer){fluid.fail("DOM binder invoked for selector "+name+" without container")}if(selector===""){togo=userJQuery(thisContainer)}else{if(typeof selector==="function"){togo=userJQuery(selector.call(null,fluid.unwrap(thisContainer)))}else{togo=userJQuery(selector,thisContainer)}}if(!togo.selector){togo.selector=selector;togo.context=thisContainer}togo.selectorName=name;record(name,thisContainer,togo);return togo};that.fastLocate=function(name,localContainer){var thisContainer=localContainer?localContainer:that.container;var key=cacheKey(name,thisContainer);var togo=that.cache[key];return togo?togo:that.locate(name,localContainer)};that.resetContainer=function(container){that.container=container;that.clear()};that.clear=function(){that.cache={}};that.refresh=function(names,localContainer){var thisContainer=localContainer?localContainer:that.container;if(typeof names==="string"){names=[names]}if(thisContainer.length===undefined){thisContainer=[thisContainer]}for(var i=0;i1){node=node[0];isMultiple=true}if("input"!==node.nodeName.toLowerCase()||!/radio|checkbox/.test(node.type)){return newValue===undefined?$(node).val():$(node).val(newValue)}var name=node.name;var elements;if(isMultiple||name===""){elements=nodeIn}else{elements=node.ownerDocument.getElementsByName(name);var scope=fluid.findForm(node);elements=$.grep(elements,(function(element){if(element.name!==name){return false}return!scope||scope.contains(element)}));isMultiple=elements.length>1}if(newValue!==undefined){if(typeof newValue==="boolean"){newValue=newValue?"true":"false"}$.each(elements,(function(){this.checked=newValue instanceof Array?newValue.indexOf(this.value)!==-1:newValue===this.value}))}else{var checked=$.map(elements,(function(element){return element.checked?element.value:null}));return node.type==="radio"?checked[0]:isMultiple?checked:!!checked[0]}};fluid.defaults("fluid.ariaLabeller",{gradeNames:"fluid.viewComponent"});"use strict";fluid.changeElementValue=function(node,value){node=$(node);fluid.value(node,value);node.change()};fluid.findAncestor=function(element,test){element=fluid.unwrap(element);while(element){if(test(element)){return element}element=element.parentNode}};fluid.findForm=function(node){return fluid.findAncestor(node,(function(element){return element.nodeName.toLowerCase()==="form"}))};fluid.each(["text","html"],(function(method){fluid[method]=function(node,newValue){node=$(node);return newValue===undefined?node[method]():node[method](newValue)}}));fluid.BINDING_ROOT_KEY="fluid-binding-root";fluid.findData=function(elem,name){while(elem){var data=$.data(elem,name);if(data){return data}elem=elem.parentNode}};fluid.bindFossils=function(node,data,fossils){$.data(node,fluid.BINDING_ROOT_KEY,{data:data,fossils:fossils})};fluid.boundPathForNode=function(node,fossils){node=fluid.unwrap(node);var key=node.name||node.id;var record=fossils[key];return record?record.EL:null};fluid.applyBoundChange=function(node,newValue,applier){node=fluid.unwrap(node);if(newValue===undefined){newValue=fluid.value(node)}if(node.nodeType===undefined&&node.length>0){node=node[0]}var root=fluid.findData(node,fluid.BINDING_ROOT_KEY);if(!root){fluid.fail("Bound data could not be discovered in any node above "+fluid.dumpEl(node))}var name=node.name;var fossil=root.fossils[name];if(!fossil){fluid.fail("No fossil discovered for name "+name+" in fossil record above "+fluid.dumpEl(node))}var EL=root.fossils[name].EL;if(applier){applier.fireChangeRequest({path:EL,value:newValue,source:"DOM:"+node.id})}else{fluid.set(root.data,EL,newValue)}};fluid.jById=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var element=fluid.byId(id,dokkument);var togo=element?$(element):[];togo.selector="#"+id;togo.context=dokkument;return togo};fluid.byId=function(id,dokkument){dokkument=dokkument&&dokkument.nodeType===9?dokkument:document;var el=dokkument.getElementById(id);if(el){if(el.id!==id){fluid.fail("Problem in document structure - picked up element "+fluid.dumpEl(el)+" for id "+id+" without this id - most likely the element has a name which conflicts with this id")}return el}else{return null}};fluid.getDocument=function(element){var node=fluid.unwrap(element);return node.nodeType===9?node:node.ownerDocument};fluid.defaults("fluid.ariaLabeller",{gradeNames:["fluid.viewComponent"],labelAttribute:"aria-label",liveRegionMarkup:'
',liveRegionId:"fluid-ariaLabeller-liveRegion",invokers:{generateLiveElement:{funcName:"fluid.ariaLabeller.generateLiveElement",args:"{that}"},update:{funcName:"fluid.ariaLabeller.update",args:["{that}","{arguments}.0"]}},listeners:{onCreate:{func:"{that}.update",args:[null]}}});fluid.ariaLabeller.update=function(that,newOptions){newOptions=newOptions||that.options;that.container.attr(that.options.labelAttribute,newOptions.text);if(newOptions.dynamicLabel){var live=fluid.jById(that.options.liveRegionId);if(live.length===0){live=that.generateLiveElement()}live.text(newOptions.text)}};fluid.ariaLabeller.generateLiveElement=function(that){var liveEl=$(that.options.liveRegionMarkup);liveEl.prop("id",that.options.liveRegionId);$("body").append(liveEl);return liveEl};var LABEL_KEY="aria-labelling";fluid.getAriaLabeller=function(element){element=$(element);var that=fluid.getScopedData(element,LABEL_KEY);return that};fluid.updateAriaLabel=function(element,text,options){options=$.extend({},options||{},{text:text});var that=fluid.getAriaLabeller(element);if(!that){that=fluid.ariaLabeller(element,options);fluid.setScopedData(element,LABEL_KEY,that)}else{that.update(options)}return that};fluid.dismissList={};$(document).click((function(event){var target=fluid.resolveEventTarget(event);while(target){if(fluid.dismissList[target.id]){return}target=target.parentNode}fluid.each(fluid.dismissList,(function(dismissFunc,key){dismissFunc(event);delete fluid.dismissList[key]}))}));fluid.globalDismissal=function(nodes,dismissFunc){fluid.each(nodes,(function(node){var id=fluid.unwrap(node).ownerDocument===document?fluid.allocateSimpleId(node):fluid.allocateGuid();if(dismissFunc){fluid.dismissList[id]=dismissFunc}else{delete fluid.dismissList[id]}}))};fluid.deadMansBlur=function(control,options){var that={options:$.extend(true,{},fluid.defaults("fluid.deadMansBlur"),options)};that.blurPending=false;that.lastCancel=0;that.canceller=function(event){fluid.log("Cancellation through "+event.type+" on "+fluid.dumpEl(event.target));that.lastCancel=Date.now();that.blurPending=false};that.noteProceeded=function(){fluid.globalDismissal(that.options.exclusions)};that.reArm=function(){fluid.globalDismissal(that.options.exclusions,that.proceed)};that.addExclusion=function(exclusions){fluid.globalDismissal(exclusions,that.proceed)};that.proceed=function(event){fluid.log("Direct proceed through "+event.type+" on "+fluid.dumpEl(event.target));that.blurPending=false;that.options.handler(control)};fluid.each(that.options.exclusions,(function(exclusion){exclusion=$(exclusion);fluid.each(exclusion,(function(excludeEl){$(excludeEl).on("focusin",that.canceller).on("fluid-focus",that.canceller).click(that.canceller).mousedown(that.canceller)}))}));if(!that.options.cancelByDefault){$(control).on("focusout",(function(event){fluid.log("Starting blur timer for element "+fluid.dumpEl(event.target));var now=Date.now();fluid.log("back delay: "+(now-that.lastCancel));if(now-that.lastCancel>that.options.backDelay){that.blurPending=true}setTimeout((function(){if(that.blurPending){that.options.handler(control)}}),that.options.delay)}))}else{that.reArm()}return that};fluid.defaults("fluid.deadMansBlur",{gradeNames:"fluid.function",delay:150,backDelay:100});"use strict";fluid.defaults("fluid.newViewComponent",{gradeNames:"fluid.viewComponent",listeners:{"onCreate.onDomBind":null}});fluid.defaults("fluid.containerRenderingView",{gradeNames:["fluid.newViewComponent"],members:{container:"@expand:{that}.renderContainer()"},parentContainer:"{that}.options.container",injectionType:"append",invokers:{renderMarkup:"fluid.identity({that}.options.markup.container)",renderContainer:"fluid.containerRenderingView.renderContainer({that}, {that}.renderMarkup, {that}.addToParent)",addToParent:{funcName:"fluid.containerRenderingView.addToParent",args:["{that}.options.parentContainer","{arguments}.0","{that}.options.injectionType"]}},workflows:{global:{evaluateContainers:{funcName:"fluid.renderer.evaluateContainers",priority:"last",waitIO:true}}},listeners:{"onDestroy.clearInjectedMarkup":{this:"{that}.container",method:"remove",args:[]}}});fluid.registerNamespace("fluid.renderer");fluid.defaults("fluid.templateResourceFetcher",{gradeNames:"fluid.resourceLoader",rendererTemplateResources:{template:true},skipTemplateFetch:false,workflows:{global:{fetchTemplates:{funcName:"fluid.renderer.fetchTemplates",priority:"after:resolveResourceModel"}}}});fluid.renderer.fetchTemplates=function(shadows){shadows.forEach((function(shadow){var that=shadow.that;if(fluid.componentHasGrade(that,"fluid.templateResourceFetcher")){var skipTemplateFetch=fluid.getForComponent(that,["options","skipTemplateFetch"]);if(!skipTemplateFetch){var rendererTemplateResources=fluid.getForComponent(that,["options","rendererTemplateResources"]);fluid.each(rendererTemplateResources,(function(value,key){if(value){fluid.getForComponent(that,["resources",key])}}))}}}))};fluid.containerRenderingView.addToParent=function(parentContainer,elm,method){if(!parentContainer){fluid.fail('fluid.containerRenderingView needs to have "parentContainer" or "container" option supplied')}method=method||"append";$(parentContainer)[method](elm)};fluid.renderer.evaluateContainers=function(shadows){shadows.forEach((function(shadow){fluid.getForComponent(shadow.that,"container")}));shadows.forEach((function(shadow){shadow.that.events.onDomBind.fire(shadow.that)}))};fluid.containerRenderingView.renderContainer=function(that,renderMarkup,addToParent){fluid.log("Rendering container for "+that.id);var containerMarkup=renderMarkup();var container=$(containerMarkup);addToParent(container);return container};fluid.defaults("fluid.templateRenderingView",{gradeNames:["fluid.containerRenderingView","fluid.templateResourceFetcher"],invokers:{renderMarkup:"fluid.identity({that}.resources.template.parsed)"},distributeOptions:{mapTemplateUrl:{source:"{that}.options.templateUrl",target:"{that}.options.resources.template.url"}}});"use strict";fluid.defaults("fluid.dataSource.encoding.JSON",{gradeNames:"fluid.component",invokers:{parse:"fluid.dataSource.parseJSON",render:"fluid.dataSource.stringifyJSON"},contentType:"application/json"});fluid.defaults("fluid.dataSource.encoding.none",{gradeNames:"fluid.component",invokers:{parse:"fluid.identity",render:"fluid.identity"},contentType:"text/plain"});fluid.dataSource.parseJSON=function(string){var togo=fluid.promise();if(!string){togo.resolve(undefined)}else{try{togo.resolve(JSON.parse(string))}catch(err){togo.reject(err)}}return togo};fluid.dataSource.stringifyJSON=function(obj){return obj===undefined?"":JSON.stringify(obj,null,4)};fluid.defaults("fluid.dataSource",{gradeNames:["fluid.component","fluid.contextAware"],contextAwareness:{writable:{checks:{writableValue:{contextValue:"{fluid.dataSource}.options.writable",gradeNames:"{fluid.dataSource}.options.writableGrade"}}}},writable:false,events:{onRead:null,onError:null},components:{encoding:{type:"fluid.dataSource.encoding.JSON"}},listeners:{"onRead.impl":{func:"fluid.notImplemented",priority:"first"},"onRead.encoding":{func:"{encoding}.parse",priority:"after:impl"}},invokers:{get:{funcName:"fluid.dataSource.get",args:["{that}","{arguments}.0","{arguments}.1"]}}});fluid.defaults("fluid.dataSource.writable",{gradeNames:["fluid.component"],events:{onWrite:null,onWriteResponse:null},listeners:{"onWrite.encoding":{func:"{encoding}.render"},"onWrite.impl":{func:"fluid.notImplemented",priority:"after:encoding"},"onWriteResponse.encoding":{func:"{encoding}.parse"}},invokers:{set:{funcName:"fluid.dataSource.set",args:["{that}","{arguments}.0","{arguments}.1","{arguments}.2"]}}});fluid.dataSource.registerStandardPromiseHandlers=function(that,promise,requestOptions){promise.then(requestOptions.callback,requestOptions.onError?requestOptions.onError:that.events.onError.fire)};fluid.dataSource.defaultiseOptions=function(componentOptions,directOptions,directModel,isSet){var options=typeof directOptions==="function"?{callback:directOptions}:fluid.copy(directOptions)||{};options.directModel=directModel;options.operation=isSet?"set":"get";options.notFoundIsEmpty=options.notFoundIsEmpty||componentOptions.notFoundIsEmpty;return options};fluid.dataSource.get=function(that,directModel,directOptions){var requestOptions=fluid.dataSource.defaultiseOptions(that.options,directOptions,directModel);var promise=fluid.promise.fireTransformEvent(that.events.onRead,undefined,requestOptions);fluid.dataSource.registerStandardPromiseHandlers(that,promise,requestOptions);return promise};fluid.dataSource.set=function(that,directModel,model,directOptions){var requestOptions=fluid.dataSource.defaultiseOptions(that.options,directOptions,directModel,true);var transformPromise=fluid.promise.fireTransformEvent(that.events.onWrite,model,requestOptions);var togo=fluid.promise();transformPromise.then((function(setResponse){var options2=fluid.dataSource.defaultiseOptions(that.options,fluid.copy(requestOptions),directModel);var retransformed=fluid.promise.fireTransformEvent(that.events.onWriteResponse,setResponse,options2);fluid.promise.follow(retransformed,togo)}),(function(error){togo.reject(error)}));fluid.dataSource.registerStandardPromiseHandlers(that,togo,requestOptions);return togo};fluid.defaults("fluid.dataSource.URL",{gradeNames:["fluid.dataSource"],writableGrade:"fluid.dataSource.URL.writable",invokers:{resolveUrl:"fluid.dataSource.URL.resolveUrl",handleHttp:"fluid.dataSource.URL.handleHttp"},listeners:{"onRead.impl":{funcName:"fluid.dataSource.URL.handle",args:["{that}","{that}.options.permittedRequestOptions","{arguments}.0","{arguments}.1"]}},permittedRequestOptions:"fluid.dataSource.URL.requestOptions",components:{cookieJar:"{cookieJar}"},termMap:{}});fluid.defaults("fluid.dataSource.URL.writable",{gradeNames:["fluid.dataSource.writable"],listeners:{"onWrite.impl":{funcName:"fluid.dataSource.URL.handle",args:["{that}","{that}.options.permittedRequestOptions","{arguments}.0","{arguments}.1"]}}});fluid.dataSource.URL.resolveUrl=function(url,termMap,directModel,noencode){var map=fluid.transform(termMap,(function resolve(entry){entry=String(entry);var encode=!noencode;if(entry.indexOf("noencode:")===0){encode=false;entry=entry.substring("noencode:".length)}var value=entry.charAt(0)==="%"?fluid.get(directModel,entry.substring(1)):entry;if(encode){value=encodeURIComponent(value)}return value}));var replaced=fluid.stringTemplate(url,map);return replaced};fluid.dataSource.URL.urlFields=fluid.freezeRecursive(["protocol","username","password","hostname","port","pathname","search"]);fluid.dataSource.URL.condenseUrl=function(requestOptions){var togo=new fluid.resourceLoader.UrlClass("http://localhost/");fluid.dataSource.URL.urlFields.forEach((function(field){if(requestOptions[field]){togo[field]=requestOptions[field]}}));return togo};fluid.dataSource.URL.requestOptions=fluid.dataSource.URL.urlFields.concat(["url","method","headers","termMap"]);fluid.dataSource.URL.prepareRequestOptions=function(componentOptions,cookieJar,userOptions,permittedOptions,directModel,userStaticOptions){var staticOptions=fluid.filterKeys(componentOptions,permittedOptions);var requestOptions=fluid.extend(true,{headers:{}},userStaticOptions,staticOptions,userOptions);if(fluid.contextAware.isNode()){if(requestOptions.hostname==="localhost"){requestOptions.hostname="127.0.0.1"}}requestOptions.writeMethod=requestOptions.writeMethod||componentOptions.writeMethod||"PUT";requestOptions.pathname=fluid.dataSource.URL.resolveUrl(requestOptions.pathname,requestOptions.termMap,directModel);if(cookieJar&&cookieJar.cookie&&componentOptions.storeCookies){requestOptions.headers.Cookie=cookieJar.cookie}return requestOptions};fluid.dataSource.URL.parse=function(url,permittedOptions){var parsed=fluid.filterKeys(new fluid.resourceLoader.UrlClass(url,typeof window!=="undefined"&&window.location||undefined),fluid.dataSource.URL.urlFields);permittedOptions.forEach((function(oneOption){if(!parsed[oneOption]){delete parsed[oneOption]}}));return parsed};fluid.dataSource.URL.isErrorStatus=function(statusCode){return statusCode<200||statusCode>=300};fluid.dataSource.URL.handle=function(that,permittedRequestOptions,model,userOptions){var permittedOptions=fluid.getGlobalValue(permittedRequestOptions);permittedOptions.forEach((function(oneOption){fluid.getForComponent(that,["options",oneOption])}));var directModel=userOptions.directModel;var url=that.resolveUrl(that.options.url,that.options.termMap,directModel);var parsed=fluid.dataSource.URL.parse(url,permittedOptions);var finalRequestOptions=fluid.dataSource.URL.prepareRequestOptions(that.options,that.cookieJar,userOptions,permittedOptions,directModel,parsed);return that.handleHttp(that,finalRequestOptions,model)};fluid.extractHtmlError=function(received){var matches=/
(.*)<\/pre>/gm.exec(received);return matches?matches[1]:received};fluid.dataSource.URL.relayError=function(statusCode,received,whileMsg){var rejectPayload;try{rejectPayload=JSON.parse(received)}catch(e){var message=typeof received==="string"&&received.indexOf("1){fluid.fail("Resource spec ",fluid.resourceLoader.sanitizeResourceSpec(resourceSpec)," is ambiguous because it has fields for multiple resource loaders filled out: at most one of the fields ",fluid.getMembers(loaders,"pathKey")," can be used")}return loaders[0]};fluid.resourceLoader.loaders.resourceText=function(resourceSpec){return resourceSpec.resourceText};fluid.resourceLoader.loaders.resourceText.noPath=true;fluid.resourceLoader.loaders.promiseFunc=function(resourceSpec){var promiseFunc=fluid.event.resolveListener(resourceSpec.promiseFunc);return promiseFunc.apply(null,fluid.makeArray(resourceSpec.promiseArgs))};fluid.resourceLoader.loaders.promiseFunc.noPath=true;fluid.resourceLoader.loaders.dataSource=function(resourceSpec){fluid.getForComponent(resourceSpec.dataSource,"get");return resourceSpec.dataSource.get(resourceSpec.directModel,resourceSpec.options)};fluid.resourceLoader.loaders.dataSource.noPath=true;fluid.resourceLoader.loaders.dataSource.parsed=true;fluid.resourceLoader.loaders.noLoader=function(resourceSpec){return fluid.promise().resolve({noResource:true,message:["No resource was configured for resource spec ",fluid.resourceLoader.sanitizeResourceSpec(resourceSpec),"; since it had none of the fields fields ",Object.keys(fluid.resourceLoader.loaders)+" filled out"]})};fluid.resourceLoader.loaders.noLoader.noPath=true;fluid.resourceLoader.loaders.noLoader.parsed=true;fluid.registerNamespace("fluid.resourceLoader.parsers");fluid.resourceLoader.resolveResourceParser=function(resourceSpec){return!resourceSpec.loader.loader.parsed&&fluid.resourceLoader.parsers[resourceSpec.dataType]||fluid.identity};fluid.resourceLoader.parsers.json=function(resourceText){return fluid.dataSource.parseJSON(resourceText)};fluid.resourcesMergePolicy=function(target,source){target=target||{};fluid.each(source,(function(oneResource,name){if(!oneResource){target[name]=oneResource;return}else if(fluid.isPrimitive(oneResource)){oneResource={url:oneResource}}var oneR=target[name];if(!oneR){oneR=target[name]={}}for(var key in fluid.resourceLoader.loaders){if(key in oneResource){for(var key2 in fluid.resourceLoader.loaders){delete oneR[key2]}}}$.extend(oneR,oneResource)}));return target};fluid.defaults("fluid.resourceLoader",{gradeNames:["fluid.modelComponent"],listeners:{"onCreate.loadResources":"{that}.resourceFetcher.fetchAll","onDestroy.destroyResourceEvents":"fluid.resourceLoader.destroyResourceEvents({that}.resourceFetcher)","{that}.resourceFetcher.onInit":{namespace:"resourceLoaderCompletion",funcName:"fluid.resourceLoader.subscribeCompletion",args:["{arguments}.0","{that}"]},"{that}.applier.earlyModelResolved":{funcName:"fluid.resourceLoader.modelUpdated",args:["{that}.resourceFetcher","{arguments}.0.resourceLoader",true]}},modelListeners:{resourceLoader:{namespace:"resourceLoader",funcName:"fluid.resourceLoader.modelUpdated",excludeSource:"init",args:["{that}.resourceFetcher","{change}.value"]}},mergePolicy:{resources:fluid.resourcesMergePolicy},members:{resourceFetcher:{expander:{funcName:"fluid.resourceLoader.makeResourceFetcher",args:["{that}","{that}.options.resources","{that}.options.resourceOptions","{that}.transformResourceURL"]}}},resourceOptions:{terms:{}},resources:{},invokers:{transformResourceURL:{funcName:"fluid.stringTemplate",args:["{arguments}.0","{that}.options.resourceOptions.terms"]}},events:{onResourcesLoaded:null,onResourceError:null}});fluid.resourceLoader.makeResourceFetcher=function(that,resourceSpecs,userResourceOptions,transformResourceURL){var resourceOptions=$.extend({ownerComponentId:that.id,ownerComponentPath:fluid.pathForComponent(that),onInitListeners:[[function(completionPromise){fluid.resourceLoader.subscribeCompletion(completionPromise,that)},"resourceLoaderCompletion"]]},userResourceOptions);var fetcher=fluid.makeResourceFetcher(resourceSpecs,null,resourceOptions,transformResourceURL);fluid.each(fetcher.resourceSpecs,(function(resourceSpec,key){resourceSpec.transformEvent.addListener((function(parsed){that.resources[key]=resourceSpec;return parsed}),"noteComponentResource","after:parsed");resourceSpec.onError.addListener(that.events.onResourceError.fire)}));return fetcher};fluid.resourceLoader.subscribeCompletion=function(completionPromise,resourceLoader){var fire=function(){resourceLoader.events.onResourcesLoaded.fire(resourceLoader.resourceFetcher.resourceSpecs)};completionPromise.then((function(){if(resourceLoader.lifecycleStatus==="constructed"||resourceLoader.lifecycleStatus==="treeConstructed"){fire()}else if(resourceLoader.lifecycleStatus!=="destroyed"){resourceLoader.events.onCreate.addListener(fire,"fireOnResourcesLoaded")}}),(function(error){fluid.log("Failure loading resources for component at path "+fluid.dumpComponentPath(resourceLoader)+": ",error)}))};fluid.resourceLoader.destroyResourceEvents=function(resourceFetcher){fluid.each(resourceFetcher.resourceSpecs,(function(resourceSpec){resourceSpec.transformEvent.destroy();resourceSpec.onFetched.destroy()}))};"use strict";fluid.resourceLoader.UrlClass=URL;fluid.resourceLoader.configureXHR=function(xhr,options){fluid.resourceLoader.loaders.XHR.copyProps.forEach((function(prop){if(fluid.isValue(options[prop])){xhr[prop]=options[prop]}}));fluid.each(options.headers,(function(value,key){var values=fluid.makeArray(value);values.forEach((function(oneValue){xhr.setRequestHeader(key,oneValue)}))}))};fluid.resourceLoader.loaders.XHR=function(resourceSpec){var togo=fluid.promise();var xhr=resourceSpec.xhr=new XMLHttpRequest;togo.then(null,null,(function(){xhr.abort()}));var sendSuccess=function(){fluid.invokeLater((function(){var response=!xhr.responseType||xhr.responseType==="text"?xhr.responseText:xhr.response;togo.resolve(response)}))};var sendError=function(){fluid.invokeLater((function(){togo.reject({isError:true,status:xhr.status,textStatus:xhr.statusText})}))};xhr.addEventListener("load",(function(){var isError=fluid.dataSource.URL.isErrorStatus(xhr.status);isError?sendError():sendSuccess()}));xhr.addEventListener("error",sendError);var options=$.extend({async:true},resourceSpec.options);xhr.open(options.method||"GET",resourceSpec.url,options.async,options.username,options.password);fluid.resourceLoader.configureXHR(xhr,options);xhr.send();return togo};fluid.resourceLoader.loaders.XHR.copyProps=["contentType","responseType","timeout"];fluid.resourceLoader.loaders.url=fluid.resourceLoader.loaders.XHR;fluid.dataSource.URL.handleHttp=function(that,baseOptions,data){var promise=fluid.promise();var defaultOptions={method:"GET",async:true};if(baseOptions.operation==="set"){defaultOptions.headers={"Content-Type":that.encoding.options.contentType};defaultOptions.method=baseOptions.writeMethod}var requestOptions=fluid.extend(true,defaultOptions,baseOptions);var whileMsg=" while executing HTTP "+requestOptions.method+" on url "+requestOptions.url;promise.accumulateRejectionReason=function(originError){return fluid.upgradeError(originError,whileMsg)};var xhr=promise.xhr=new XMLHttpRequest;var sendError=function(){var relayed=fluid.dataSource.URL.relayError(xhr.status,xhr.statusText,whileMsg);if(requestOptions.notFoundIsEmpty&&relayed.statusCode===404){promise.resolve(undefined)}else{promise.reject(relayed)}};xhr.addEventListener("load",(function(){if(fluid.dataSource.URL.isErrorStatus(xhr.status)){sendError()}else{var response=!xhr.responseType||xhr.responseType==="text"?xhr.responseText:xhr.response;promise.resolve(response)}}));xhr.addEventListener("error",sendError);var url=fluid.dataSource.URL.condenseUrl(requestOptions);requestOptions.url=url;fluid.log("DataSource Issuing "+requestOptions.protocol.toUpperCase().slice(0,-1)+" request with options ",requestOptions);xhr.open(requestOptions.method||"GET",url.toString(),requestOptions.async);fluid.resourceLoader.configureXHR(xhr,requestOptions);xhr.send(data);return promise};(function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["accessibleAutocomplete"]=t():e["accessibleAutocomplete"]=t()})(window,(function(){return function(n){var r={};function o(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=n,o.c=r,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/",o(o.s=37)}([function(e,t,n){var m=n(1),v=n(6),y=n(7),g=n(16),_=n(18),b="prototype",w=function(e,t,n){var r,o,i,u,a=e&w.F,s=e&w.G,l=e&w.S,c=e&w.P,p=e&w.B,f=s?m:l?m[t]||(m[t]={}):(m[t]||{})[b],d=s?v:v[t]||(v[t]={}),h=d[b]||(d[b]={});for(r in s&&(n=t),n)i=((o=!a&&f&&f[r]!==undefined)?f:n)[r],u=p&&o?_(i,m):c&&"function"==typeof i?_(Function.call,i):i,f&&g(f,r,i,e&w.U),d[r]!=i&&y(d,r,u),c&&h[r]!=i&&(h[r]=i)};m.core=v,w.F=1,w.G=2,w.S=4,w.P=8,w.B=16,w.W=32,w.U=64,w.R=128,e.exports=w},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){e.exports=!n(4)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";n.r(t),n.d(t,"h",(function(){return r})),n.d(t,"createElement",(function(){return r})),n.d(t,"cloneElement",(function(){return i})),n.d(t,"Component",(function(){return g})),n.d(t,"render",(function(){return _})),n.d(t,"rerender",(function(){return f})),n.d(t,"options",(function(){return E}));var s=function s(){},E={},l=[],c=[];function r(e,t){var n,r,o,i,u=c;for(i=arguments.length;2o;)u(r,n=t[o++])&&(~s(i,n)||i.push(n));return i}},function(e,t,n){var r=n(25),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t){e.exports=!1},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(48);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(2),o=n(33),i=n(34)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=undefined),r(t)&&null===(t=t[i])&&(t=undefined)),t===undefined?Array:t}},function(e,t,n){"use strict";var r=n(0),o=n(32)(2);r(r.P+r.F*!n(13)([].filter,!0),"Array",{filter:function(e){return o(this,e,arguments[1])}})},function(e,t,n){var r=n(0);r(r.S,"Array",{isArray:n(33)})},function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0,n(14),n(36),n(30),n(31),n(35),n(55),n(58);var $=n(5),J=o(n(60)),r=o(n(61));function o(e){return e&&e.__esModule?e:{default:e}}function X(){return(X=Object.assign||function(e){for(var t=1;t=r;this.setState({query:a,ariaHint:s}),i||!s&&l&&c?o(a,(function(e){var t=0=i&&0=o,P=this.props.showNoOptionsFound&&N&&I&&k&&A,j=n+"__wrapper",L=n+"__input",T=null!==_?" "+L+"--focused":"",B=this.props.showAllValues?" "+L+"--show-all-values":" "+L+"--default",D=n+"__dropdown-arrow-down",F=-1!==_&&null!==_,R=n+"__menu",U=R+"--"+r,V=R+"--"+(w||P?"visible":"hidden"),q=n+"__option",W=n+"__hint",H=this.templateInputValue(x[C]),K=H&&0===H.toLowerCase().indexOf(O.toLowerCase())&&M?O+H.substr(O.length):"",Q=u+"__assistiveHint",z=S?{"aria-describedby":Q}:null;return c&&"string"==typeof(e=y({className:D}))&&(e=(0,$.createElement)("div",{className:n+"__dropdown-arrow-down-wrapper",dangerouslySetInnerHTML:{__html:e}})),(0,$.createElement)("div",{className:j,onKeyDown:this.handleKeyDown},(0,$.createElement)(J["default"],{id:u,length:x.length,queryLength:O.length,minQueryLength:o,selectedOption:this.templateInputValue(x[C]),selectedOptionIndex:C,validChoiceMade:E,isInFocus:null!==this.state.focused,tQueryTooShort:f,tNoResults:d,tSelectedOption:h,tResults:m}),K&&(0,$.createElement)("span",null,(0,$.createElement)("input",{className:W,readonly:!0,tabIndex:"-1",value:K})),(0,$.createElement)("input",X({"aria-expanded":w?"true":"false","aria-activedescendant":!!F&&u+"__option--"+_,"aria-owns":u+"__listbox","aria-autocomplete":this.hasAutoselect()?"both":"list"},z,{autoComplete:"off",className:""+L+T+B,id:u,onClick:function(e){return i.handleInputClick(e)},onBlur:this.handleInputBlur},function G(e){return{onInput:e}}(this.handleInputChange),{onFocus:this.handleInputFocus,name:a,placeholder:s,ref:function(e){i.elementReferences[-1]=e},type:"text",role:"combobox",required:l,value:O})),e,(0,$.createElement)("ul",{className:R+" "+U+" "+V,onMouseLeave:function(e){return i.handleListMouseLeave(e)},id:u+"__listbox",role:"listbox"},x.map((function(e,t){var n=(-1===_?C===t:_===t)&&null===b?" "+q+"--focused":"",r=t%2?" "+q+"--odd":"",o=Y()?" '+(t+1)+" of "+x.length+"":"";return(0,$.createElement)("li",{"aria-selected":_===t?"true":"false",className:""+q+n+r,dangerouslySetInnerHTML:{__html:i.templateSuggestion(e)+o},id:u+"__option--"+t,key:t,onBlur:function(e){return i.handleOptionBlur(e,t)},onClick:function(e){return i.handleOptionClick(e,t)},onMouseDown:i.handleOptionMouseDown,onMouseEnter:function(e){return i.handleOptionMouseEnter(e,t)},ref:function(e){i.elementReferences[t]=e},role:"option",tabIndex:"-1","aria-posinset":t+1,"aria-setsize":x.length})})),P&&(0,$.createElement)("li",{className:q+" "+q+"--no-results"},p())),(0,$.createElement)("span",{id:Q,style:{display:"none"}},v()))},e}($.Component);(t["default"]=a).defaultProps={autoselect:!1,cssNamespace:"autocomplete",defaultValue:"",displayMenu:"inline",minLength:0,name:"input-autocomplete",placeholder:"",onConfirm:function(){},confirmOnBlur:!0,showNoOptionsFound:!0,showAllValues:!1,required:!1,tNoResults:function(){return"No results found"},tAssistiveHint:function(){return"When autocomplete results are available use up and down arrows to review and enter to select.  Touch device users, explore by touch or with swipe gestures."},dropdownArrow:r["default"]}},function(e,t,r){var o=r(9),i=r(53),u=r(28),a=r(26)("IE_PROTO"),s=function(){},l="prototype",c=function(){var e,t=r(15)("iframe"),n=u.length;for(t.style.display="none",r(54).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("
         
         
+        
         
         
         
diff --git a/src/assignNames.js b/src/assignNames.js
index 7745249c..97796797 100644
--- a/src/assignNames.js
+++ b/src/assignNames.js
@@ -29,7 +29,7 @@ const inputFile = parsedArgs._[0] || fluid.module.resolvePath("%imerss-bioinfo/d
 const reader = hortis.csvReaderWithoutMap({
     inputFile: inputFile,
     csvOptions: {
-        separator: "\t" // TODO: remember to put this back for real GBIF
+        //separator: "\t" // TODO: remember to put this back for real GBIF
     }
 });
 
@@ -136,16 +136,20 @@ hortis.obsIdFromSummaryRow2023 = function (row) {
     const obsLink = row["iNaturalist.Link"];
     if (obsLink) {
         const slashPos = obsLink.lastIndexOf("/");
-        const obsId = obsLink.substring(slashPos + 1);
-        return obsId;
+        if (slashPos !== -1) {
+            return obsLink.substring(slashPos + 1);
+        } else {
+            const colPos = obsLink.lastIndexOf(":");
+            return obsLink.substring(colPos + 1);
+        }
     }
 };
 
 // One-off script to update taxonomies and iNaturalist ids from files produced in Andrew's 2022 run of Galiano data
 
 hortis.applyName = async function (row) {
-    //const query = hortis.queryFromSummaryRow2023(row);
-    const query = hortis.queryFromGBIFRow(row);
+    const query = hortis.queryFromSummaryRow2023(row);
+    //const query = hortis.queryFromGBIFRow(row);
     //const query = hortis.queryFromCPNWHRow(row);
     //const query = hortis.queryFromLichenNRow(row);
     //const query = hortis.queryFromDwcaRow(row);
diff --git a/src/buildSource/indexBeasOBA.html b/src/buildSource/indexBeasOBA.html
index a0699583..55f43c94 100644
--- a/src/buildSource/indexBeasOBA.html
+++ b/src/buildSource/indexBeasOBA.html
@@ -17,11 +17,14 @@
         
         
 
-        
+        
+        
+        
         
 
         
         
+        
         
         
 
diff --git a/src/client/css/imerss-core.css b/src/client/css/imerss-core.css
index 5cf7324c..0434cc74 100644
--- a/src/client/css/imerss-core.css
+++ b/src/client/css/imerss-core.css
@@ -102,17 +102,18 @@
     transform: scale(.6);
 }
 
-.pretty .state label:after, .pretty .state label:before {
+/* Need to beat builtin definitions even though we are included earlier */
+.pretty.pretty .state label:after, .pretty.pretty .state label:before {
     width: calc(1em + 0px);
     height: calc(1em + 0px);
 }
 
-.pretty.p-icon .state .icon {
+.pretty.pretty.p-icon .state .icon {
     width: calc(1em + 0px);
     height: calc(1em + 0px);
 }
 
-.pretty {
+.pretty.pretty {
     margin-right: 0.3em;
     /* Cancel the wrapping behaviour at higher checklist level */
     text-indent: 0;
diff --git a/src/client/css/maplibre-gl.css b/src/client/css/maplibre-gl.css
index e5599a23..48bb3180 100644
--- a/src/client/css/maplibre-gl.css
+++ b/src/client/css/maplibre-gl.css
@@ -1,187 +1,187 @@
 /* Taken from https://github.com/maplibre/maplibre-gl-js/blob/main/src/css/maplibre-gl.css rev 96482e5
- * Hacked to remove absurd button hover definitions
+ * Hacked to remove absurd button hover definition
  */
 
 .maplibregl-map {
-    font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif;
+    font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;
     overflow: hidden;
     position: relative;
-    -webkit-tap-highlight-color: rgb(0 0 0 / 0%);
+    -webkit-tap-highlight-color: rgb(0 0 0/0)
 }
 
 .maplibregl-canvas {
-    position: absolute;
     left: 0;
-    top: 0;
+    position: absolute;
+    top: 0
 }
 
 .maplibregl-map:fullscreen {
-    width: 100%;
     height: 100%;
+    width: 100%
 }
 
 .maplibregl-ctrl-group button.maplibregl-ctrl-compass {
-    touch-action: none;
+    touch-action: none
 }
 
 .maplibregl-canvas-container.maplibregl-interactive,
 .maplibregl-ctrl-group button.maplibregl-ctrl-compass {
     cursor: grab;
-    user-select: none;
+    -moz-user-select: none;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none
 }
 
 .maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer {
-    cursor: pointer;
+    cursor: pointer
 }
 
 .maplibregl-canvas-container.maplibregl-interactive:active,
 .maplibregl-ctrl-group button.maplibregl-ctrl-compass:active {
-    cursor: grabbing;
+    cursor: grabbing
 }
 
 .maplibregl-canvas-container.maplibregl-touch-zoom-rotate,
 .maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas {
-    touch-action: pan-x pan-y;
+    touch-action: pan-x pan-y
 }
 
 .maplibregl-canvas-container.maplibregl-touch-drag-pan,
 .maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas {
-    touch-action: pinch-zoom;
+    touch-action: pinch-zoom
 }
 
 .maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,
 .maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas {
-    touch-action: none;
+    touch-action: none
 }
 
 .maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,
 .maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas {
-    touch-action: pan-x pan-y;
+    touch-action: pan-x pan-y
 }
 
-.maplibregl-ctrl-top-left,
-.maplibregl-ctrl-top-right,
 .maplibregl-ctrl-bottom-left,
-.maplibregl-ctrl-bottom-right {
-    position: absolute;
+.maplibregl-ctrl-bottom-right,
+.maplibregl-ctrl-top-left,
+.maplibregl-ctrl-top-right {
     pointer-events: none;
-    z-index: 2;
+    position: absolute;
+    z-index: 2
 }
 
 .maplibregl-ctrl-top-left {
-    top: 0;
     left: 0;
+    top: 0
 }
 
 .maplibregl-ctrl-top-right {
-    top: 0;
     right: 0;
+    top: 0
 }
 
 .maplibregl-ctrl-bottom-left {
     bottom: 0;
-    left: 0;
+    left: 0
 }
 
 .maplibregl-ctrl-bottom-right {
-    right: 0;
     bottom: 0;
+    right: 0
 }
 
 .maplibregl-ctrl {
     clear: both;
     pointer-events: auto;
-
-    /* workaround for a Safari bug https://github.com/mapbox/mapbox-gl-js/issues/8185 */
-    transform: translate(0, 0);
+    transform: translate(0)
 }
 
 .maplibregl-ctrl-top-left .maplibregl-ctrl {
-    margin: 10px 0 0 10px;
     float: left;
+    margin: 10px 0 0 10px
 }
 
 .maplibregl-ctrl-top-right .maplibregl-ctrl {
-    margin: 10px 10px 0 0;
     float: right;
+    margin: 10px 10px 0 0
 }
 
 .maplibregl-ctrl-bottom-left .maplibregl-ctrl {
-    margin: 0 0 10px 10px;
     float: left;
+    margin: 0 0 10px 10px
 }
 
 .maplibregl-ctrl-bottom-right .maplibregl-ctrl {
-    margin: 0 10px 10px 0;
     float: right;
+    margin: 0 10px 10px 0
 }
 
 .maplibregl-ctrl-group {
-    border-radius: 4px;
     background: #fff;
+    border-radius: 4px
 }
 
 .maplibregl-ctrl-group:not(:empty) {
-    box-shadow: 0 0 0 2px rgb(0 0 0 / 10%);
+    box-shadow: 0 0 0 2px rgba(0, 0, 0, .1)
 }
 
-@media (forced-colors: active) {
+@media (-ms-high-contrast:active) {
     .maplibregl-ctrl-group:not(:empty) {
-        box-shadow: 0 0 0 2px ButtonText;
+        box-shadow: 0 0 0 2px ButtonText
     }
 }
 
 .maplibregl-ctrl-group button {
-    width: 29px;
-    height: 29px;
-    display: block;
-    padding: 0;
-    outline: none;
+    background-color: transparent;
     border: 0;
     box-sizing: border-box;
-    background-color: transparent;
     cursor: pointer;
+    display: block;
+    height: 29px;
+    outline: none;
+    padding: 0;
+    width: 29px
 }
 
-.maplibregl-ctrl-group button + button {
-    border-top: 1px solid #ddd;
+.maplibregl-ctrl-group button+button {
+    border-top: 1px solid #ddd
 }
 
 .maplibregl-ctrl button .maplibregl-ctrl-icon {
+    background-position: 50%;
+    background-repeat: no-repeat;
     display: block;
-    width: 100%;
     height: 100%;
-    background-repeat: no-repeat;
-    background-position: center center;
+    width: 100%
 }
 
-@media (forced-colors: active) {
+@media (-ms-high-contrast:active) {
     .maplibregl-ctrl-icon {
-        background-color: transparent;
+        background-color: transparent
     }
 
-    .maplibregl-ctrl-group button + button {
-        border-top: 1px solid ButtonText;
+    .maplibregl-ctrl-group button+button {
+        border-top: 1px solid ButtonText
     }
 }
 
-/* https://bugzilla.mozilla.org/show_bug.cgi?id=140562 */
 .maplibregl-ctrl button::-moz-focus-inner {
     border: 0;
-    padding: 0;
+    padding: 0
 }
 
 .maplibregl-ctrl-attrib-button:focus,
 .maplibregl-ctrl-group button:focus {
-    box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%);
+    box-shadow: 0 0 2px 2px #0096ff
 }
 
 .maplibregl-ctrl button:disabled {
-    cursor: not-allowed;
+    cursor: not-allowed
 }
 
 .maplibregl-ctrl button:disabled .maplibregl-ctrl-icon {
-    opacity: 0.25;
+    opacity: .25
 }
 
 /* REMOVED AMB
@@ -191,670 +191,606 @@
 */
 
 .maplibregl-ctrl-group button:focus:focus-visible {
-    box-shadow: 0 0 2px 2px rgb(0 150 255 / 100%);
+    box-shadow: 0 0 2px 2px #0096ff
 }
 
 .maplibregl-ctrl-group button:focus:not(:focus-visible) {
-    box-shadow: none;
+    box-shadow: none
 }
 
 .maplibregl-ctrl-group button:focus:first-child {
-    border-radius: 4px 4px 0 0;
+    border-radius: 4px 4px 0 0
 }
 
 .maplibregl-ctrl-group button:focus:last-child {
-    border-radius: 0 0 4px 4px;
+    border-radius: 0 0 4px 4px
 }
 
 .maplibregl-ctrl-group button:focus:only-child {
-    border-radius: inherit;
+    border-radius: inherit
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon {
-    background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #333);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon {
-    background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #333);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")
 }
 
-@media (forced-colors: active) {
+@media (-ms-high-contrast:active) {
     .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #fff);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #fff);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")
     }
 }
 
-@media (forced-colors: active) and (prefers-color-scheme: light) {
+@media (-ms-high-contrast:black-on-white) {
     .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-zoom-out.svg", fill: #000);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-zoom-in.svg", fill: #000);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")
     }
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon {
-    background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #333);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon {
-    background-image: svg-load("svg/maplibregl-ctrl-shrink.svg");
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")
 }
 
-@media (forced-colors: active) {
+@media (-ms-high-contrast:active) {
     .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #fff);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #fff);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")
     }
 }
 
-@media (forced-colors: active) and (prefers-color-scheme: light) {
+@media (-ms-high-contrast:black-on-white) {
     .maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-fullscreen.svg", fill: #000);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-shrink.svg", fill: #000);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")
     }
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon {
-    background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #333);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")
 }
 
-@media (forced-colors: active) {
+@media (-ms-high-contrast:active) {
     .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon {
-    @svg-load ctrl-compass-white url("svg/maplibregl-ctrl-compass.svg") {
-        fill: #fff;
-        #south { fill: #999; }
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23999' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")
     }
-
-    background-image: svg-inline(ctrl-compass-white);
-}
 }
 
-@media (forced-colors: active) and (prefers-color-scheme: light) {
+@media (-ms-high-contrast:black-on-white) {
     .maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon {
-        background-image: svg-load("svg/maplibregl-ctrl-compass.svg", fill: #000);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")
     }
 }
 
-@svg-load ctrl-terrain url("svg/maplibregl-ctrl-terrain.svg") {
-    fill: #333;
-    #stroke { display: none; }
-}
-
-@svg-load ctrl-terrain-enabled url("svg/maplibregl-ctrl-terrain.svg") {
-    fill: #33b5e5;
-    #stroke { display: none; }
-}
-
 .maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-terrain);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-terrain-enabled);
-}
-
-@svg-load ctrl-geolocate url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #333;
-    #stroke { display: none; }
-}
-
-@svg-load ctrl-geolocate-white url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #fff;
-    #stroke { display: none; }
-}
-
-@svg-load ctrl-geolocate-black url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #000;
-    #stroke { display: none; }
-}
-
-@svg-load ctrl-geolocate-disabled url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #aaa;
-    #stroke { fill: #f00; }
-}
-
-@svg-load ctrl-geolocate-disabled-white url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #999;
-    #stroke { fill: #f00; }
-}
-
-@svg-load ctrl-geolocate-disabled-black url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #666;
-    #stroke { fill: #f00; }
-}
-
-@svg-load ctrl-geolocate-active url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #33b5e5;
-    #stroke { display: none; }
-}
-
-@svg-load ctrl-geolocate-active-error url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #e58978;
-    #stroke { display: none; }
-}
-
-@svg-load ctrl-geolocate-background url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #33b5e5;
-    #stroke { display: none; }
-    #dot { display: none; }
-}
-
-@svg-load ctrl-geolocate-background-error url("svg/maplibregl-ctrl-geolocate.svg") {
-    fill: #e54e33;
-    #stroke { display: none; }
-    #dot { display: none; }
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-geolocate);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-geolocate-disabled);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-geolocate-active);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-geolocate-active-error);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-geolocate-background);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon {
-    background-image: svg-inline(ctrl-geolocate-background-error);
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")
 }
 
 .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon {
-    animation: maplibregl-spin 2s infinite linear;
+    animation: maplibregl-spin 2s linear infinite
 }
 
-@media (forced-colors: active) {
+@media (-ms-high-contrast:active) {
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-white);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-disabled-white);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-active);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-active-error);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-background);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-background-error);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")
     }
 }
 
-@media (forced-colors: active) and (prefers-color-scheme: light) {
+@media (-ms-high-contrast:black-on-white) {
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-black);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")
     }
 
     .maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon {
-        background-image: svg-inline(ctrl-geolocate-disabled-black);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")
     }
 }
 
 @keyframes maplibregl-spin {
-    0% { transform: rotate(0deg); }
-    100% { transform: rotate(360deg); }
+    0% {
+        transform: rotate(0deg)
+    }
+
+    to {
+        transform: rotate(1turn)
+    }
 }
 
 a.maplibregl-ctrl-logo {
-    width: 88px;
-    height: 23px;
-    margin: 0 0 -4px -4px;
-    display: block;
+    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");
     background-repeat: no-repeat;
     cursor: pointer;
+    display: block;
+    height: 23px;
+    margin: 0 0 -4px -4px;
     overflow: hidden;
-    background-image: svg-load("svg/maplibregl-ctrl-logo.svg");
+    width: 88px
 }
 
 a.maplibregl-ctrl-logo.maplibregl-compact {
-    width: 14px;
+    width: 14px
 }
 
-@media (forced-colors: active) {
+@media (-ms-high-contrast:active) {
     a.maplibregl-ctrl-logo {
-    @svg-load ctrl-logo-white url("svg/maplibregl-ctrl-logo.svg") {
-        #outline { opacity: 1; }
-        #fill { opacity: 1; }
+        background-color: transparent;
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")
     }
-
-    background-color: transparent;
-    background-image: svg-inline(ctrl-logo-white);
-}
 }
 
-@media (forced-colors: active) and (prefers-color-scheme: light) {
+@media (-ms-high-contrast:black-on-white) {
     a.maplibregl-ctrl-logo {
-    @svg-load ctrl-logo-black url("svg/maplibregl-ctrl-logo.svg") {
-        #outline { opacity: 1; fill: #fff; stroke: #fff; }
-        #fill { opacity: 1; fill: #000; }
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")
     }
-
-    background-image: svg-inline(ctrl-logo-black);
-}
 }
 
 .maplibregl-ctrl.maplibregl-ctrl-attrib {
-    padding: 0 5px;
-    background-color: rgb(255 255 255 / 50%);
+    background-color: hsla(0, 0%, 100%, .5);
     margin: 0;
+    padding: 0 5px
 }
 
 @media screen {
     .maplibregl-ctrl-attrib.maplibregl-compact {
-        min-height: 20px;
-        padding: 2px 24px 2px 0;
-        margin: 10px;
-        position: relative;
         background-color: #fff;
-        color: #000;
         border-radius: 12px;
         box-sizing: content-box;
+        margin: 10px;
+        min-height: 20px;
+        padding: 2px 24px 2px 0;
+        position: relative
     }
 
     .maplibregl-ctrl-attrib.maplibregl-compact-show {
         padding: 2px 28px 2px 8px;
-        visibility: visible;
+        visibility: visible
     }
 
-    .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact-show,
-    .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact-show {
-        padding: 2px 8px 2px 28px;
+    .maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,
+    .maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show {
         border-radius: 12px;
+        padding: 2px 8px 2px 28px
     }
 
     .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner {
-        display: none;
+        display: none
     }
 
     .maplibregl-ctrl-attrib-button {
-        display: none;
+        background-color: hsla(0, 0%, 100%, .5);
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");
+        border: 0;
+        border-radius: 12px;
+        box-sizing: border-box;
         cursor: pointer;
-        position: absolute;
-        background-image: svg-load("svg/maplibregl-ctrl-attrib.svg");
-        background-color: rgb(255 255 255 / 50%);
-        width: 24px;
+        display: none;
         height: 24px;
-        box-sizing: border-box;
-        border-radius: 12px;
         outline: none;
-        top: 0;
+        position: absolute;
         right: 0;
-        border: 0;
+        top: 0;
+        width: 24px
     }
 
     .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button {
         appearance: none;
-        list-style: none;
+        list-style: none
     }
 
     .maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker {
-        display: none;
+        display: none
     }
 
-    .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button,
-    .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button {
-        left: 0;
+    .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,
+    .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button {
+        left: 0
     }
 
     .maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,
     .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner {
-        display: block;
+        display: block
     }
 
     .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button {
-        background-color: rgb(0 0 0 / 5%);
+        background-color: rgb(0 0 0/5%)
     }
 
-    .maplibregl-ctrl-bottom-right > .maplibregl-ctrl-attrib.maplibregl-compact::after {
+    .maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after {
         bottom: 0;
-        right: 0;
+        right: 0
     }
 
-    .maplibregl-ctrl-top-right > .maplibregl-ctrl-attrib.maplibregl-compact::after {
-        top: 0;
+    .maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after {
         right: 0;
+        top: 0
     }
 
-    .maplibregl-ctrl-top-left > .maplibregl-ctrl-attrib.maplibregl-compact::after {
-        top: 0;
+    .maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after {
         left: 0;
+        top: 0
     }
 
-    .maplibregl-ctrl-bottom-left > .maplibregl-ctrl-attrib.maplibregl-compact::after {
+    .maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after {
         bottom: 0;
-        left: 0;
+        left: 0
     }
 }
 
-@media screen and (forced-colors: active) {
-    .maplibregl-ctrl-attrib.maplibregl-compact::after {
-        background-image: svg-load("svg/maplibregl-ctrl-attrib.svg", fill=#fff);
+@media screen and (-ms-high-contrast:active) {
+    .maplibregl-ctrl-attrib.maplibregl-compact:after {
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")
     }
 }
 
-@media screen and (forced-colors: active) and (prefers-color-scheme: light) {
-    .maplibregl-ctrl-attrib.maplibregl-compact::after {
-        background-image: svg-load("svg/maplibregl-ctrl-attrib.svg");
+@media screen and (-ms-high-contrast:black-on-white) {
+    .maplibregl-ctrl-attrib.maplibregl-compact:after {
+        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")
     }
 }
 
 .maplibregl-ctrl-attrib a {
-    color: rgb(0 0 0 / 75%);
-    text-decoration: none;
+    color: rgba(0, 0, 0, .75);
+    text-decoration: none
 }
 
 .maplibregl-ctrl-attrib a:hover {
     color: inherit;
-    text-decoration: underline;
+    text-decoration: underline
 }
 
 .maplibregl-attrib-empty {
-    display: none;
+    display: none
 }
 
 .maplibregl-ctrl-scale {
-    background-color: rgb(255 255 255 / 75%);
-    font-size: 10px;
-    border-width: medium 2px 2px;
-    border-style: none solid solid;
-    border-color: #333;
-    padding: 0 5px;
-    color: #333;
+    background-color: hsla(0, 0%, 100%, .75);
+    border: 2px solid #333;
+    border-top: #333;
     box-sizing: border-box;
+    color: #333;
+    font-size: 10px;
+    padding: 0 5px
 }
 
 .maplibregl-popup {
-    position: absolute;
-    top: 0;
-    left: 0;
     display: flex;
-    will-change: transform;
+    left: 0;
     pointer-events: none;
+    position: absolute;
+    top: 0;
+    will-change: transform
 }
 
 .maplibregl-popup-anchor-top,
 .maplibregl-popup-anchor-top-left,
 .maplibregl-popup-anchor-top-right {
-    flex-direction: column;
+    flex-direction: column
 }
 
 .maplibregl-popup-anchor-bottom,
 .maplibregl-popup-anchor-bottom-left,
 .maplibregl-popup-anchor-bottom-right {
-    flex-direction: column-reverse;
+    flex-direction: column-reverse
 }
 
 .maplibregl-popup-anchor-left {
-    flex-direction: row;
+    flex-direction: row
 }
 
 .maplibregl-popup-anchor-right {
-    flex-direction: row-reverse;
+    flex-direction: row-reverse
 }
 
 .maplibregl-popup-tip {
-    width: 0;
-    height: 0;
     border: 10px solid transparent;
-    z-index: 1;
+    height: 0;
+    width: 0;
+    z-index: 1
 }
 
 .maplibregl-popup-anchor-top .maplibregl-popup-tip {
     align-self: center;
-    border-top: none;
     border-bottom-color: #fff;
+    border-top: none
 }
 
 .maplibregl-popup-anchor-top-left .maplibregl-popup-tip {
     align-self: flex-start;
-    border-top: none;
-    border-left: none;
     border-bottom-color: #fff;
+    border-left: none;
+    border-top: none
 }
 
 .maplibregl-popup-anchor-top-right .maplibregl-popup-tip {
     align-self: flex-end;
-    border-top: none;
-    border-right: none;
     border-bottom-color: #fff;
+    border-right: none;
+    border-top: none
 }
 
 .maplibregl-popup-anchor-bottom .maplibregl-popup-tip {
     align-self: center;
     border-bottom: none;
-    border-top-color: #fff;
+    border-top-color: #fff
 }
 
 .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip {
     align-self: flex-start;
     border-bottom: none;
     border-left: none;
-    border-top-color: #fff;
+    border-top-color: #fff
 }
 
 .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip {
     align-self: flex-end;
     border-bottom: none;
     border-right: none;
-    border-top-color: #fff;
+    border-top-color: #fff
 }
 
 .maplibregl-popup-anchor-left .maplibregl-popup-tip {
     align-self: center;
     border-left: none;
-    border-right-color: #fff;
+    border-right-color: #fff
 }
 
 .maplibregl-popup-anchor-right .maplibregl-popup-tip {
     align-self: center;
-    border-right: none;
     border-left-color: #fff;
+    border-right: none
 }
 
 .maplibregl-popup-close-button {
-    position: absolute;
-    right: 0;
-    top: 0;
+    background-color: transparent;
     border: 0;
     border-radius: 0 3px 0 0;
     cursor: pointer;
-    background-color: transparent;
+    position: absolute;
+    right: 0;
+    top: 0
 }
 
 .maplibregl-popup-close-button:hover {
-    background-color: rgb(0 0 0 / 5%);
+    background-color: rgb(0 0 0/5%)
 }
 
 .maplibregl-popup-content {
-    position: relative;
     background: #fff;
     border-radius: 3px;
-    box-shadow: 0 1px 2px rgb(0 0 0 / 10%);
+    box-shadow: 0 1px 2px rgba(0, 0, 0, .1);
     padding: 15px 10px;
     pointer-events: auto;
+    position: relative
 }
 
 .maplibregl-popup-anchor-top-left .maplibregl-popup-content {
-    border-top-left-radius: 0;
+    border-top-left-radius: 0
 }
 
 .maplibregl-popup-anchor-top-right .maplibregl-popup-content {
-    border-top-right-radius: 0;
+    border-top-right-radius: 0
 }
 
 .maplibregl-popup-anchor-bottom-left .maplibregl-popup-content {
-    border-bottom-left-radius: 0;
+    border-bottom-left-radius: 0
 }
 
 .maplibregl-popup-anchor-bottom-right .maplibregl-popup-content {
-    border-bottom-right-radius: 0;
+    border-bottom-right-radius: 0
 }
 
 .maplibregl-popup-track-pointer {
-    display: none;
+    display: none
 }
 
 .maplibregl-popup-track-pointer * {
     pointer-events: none;
-    user-select: none;
+    user-select: none
 }
 
 .maplibregl-map:hover .maplibregl-popup-track-pointer {
-    display: flex;
+    display: flex
 }
 
 .maplibregl-map:active .maplibregl-popup-track-pointer {
-    display: none;
+    display: none
 }
 
 .maplibregl-marker {
+    left: 0;
     position: absolute;
     top: 0;
-    left: 0;
-    will-change: transform;
-    transition: opacity 0.2s;
+    transition: opacity .2s;
+    will-change: transform
 }
 
-.maplibregl-user-location-dot {
+.maplibregl-user-location-dot,
+.maplibregl-user-location-dot:before {
     background-color: #1da1f2;
-    width: 15px;
-    height: 15px;
     border-radius: 50%;
+    height: 15px;
+    width: 15px
 }
 
-.maplibregl-user-location-dot::before {
-    background-color: #1da1f2;
-    content: "";
-    width: 15px;
-    height: 15px;
-    border-radius: 50%;
-    position: absolute;
+.maplibregl-user-location-dot:before {
     animation: maplibregl-user-location-dot-pulse 2s infinite;
+    content: "";
+    position: absolute
 }
 
-.maplibregl-user-location-dot::after {
-    border-radius: 50%;
+.maplibregl-user-location-dot:after {
     border: 2px solid #fff;
+    border-radius: 50%;
+    box-shadow: 0 0 3px rgba(0, 0, 0, .35);
+    box-sizing: border-box;
     content: "";
     height: 19px;
     left: -2px;
     position: absolute;
     top: -2px;
-    width: 19px;
-    box-sizing: border-box;
-    box-shadow: 0 0 3px rgb(0 0 0 / 35%);
+    width: 19px
 }
 
 @keyframes maplibregl-user-location-dot-pulse {
-    0%   { transform: scale(1); opacity: 1; }
-    70%  { transform: scale(3); opacity: 0; }
-    100% { transform: scale(1); opacity: 0; }
+    0% {
+        opacity: 1;
+        transform: scale(1)
+    }
+
+    70% {
+        opacity: 0;
+        transform: scale(3)
+    }
+
+    to {
+        opacity: 0;
+        transform: scale(1)
+    }
 }
 
 .maplibregl-user-location-dot-stale {
-    background-color: #aaa;
+    background-color: #aaa
 }
 
-.maplibregl-user-location-dot-stale::after {
-    display: none;
+.maplibregl-user-location-dot-stale:after {
+    display: none
 }
 
 .maplibregl-user-location-accuracy-circle {
     background-color: #1da1f233;
-    width: 1px;
-    height: 1px;
     border-radius: 100%;
+    height: 1px;
+    width: 1px
 }
 
 .maplibregl-crosshair,
 .maplibregl-crosshair .maplibregl-interactive,
 .maplibregl-crosshair .maplibregl-interactive:active {
-    cursor: crosshair;
+    cursor: crosshair
 }
 
 .maplibregl-boxzoom {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 0;
-    height: 0;
     background: #fff;
     border: 2px dotted #202020;
-    opacity: 0.5;
+    height: 0;
+    left: 0;
+    opacity: .5;
+    position: absolute;
+    top: 0;
+    width: 0
 }
 
 .maplibregl-cooperative-gesture-screen {
-    background: rgba(0 0 0 / 40%);
-    position: absolute;
-    inset: 0;
-    display: flex;
-    justify-content: center;
     align-items: center;
-    color: white;
-    padding: 1rem;
+    background: rgba(0, 0, 0, .4);
+    color: #fff;
+    display: flex;
     font-size: 1.4em;
+    inset: 0;
+    justify-content: center;
     line-height: 1.2;
     opacity: 0;
+    padding: 1rem;
     pointer-events: none;
+    position: absolute;
     transition: opacity 1s ease 1s;
-    z-index: 99999;
+    z-index: 99999
 }
 
 .maplibregl-cooperative-gesture-screen.maplibregl-show {
     opacity: 1;
-    transition: opacity 0.05s;
+    transition: opacity .05s
 }
 
 .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message {
-    display: none;
+    display: none
 }
 
-@media (hover: none), (width <= 480px) {
+/* Commented out since WebStorm can't parse it
+@media (hover:none), (width <= 480px) {
     .maplibregl-cooperative-gesture-screen .maplibregl-desktop-message {
-        display: none;
+        display: none
     }
 
     .maplibregl-cooperative-gesture-screen .maplibregl-mobile-message {
-        display: block;
+        display: block
     }
 }
+*/
 
 .maplibregl-pseudo-fullscreen {
-    position: fixed !important;
-    width: 100% !important;
     height: 100% !important;
-    top: 0 !important;
     left: 0 !important;
-    z-index: 99999;
+    position: fixed !important;
+    top: 0 !important;
+    width: 100% !important;
+    z-index: 99999
 }
\ No newline at end of file
diff --git a/src/client/html/imerss-viz-nomap-wol.html b/src/client/html/imerss-viz-nomap-wol.html
index 3a0cb3e0..c1364a16 100644
--- a/src/client/html/imerss-viz-nomap-wol.html
+++ b/src/client/html/imerss-viz-nomap-wol.html
@@ -3,14 +3,16 @@
         .imerss-map-and-taxa {
             display: flex;
             flex-direction: row;
+            height: 100%;
         }
         .imerss-container {
             display: block;
         }
         .imerss-taxonDisplay {
             height: 100%;
-            max-height: 80vh;
+            max-height: 60vh;
             min-width: 380px;
+            max-width: 380px;
         }
         .imerss-autocomplete {
             width: 20rem;
diff --git a/src/client/js/new/fluidNew.js b/src/client/js/new/fluidNew.js
index 1f2b9d13..055f081b 100644
--- a/src/client/js/new/fluidNew.js
+++ b/src/client/js/new/fluidNew.js
@@ -114,6 +114,16 @@ fluid.renderStringTemplate = function (markup, renderModelSignal) {
     return renderModel === undefined ? markup.fallbackContainer : fluid.stringTemplate(markup.container, renderModel);
 };
 
+// Taken from reknit.js
+fluid.makeCreateElement = function (dokkument) {
+    return (tagName, props) => {
+        const element = dokkument.createElement(tagName);
+        Object.entries(props).forEach(([key, value]) => element.setAttribute(key, value));
+        return element;
+    };
+};
+
+fluid.h = fluid.makeCreateElement(document);
 
 fluid.defaults("fluid.stringTemplateRenderingView", {
     gradeNames: "fluid.containerRenderingView",
diff --git a/src/client/js/new/imerss-bbea.js b/src/client/js/new/imerss-bbea.js
index c3687c67..462578cb 100644
--- a/src/client/js/new/imerss-bbea.js
+++ b/src/client/js/new/imerss-bbea.js
@@ -749,7 +749,7 @@ fluid.defaults("hortis.bbeaObsQuantiser", {
 hortis.bbeaGridTooltipTemplate =
 `
Observations: %obsCount
-
Bees species: %beeCount
%beeTaxa
+
Bees: %beeCount
%beeTaxa
%footer
`; diff --git a/src/client/js/new/imerss-new.js b/src/client/js/new/imerss-new.js index 3bd47a1c..75eeab98 100644 --- a/src/client/js/new/imerss-new.js +++ b/src/client/js/new/imerss-new.js @@ -7,7 +7,7 @@ You may obtain a copy of the ECL 2.0 License and BSD License at https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt */ -/* global Papa, maplibregl, MapboxDraw, preactSignalsCore */ +/* global Papa, maplibregl, preactSignalsCore */ "use strict"; @@ -500,97 +500,84 @@ fluid.defaults("hortis.libreMap", { } }, members: { - map: "@expand:hortis.libreMap.make({that}.container.0, {that}.options.mapOptions, {that}.mapLoaded)", + map: "@expand:hortis.libreMap.make({that}.container.0, {that}.options.mapOptions, {that}.options.zoomDuration, {that}.mapLoaded)", mapLoaded: "@expand:signal()" } }); -hortis.libreMap.make = function (container, mapOptions, mapLoaded) { - const togo = new maplibregl.Map({container, ...mapOptions}); - togo.on("load", function () { - console.log("Map loaded"); - mapLoaded.value = 1; - }); - return togo; -}; - -fluid.defaults("hortis.libreMap.withTiles", { - // TODO: Syntax for throwing away arguments - addTiles: "@expand:fluid.effect(hortis.libreMap.addTileLayers, {that}.map, {that}.options.tileSets, {that}.mapLoaded)" -}); - -// Attested in demos and in https://github.com/maplibre/maplibre-gl-js/issues/2601 -MapboxDraw.constants.classes.CONTROL_BASE = "maplibregl-ctrl"; -MapboxDraw.constants.classes.CONTROL_PREFIX = "maplibregl-ctrl-"; -MapboxDraw.constants.classes.CONTROL_GROUP = "maplibregl-ctrl-group"; - -fluid.defaults("hortis.libreMap.withPolygonDraw", { - components: { - polygonDraw: { - type: "hortis.libreMap.polygonFilter" - } - } -}); - -// Currently combine draw UI and filter, could break apart -fluid.defaults("hortis.libreMap.polygonFilter", { - gradeNames: ["hortis.filter", "hortis.dataDrivenFilter", "fluid.component"], - mapboxDrawOptions: { - displayControlsDefault: false, - controls: { - polygon: true, - trash: true - } - }, - invokers: { - updateArea: "hortis.libreMap.polygonFilter.updateArea({that})", - doFilter: "hortis.libreMap.polygonFilter.doFilter({arguments}.0, {arguments}.1)", - reset: "hortis.libreMap.polygonFilter.reset({that})" - }, - members: { - // filterState holds "features" array from GeoJSON FeatureCollection - // Right now just initialises "point" member on each row but could intern and cache in future - pointCache: "@expand:fluid.effect(hortis.libreMap.polygonFilter.pointCache, {that}.obsRows)", - filterState: "@expand:signal([])", - drawMode: "@expand:signal(null)", - mapboxDraw: "@expand:hortis.libreMap.makeMapboxDraw({hortis.libreMap}.map, {that}.options.mapboxDrawOptions, {that}.updateArea, {that}.drawMode)" - } -}); -hortis.libreMap.polygonFilter.pointCache = function (obsRows) { - // Taken from landlocked.js which seems to be only historical site feeding into point-in-polygon.js - obsRows.forEach(row => row.point = [hortis.parseFloat(row.decimalLongitude), hortis.parseFloat(row.decimalLatitude)]); +const initNavigationControl = function (options) { + this.options = options; + this._container = fluid.h("div", {class: "maplibregl-ctrl maplibregl-ctrl-group"}); + this._zoomInButton = this._createButton("maplibregl-ctrl-zoom-in", (e) => + this._map.zoomIn({ + duration: options.zoomDuration, + essential: true + }, {originalEvent: e}) + ); + this._zoomInButton.appendChild(fluid.h("span", { + class: "maplibregl-ctrl-icon", + "aria-hidden": true + })); + this._zoomOutButton = this._createButton("maplibregl-ctrl-zoom-out", (e) => + this._map.zoomOut({ + duration: options.zoomDuration, + essential: true + }, {originalEvent: e}) + ); + this._zoomOutButton.appendChild(fluid.h("span", { + class: "maplibregl-ctrl-icon", + "aria-hidden": true + })); + // These two methods need to be copied in because bizarrely the ES6 class -> prototype mangling process sticks these + // into the constructor - perhaps this is part of TS + this._updateZoomButtons = () => { + const zoom = this._map.getZoom(); + const isMax = zoom === this._map.getMaxZoom(); + const isMin = zoom === this._map.getMinZoom(); + this._zoomInButton.disabled = isMax; + this._zoomOutButton.disabled = isMin; + this._zoomInButton.setAttribute("aria-disabled", isMax.toString()); + this._zoomOutButton.setAttribute("aria-disabled", isMin.toString()); + }; + this._setButtonTitle = (button, title) => { + const str = this._map._getUIString(`NavigationControl.${title}`); + button.title = str; + button.setAttribute("aria-label", str); + }; }; -hortis.libreMap.polygonFilter.doFilter = function (obsRows, filterState) { - const none = filterState.length === 0; - - return none ? obsRows : obsRows.filter(row => hortis.intersectsAnyFeature(filterState, row)); +const makeNavigationControl = function (options) { + const inst = Object.create(maplibregl.NavigationControl.prototype); + initNavigationControl.bind(inst)(options); + return inst; }; -hortis.libreMap.polygonFilter.reset = function (that) { - that.mapboxDraw.deleteAll(); - that.filterState.value = []; -}; -hortis.libreMap.polygonFilter.updateArea = function (that) { - that.filterState.value = that.mapboxDraw.getAll().features; +hortis.libreMap.zoomControls = function (map, zoomDuration) { + map.addControl(makeNavigationControl({showCompass: false, showZoom: true, zoomDuration})); + // disable map rotation using right click + drag + map.dragRotate.disable(); + // disable map rotation using touch rotation gesture + map.touchZoomRotate.disableRotation(); }; -hortis.libreMap.makeMapboxDraw = function (map, mapboxDrawOptions, updateArea, drawMode) { - const draw = new MapboxDraw(mapboxDrawOptions); - map.addControl(draw); - map.on("draw.create", updateArea); - map.on("draw.delete", updateArea); - map.on("draw.update", updateArea); - map.on("draw.modechange", mode => { - console.log("New mode ", mode); - drawMode.value = mode; +hortis.libreMap.make = function (container, mapOptions, zoomDuration, mapLoaded) { + const map = new maplibregl.Map({container, ...mapOptions}); + map.on("load", function () { + console.log("Map loaded"); + mapLoaded.value = 1; }); - return draw; + hortis.libreMap.zoomControls(map, zoomDuration); + return map; }; +fluid.defaults("hortis.libreMap.withTiles", { + // TODO: Syntax for throwing away arguments + addTiles: "@expand:fluid.effect(hortis.libreMap.addTileLayers, {that}.map, {that}.options.tileSets, {that}.mapLoaded)" +}); + fluid.defaults("hortis.libreMap.streetmapTiles", { tileSets: { baseMap: { @@ -608,7 +595,7 @@ fluid.defaults("hortis.libreMap.usEcoL3Tiles", { tileSize: 512, maxzoom: 8, paint: { - "raster-opacity": 0.5 + "raster-opacity": 0.3 } } } @@ -653,7 +640,7 @@ fluid.defaults("hortis.libreMap.withObsGrid", { gradeNames: ["hortis.withTooltip"], tooltipKey: "hoverCell", fillStops: hortis.libreMap.viridisStops, - fillOpacity: 0.7, + fillOpacity: 0.5, outlineColour: "black", legendStops: 5, members: { diff --git a/src/client/js/new/polygon-draw.js b/src/client/js/new/polygon-draw.js new file mode 100644 index 00000000..ae13c427 --- /dev/null +++ b/src/client/js/new/polygon-draw.js @@ -0,0 +1,83 @@ +/* +Copyright 2017-2023 Antranig Basman +Licensed under the Educational Community License (ECL), Version 2.0 or the New +BSD license. You may not use this file except in compliance with one these +Licenses. +You may obtain a copy of the ECL 2.0 License and BSD License at +https://github.com/fluid-project/infusion/raw/master/Infusion-LICENSE.txt +*/ + +/* global MapboxDraw */ + +"use strict"; + +// Attested in demos and in https://github.com/maplibre/maplibre-gl-js/issues/2601 +MapboxDraw.constants.classes.CONTROL_BASE = "maplibregl-ctrl"; +MapboxDraw.constants.classes.CONTROL_PREFIX = "maplibregl-ctrl-"; +MapboxDraw.constants.classes.CONTROL_GROUP = "maplibregl-ctrl-group"; + +fluid.defaults("hortis.libreMap.withPolygonDraw", { + components: { + polygonDraw: { + type: "hortis.libreMap.polygonFilter" + } + } +}); + +// Currently combine draw UI and filter, could break apart +fluid.defaults("hortis.libreMap.polygonFilter", { + gradeNames: ["hortis.filter", "hortis.dataDrivenFilter", "fluid.component"], + mapboxDrawOptions: { + displayControlsDefault: false, + controls: { + polygon: true, + trash: true + } + }, + invokers: { + updateArea: "hortis.libreMap.polygonFilter.updateArea({that})", + doFilter: "hortis.libreMap.polygonFilter.doFilter({arguments}.0, {arguments}.1)", + reset: "hortis.libreMap.polygonFilter.reset({that})" + }, + members: { + // filterState holds "features" array from GeoJSON FeatureCollection + // Right now just initialises "point" member on each row but could intern and cache in future + pointCache: "@expand:fluid.effect(hortis.libreMap.polygonFilter.pointCache, {that}.obsRows)", + filterState: "@expand:signal([])", + drawMode: "@expand:signal(null)", + mapboxDraw: "@expand:hortis.libreMap.makeMapboxDraw({hortis.libreMap}.map, {that}.options.mapboxDrawOptions, {that}.updateArea, {that}.drawMode)" + } +}); + +hortis.libreMap.polygonFilter.pointCache = function (obsRows) { + // Taken from landlocked.js which seems to be only historical site feeding into point-in-polygon.js + obsRows.forEach(row => row.point = [hortis.parseFloat(row.decimalLongitude), hortis.parseFloat(row.decimalLatitude)]); +}; + +hortis.libreMap.polygonFilter.doFilter = function (obsRows, filterState) { + const none = filterState.length === 0; + + return none ? obsRows : obsRows.filter(row => hortis.intersectsAnyFeature(filterState, row)); +}; + +hortis.libreMap.polygonFilter.reset = function (that) { + that.mapboxDraw.deleteAll(); + that.filterState.value = []; +}; + +hortis.libreMap.polygonFilter.updateArea = function (that) { + that.filterState.value = that.mapboxDraw.getAll().features; +}; + +hortis.libreMap.makeMapboxDraw = function (map, mapboxDrawOptions, updateArea, drawMode) { + const draw = new MapboxDraw(mapboxDrawOptions); + map.addControl(draw); + map.on("draw.create", updateArea); + map.on("draw.delete", updateArea); + map.on("draw.update", updateArea); + map.on("draw.modechange", mode => { + console.log("New mode ", mode); + drawMode.value = mode; + }); + return draw; +}; \ No newline at end of file