@basemaps/landing 6.46.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +2 -4
  2. package/build/__tests__/config.debug.test.d.ts +0 -1
  3. package/build/__tests__/config.debug.test.js +11 -10
  4. package/build/__tests__/config.debug.test.js.map +1 -1
  5. package/build/__tests__/config.test.d.ts +0 -1
  6. package/build/__tests__/config.test.js +5 -4
  7. package/build/__tests__/config.test.js.map +1 -1
  8. package/build/__tests__/geojson.test.d.ts +0 -1
  9. package/build/__tests__/geojson.test.js +6 -5
  10. package/build/__tests__/geojson.test.js.map +1 -1
  11. package/build/__tests__/map.config.test.d.ts +0 -1
  12. package/build/__tests__/map.config.test.js +66 -65
  13. package/build/__tests__/map.config.test.js.map +1 -1
  14. package/build/__tests__/tile.matrix.test.d.ts +0 -1
  15. package/build/__tests__/tile.matrix.test.js +11 -10
  16. package/build/__tests__/tile.matrix.test.js.map +1 -1
  17. package/build/attribution.d.ts +8 -11
  18. package/build/attribution.js +145 -66
  19. package/build/attribution.js.map +1 -1
  20. package/build/components/copyable.d.ts +1 -2
  21. package/build/components/copyable.js +27 -18
  22. package/build/components/copyable.js.map +1 -1
  23. package/build/components/daterange.d.ts +0 -1
  24. package/build/components/daterange.js +11 -7
  25. package/build/components/daterange.js.map +1 -1
  26. package/build/components/debug.d.ts +13 -2
  27. package/build/components/debug.js +273 -78
  28. package/build/components/debug.js.map +1 -1
  29. package/build/components/layer.switcher.dropdown.d.ts +1 -2
  30. package/build/components/layer.switcher.dropdown.js +43 -29
  31. package/build/components/layer.switcher.dropdown.js.map +1 -1
  32. package/build/components/layout.footer.d.ts +0 -1
  33. package/build/components/layout.footer.js +7 -2
  34. package/build/components/layout.footer.js.map +1 -1
  35. package/build/components/layout.header.d.ts +1 -2
  36. package/build/components/layout.header.js +44 -23
  37. package/build/components/layout.header.js.map +1 -1
  38. package/build/components/link.d.ts +0 -1
  39. package/build/components/link.js +1 -1
  40. package/build/components/link.js.map +1 -1
  41. package/build/components/map.d.ts +14 -4
  42. package/build/components/map.js +221 -84
  43. package/build/components/map.js.map +1 -1
  44. package/build/components/map.switcher.d.ts +1 -2
  45. package/build/components/map.switcher.js +80 -31
  46. package/build/components/map.switcher.js.map +1 -1
  47. package/build/config.d.ts +0 -1
  48. package/build/config.debug.d.ts +6 -1
  49. package/build/config.debug.js +6 -0
  50. package/build/config.debug.js.map +1 -1
  51. package/build/config.js +4 -8
  52. package/build/config.js.map +1 -1
  53. package/build/config.layer.d.ts +31 -2
  54. package/build/config.layer.js +14 -6
  55. package/build/config.layer.js.map +1 -1
  56. package/build/config.map.d.ts +6 -6
  57. package/build/config.map.js +95 -29
  58. package/build/config.map.js.map +1 -1
  59. package/build/debug.map.d.ts +2 -3
  60. package/build/debug.map.js +57 -23
  61. package/build/debug.map.js.map +1 -1
  62. package/build/global.d.ts +3 -3
  63. package/build/index.d.ts +0 -1
  64. package/build/index.js.map +1 -1
  65. package/build/tile.matrix.d.ts +0 -1
  66. package/build/tile.matrix.js +12 -0
  67. package/build/tile.matrix.js.map +1 -1
  68. package/build/url.d.ts +4 -1
  69. package/build/url.js +10 -8
  70. package/build/url.js.map +1 -1
  71. package/build/webp.d.ts +0 -1
  72. package/build/webp.js.map +1 -1
  73. package/dist/docs/404.html +849 -0
  74. package/dist/docs/assets/images/favicon.png +0 -0
  75. package/dist/docs/assets/javascripts/bundle.6c14ae12.min.js +29 -0
  76. package/dist/docs/assets/javascripts/bundle.6c14ae12.min.js.map +7 -0
  77. package/dist/docs/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  78. package/dist/docs/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  79. package/dist/docs/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  80. package/dist/docs/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  81. package/dist/docs/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  82. package/dist/docs/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  83. package/dist/docs/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  84. package/dist/docs/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  85. package/dist/docs/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  86. package/dist/docs/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  87. package/dist/docs/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  88. package/dist/docs/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  89. package/dist/docs/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  90. package/dist/docs/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  91. package/dist/docs/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  92. package/dist/docs/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  93. package/dist/docs/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  94. package/dist/docs/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  95. package/dist/docs/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  96. package/dist/docs/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  97. package/dist/docs/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  98. package/dist/docs/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  99. package/dist/docs/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  100. package/dist/docs/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  101. package/dist/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  102. package/dist/docs/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  103. package/dist/docs/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  104. package/dist/docs/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  105. package/dist/docs/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  106. package/dist/docs/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  107. package/dist/docs/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  108. package/dist/docs/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  109. package/dist/docs/assets/javascripts/lunr/tinyseg.js +206 -0
  110. package/dist/docs/assets/javascripts/lunr/wordcut.js +6708 -0
  111. package/dist/docs/assets/javascripts/swagger-initializer.js +20 -0
  112. package/dist/docs/assets/javascripts/swagger-ui-bundle.js +3 -0
  113. package/dist/docs/assets/javascripts/swagger-ui-bundle.js.map +1 -0
  114. package/dist/docs/assets/javascripts/swagger-ui-es-bundle-core.js +3 -0
  115. package/dist/docs/assets/javascripts/swagger-ui-es-bundle-core.js.map +1 -0
  116. package/dist/docs/assets/javascripts/swagger-ui-es-bundle.js +3 -0
  117. package/dist/docs/assets/javascripts/swagger-ui-es-bundle.js.map +1 -0
  118. package/dist/docs/assets/javascripts/swagger-ui-standalone-preset.js +3 -0
  119. package/dist/docs/assets/javascripts/swagger-ui-standalone-preset.js.map +1 -0
  120. package/dist/docs/assets/javascripts/workers/search.f886a092.min.js +42 -0
  121. package/dist/docs/assets/javascripts/workers/search.f886a092.min.js.map +7 -0
  122. package/dist/docs/assets/stylesheets/main.fad675c6.min.css +1 -0
  123. package/dist/docs/assets/stylesheets/main.fad675c6.min.css.map +1 -0
  124. package/dist/docs/assets/stylesheets/palette.356b1318.min.css +1 -0
  125. package/dist/docs/assets/stylesheets/palette.356b1318.min.css.map +1 -0
  126. package/dist/docs/assets/stylesheets/swagger-ui-dark.css +833 -0
  127. package/dist/docs/assets/stylesheets/swagger-ui.css +3 -0
  128. package/dist/docs/assets/stylesheets/swagger-ui.css.map +1 -0
  129. package/dist/docs/assets/stylesheets/swagger-ui.js +2 -0
  130. package/dist/docs/assets/stylesheets/swagger-ui.js.map +1 -0
  131. package/dist/docs/assets/swagger-ui/oauth2-redirect.html +79 -0
  132. package/dist/docs/configuration/index.html +503 -0
  133. package/dist/docs/deployment/index.html +457 -0
  134. package/dist/docs/developer-guide/index.html +434 -0
  135. package/dist/docs/examples/_overview/index.html +413 -0
  136. package/dist/docs/examples/index.leaflet.xyz.3857.html +38 -0
  137. package/dist/docs/examples/index.maplibre.opacity.3857.html +215 -0
  138. package/dist/docs/examples/index.maplibre.vector.3857.html +45 -0
  139. package/dist/docs/examples/leaflet.xyz.3857/index.html +448 -0
  140. package/dist/docs/examples/maplibre.opacity.3857/index.html +625 -0
  141. package/dist/docs/examples/maplibre.vector.3857/index.html +455 -0
  142. package/dist/docs/index.css +3 -0
  143. package/dist/docs/index.html +623 -0
  144. package/dist/docs/linz-motif.svg +124 -0
  145. package/dist/docs/operator-guide/cog-quality/index.html +608 -0
  146. package/dist/docs/operator-guide/empty-tiles/index.html +513 -0
  147. package/dist/docs/operator-guide/gebco/index.html +479 -0
  148. package/dist/docs/operator-guide/index.html +413 -0
  149. package/dist/docs/operator-guide/quick-start/index.html +611 -0
  150. package/dist/docs/operator-guide/relief-shade/index.html +490 -0
  151. package/dist/docs/operator-guide/static/2023-06-26-gisborne-2023.png +0 -0
  152. package/dist/docs/operator-guide/static/quality__005_006_0_bilinear.webp +0 -0
  153. package/dist/docs/operator-guide/static/quality__005_006_0_lanczos.webp +0 -0
  154. package/dist/docs/operator-guide/static/quality__i6.bilinear.webp +0 -0
  155. package/dist/docs/operator-guide/static/quality__i6.cubic.webp +0 -0
  156. package/dist/docs/operator-guide/static/quality__i6.lanczos.webp +0 -0
  157. package/dist/docs/operator-guide/static/quality__resampling-overview.webp +0 -0
  158. package/dist/docs/operator-guide/static/quick-start__layers.png +0 -0
  159. package/dist/docs/operator-guide/static/relief__aerial.webp +0 -0
  160. package/dist/docs/operator-guide/static/relief__base.webp +0 -0
  161. package/dist/docs/operator-guide/static/relief__darken.webp +0 -0
  162. package/dist/docs/operator-guide/static/relief__lighten.webp +0 -0
  163. package/dist/docs/operator-guide/texture-shade/index.html +537 -0
  164. package/dist/docs/quick-start/index.html +419 -0
  165. package/dist/docs/sitemap.xml +98 -0
  166. package/dist/docs/sitemap.xml.gz +0 -0
  167. package/dist/docs/static/basemaps-service.png +0 -0
  168. package/dist/docs/static/tile-resize.png +0 -0
  169. package/dist/docs/static/workflow-run.png +0 -0
  170. package/dist/docs/user-guide/_get-started/index.html +602 -0
  171. package/dist/docs/user-guide/api-documentation/index.html +409 -0
  172. package/dist/docs/user-guide/api-documentation/swagger-c1884237.html +120 -0
  173. package/dist/docs/user-guide/swagger-api.json +393 -0
  174. package/dist/docs/user-guide/technical-documentation/index.html +930 -0
  175. package/package.json +17 -17
  176. package/CHANGELOG.md +0 -1374
  177. package/build/__tests__/config.debug.test.d.ts.map +0 -1
  178. package/build/__tests__/config.test.d.ts.map +0 -1
  179. package/build/__tests__/geojson.test.d.ts.map +0 -1
  180. package/build/__tests__/map.config.test.d.ts.map +0 -1
  181. package/build/__tests__/tile.matrix.test.d.ts.map +0 -1
  182. package/build/attribution.d.ts.map +0 -1
  183. package/build/components/copyable.d.ts.map +0 -1
  184. package/build/components/daterange.d.ts.map +0 -1
  185. package/build/components/debug.d.ts.map +0 -1
  186. package/build/components/layer.switcher.dropdown.d.ts.map +0 -1
  187. package/build/components/layout.footer.d.ts.map +0 -1
  188. package/build/components/layout.header.d.ts.map +0 -1
  189. package/build/components/link.d.ts.map +0 -1
  190. package/build/components/map.d.ts.map +0 -1
  191. package/build/components/map.switcher.d.ts.map +0 -1
  192. package/build/config.d.ts.map +0 -1
  193. package/build/config.debug.d.ts.map +0 -1
  194. package/build/config.layer.d.ts.map +0 -1
  195. package/build/config.map.d.ts.map +0 -1
  196. package/build/debug.map.d.ts.map +0 -1
  197. package/build/global.d.ts.map +0 -1
  198. package/build/index.d.ts.map +0 -1
  199. package/build/tile.matrix.d.ts.map +0 -1
  200. package/build/url.d.ts.map +0 -1
  201. package/build/webp.d.ts.map +0 -1
@@ -0,0 +1,79 @@
1
+ <!doctype html>
2
+ <html lang="en-US">
3
+ <head>
4
+ <title>Swagger UI: OAuth2 Redirect</title>
5
+ </head>
6
+ <body>
7
+ <script>
8
+ 'use strict';
9
+ function run () {
10
+ var oauth2 = window.opener.swaggerUIRedirectOauth2;
11
+ var sentState = oauth2.state;
12
+ var redirectUrl = oauth2.redirectUrl;
13
+ var isValid, qp, arr;
14
+
15
+ if (/code|token|error/.test(window.location.hash)) {
16
+ qp = window.location.hash.substring(1).replace('?', '&');
17
+ } else {
18
+ qp = location.search.substring(1);
19
+ }
20
+
21
+ arr = qp.split("&");
22
+ arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';});
23
+ qp = qp ? JSON.parse('{' + arr.join() + '}',
24
+ function (key, value) {
25
+ return key === "" ? value : decodeURIComponent(value);
26
+ }
27
+ ) : {};
28
+
29
+ isValid = qp.state === sentState;
30
+
31
+ if ((
32
+ oauth2.auth.schema.get("flow") === "accessCode" ||
33
+ oauth2.auth.schema.get("flow") === "authorizationCode" ||
34
+ oauth2.auth.schema.get("flow") === "authorization_code"
35
+ ) && !oauth2.auth.code) {
36
+ if (!isValid) {
37
+ oauth2.errCb({
38
+ authId: oauth2.auth.name,
39
+ source: "auth",
40
+ level: "warning",
41
+ message: "Authorization may be unsafe, passed state was changed in server. The passed state wasn't returned from auth server."
42
+ });
43
+ }
44
+
45
+ if (qp.code) {
46
+ delete oauth2.state;
47
+ oauth2.auth.code = qp.code;
48
+ oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
49
+ } else {
50
+ let oauthErrorMsg;
51
+ if (qp.error) {
52
+ oauthErrorMsg = "["+qp.error+"]: " +
53
+ (qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
54
+ (qp.error_uri ? "More info: "+qp.error_uri : "");
55
+ }
56
+
57
+ oauth2.errCb({
58
+ authId: oauth2.auth.name,
59
+ source: "auth",
60
+ level: "error",
61
+ message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server."
62
+ });
63
+ }
64
+ } else {
65
+ oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
66
+ }
67
+ window.close();
68
+ }
69
+
70
+ if (document.readyState !== 'loading') {
71
+ run();
72
+ } else {
73
+ document.addEventListener('DOMContentLoaded', function () {
74
+ run();
75
+ });
76
+ }
77
+ </script>
78
+ </body>
79
+ </html>
@@ -0,0 +1,503 @@
1
+
2
+ <!DOCTYPE html>
3
+
4
+ <html class="no-js" lang="en">
5
+ <head>
6
+ <meta charset="utf-8"/>
7
+ <meta content="width=device-width,initial-scale=1" name="viewport"/>
8
+ <link href="http://localhost:8000/docs/configuration/" rel="canonical"/>
9
+ <link href=".." rel="prev"/>
10
+ <link href="../deployment/" rel="next"/>
11
+ <link href="../assets/images/favicon.png" rel="icon"/>
12
+ <meta content="mkdocs-1.5.3, mkdocs-material-9.4.10" name="generator"/>
13
+ <title>Configuration - LINZ Basemaps</title>
14
+ <link href="../assets/stylesheets/main.fad675c6.min.css" rel="stylesheet"/>
15
+ <link href="../assets/stylesheets/palette.356b1318.min.css" rel="stylesheet"/>
16
+ <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
17
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i%7COpen+Sans+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
18
+ <style>:root{--md-text-font:"Open Sans";--md-code-font:"Open Sans Mono"}</style>
19
+ <link href="../index.css" rel="stylesheet"/>
20
+ <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
21
+ <script id="__analytics">function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config",""),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script>
22
+ <script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
23
+ </head>
24
+ <body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
25
+ <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
26
+ <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
27
+ <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
28
+ <label class="md-overlay" for="__drawer"></label>
29
+ <div data-md-component="skip">
30
+ <a class="md-skip" href="#configuration">
31
+ Skip to content
32
+ </a>
33
+ </div>
34
+ <div data-md-component="announce">
35
+ </div>
36
+ <header class="md-header md-header--shadow" data-md-component="header">
37
+ <nav aria-label="Header" class="md-header__inner md-grid">
38
+ <a aria-label="LINZ Basemaps" class="md-header__button md-logo" data-md-component="logo" href=".." title="LINZ Basemaps">
39
+ <img alt="logo" src="../linz-motif.svg"/>
40
+ </a>
41
+ <label class="md-header__button md-icon" for="__drawer">
42
+ <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
43
+ </label>
44
+ <div class="md-header__title" data-md-component="header-title">
45
+ <div class="md-header__ellipsis">
46
+ <div class="md-header__topic">
47
+ <span class="md-ellipsis">
48
+ LINZ Basemaps
49
+ </span>
50
+ </div>
51
+ <div class="md-header__topic" data-md-component="header-topic">
52
+ <span class="md-ellipsis">
53
+
54
+ Configuration
55
+
56
+ </span>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <form class="md-header__option" data-md-component="palette">
61
+ <input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
62
+ <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
63
+ <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
64
+ </label>
65
+ <input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
66
+ <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
67
+ <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
68
+ </label>
69
+ </form>
70
+ <div class="md-header__source">
71
+ <a class="md-source" data-md-component="source" href="https://github.com/linz/basemaps" title="Go to repository">
72
+ <div class="md-source__icon md-icon">
73
+ <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
74
+ </div>
75
+ <div class="md-source__repository">
76
+ GitHub
77
+ </div>
78
+ </a>
79
+ </div>
80
+ </nav>
81
+ </header>
82
+ <div class="md-container" data-md-component="container">
83
+ <main class="md-main" data-md-component="main">
84
+ <div class="md-main__inner md-grid">
85
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
86
+ <div class="md-sidebar__scrollwrap">
87
+ <div class="md-sidebar__inner">
88
+ <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
89
+ <label class="md-nav__title" for="__drawer">
90
+ <a aria-label="LINZ Basemaps" class="md-nav__button md-logo" data-md-component="logo" href=".." title="LINZ Basemaps">
91
+ <img alt="logo" src="../linz-motif.svg"/>
92
+ </a>
93
+ LINZ Basemaps
94
+ </label>
95
+ <div class="md-nav__source">
96
+ <a class="md-source" data-md-component="source" href="https://github.com/linz/basemaps" title="Go to repository">
97
+ <div class="md-source__icon md-icon">
98
+ <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
99
+ </div>
100
+ <div class="md-source__repository">
101
+ GitHub
102
+ </div>
103
+ </a>
104
+ </div>
105
+ <ul class="md-nav__list" data-md-scrollfix="">
106
+ <li class="md-nav__item">
107
+ <a class="md-nav__link" href="..">
108
+ <span class="md-ellipsis">
109
+ LINZ Basemaps
110
+ </span>
111
+ </a>
112
+ </li>
113
+ <li class="md-nav__item md-nav__item--active">
114
+ <input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
115
+ <label class="md-nav__link md-nav__link--active" for="__toc">
116
+ <span class="md-ellipsis">
117
+ Configuration
118
+ </span>
119
+ <span class="md-nav__icon md-icon"></span>
120
+ </label>
121
+ <a class="md-nav__link md-nav__link--active" href="./">
122
+ <span class="md-ellipsis">
123
+ Configuration
124
+ </span>
125
+ </a>
126
+ <nav aria-label="Table of contents" class="md-nav md-nav--secondary">
127
+ <label class="md-nav__title" for="__toc">
128
+ <span class="md-nav__icon md-icon"></span>
129
+ Table of contents
130
+ </label>
131
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
132
+ <li class="md-nav__item">
133
+ <a class="md-nav__link" href="#configuration">
134
+ <span class="md-ellipsis">
135
+ Configuration
136
+ </span>
137
+ </a>
138
+ <nav aria-label="Configuration" class="md-nav">
139
+ <ul class="md-nav__list">
140
+ <li class="md-nav__item">
141
+ <a class="md-nav__link" href="#dynamic-configuration">
142
+ <span class="md-ellipsis">
143
+ Dynamic configuration
144
+ </span>
145
+ </a>
146
+ </li>
147
+ </ul>
148
+ </nav>
149
+ </li>
150
+ </ul>
151
+ </nav>
152
+ </li>
153
+ <li class="md-nav__item">
154
+ <a class="md-nav__link" href="../deployment/">
155
+ <span class="md-ellipsis">
156
+ Deployment
157
+ </span>
158
+ </a>
159
+ </li>
160
+ <li class="md-nav__item">
161
+ <a class="md-nav__link" href="../quick-start/">
162
+ <span class="md-ellipsis">
163
+ Quick start guide
164
+ </span>
165
+ </a>
166
+ </li>
167
+ <li class="md-nav__item md-nav__item--nested">
168
+ <input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/>
169
+ <div class="md-nav__link md-nav__container">
170
+ <a class="md-nav__link" href="../developer-guide/">
171
+ <span class="md-ellipsis">
172
+ Developer guide
173
+ </span>
174
+ </a>
175
+ </div>
176
+ <nav aria-expanded="false" aria-labelledby="__nav_5_label" class="md-nav" data-md-level="1">
177
+ <label class="md-nav__title" for="__nav_5">
178
+ <span class="md-nav__icon md-icon"></span>
179
+ Developer guide
180
+ </label>
181
+ <ul class="md-nav__list" data-md-scrollfix="">
182
+ </ul>
183
+ </nav>
184
+ </li>
185
+ <li class="md-nav__item md-nav__item--nested">
186
+ <input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/>
187
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
188
+ <span class="md-ellipsis">
189
+ Examples
190
+ </span>
191
+ <span class="md-nav__icon md-icon"></span>
192
+ </label>
193
+ <nav aria-expanded="false" aria-labelledby="__nav_6_label" class="md-nav" data-md-level="1">
194
+ <label class="md-nav__title" for="__nav_6">
195
+ <span class="md-nav__icon md-icon"></span>
196
+ Examples
197
+ </label>
198
+ <ul class="md-nav__list" data-md-scrollfix="">
199
+ <li class="md-nav__item">
200
+ <a class="md-nav__link" href="../examples/_overview/">
201
+ <span class="md-ellipsis">
202
+ Overview
203
+ </span>
204
+ </a>
205
+ </li>
206
+ <li class="md-nav__item">
207
+ <a class="md-nav__link" href="../examples/leaflet.xyz.3857/">
208
+ <span class="md-ellipsis">
209
+ Leaflet Raster Map
210
+ </span>
211
+ </a>
212
+ </li>
213
+ <li class="md-nav__item">
214
+ <a class="md-nav__link" href="../examples/maplibre.opacity.3857/">
215
+ <span class="md-ellipsis">
216
+ Maplibre Opacity Slider
217
+ </span>
218
+ </a>
219
+ </li>
220
+ <li class="md-nav__item">
221
+ <a class="md-nav__link" href="../examples/maplibre.vector.3857/">
222
+ <span class="md-ellipsis">
223
+ Maplibre Vector Map
224
+ </span>
225
+ </a>
226
+ </li>
227
+ </ul>
228
+ </nav>
229
+ </li>
230
+ <li class="md-nav__item md-nav__item--nested">
231
+ <input class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/>
232
+ <div class="md-nav__link md-nav__container">
233
+ <a class="md-nav__link" href="../operator-guide/">
234
+ <span class="md-ellipsis">
235
+ Operator guide
236
+ </span>
237
+ </a>
238
+ <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
239
+ <span class="md-nav__icon md-icon"></span>
240
+ </label>
241
+ </div>
242
+ <nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
243
+ <label class="md-nav__title" for="__nav_7">
244
+ <span class="md-nav__icon md-icon"></span>
245
+ Operator guide
246
+ </label>
247
+ <ul class="md-nav__list" data-md-scrollfix="">
248
+ <li class="md-nav__item">
249
+ <a class="md-nav__link" href="../operator-guide/cog-quality/">
250
+ <span class="md-ellipsis">
251
+ COG Quality
252
+ </span>
253
+ </a>
254
+ </li>
255
+ <li class="md-nav__item">
256
+ <a class="md-nav__link" href="../operator-guide/empty-tiles/">
257
+ <span class="md-ellipsis">
258
+ Sparse Datasets and empty tiles
259
+ </span>
260
+ </a>
261
+ </li>
262
+ <li class="md-nav__item">
263
+ <a class="md-nav__link" href="../operator-guide/gebco/">
264
+ <span class="md-ellipsis">
265
+ Gebco re-project to NZTM2000Quad cog file
266
+ </span>
267
+ </a>
268
+ </li>
269
+ <li class="md-nav__item">
270
+ <a class="md-nav__link" href="../operator-guide/quick-start/">
271
+ <span class="md-ellipsis">
272
+ Running LINZ Basemaps - Quick Start
273
+ </span>
274
+ </a>
275
+ </li>
276
+ <li class="md-nav__item">
277
+ <a class="md-nav__link" href="../operator-guide/relief-shade/">
278
+ <span class="md-ellipsis">
279
+ Relief shade
280
+ </span>
281
+ </a>
282
+ </li>
283
+ <li class="md-nav__item">
284
+ <a class="md-nav__link" href="../operator-guide/texture-shade/">
285
+ <span class="md-ellipsis">
286
+ Texture shading
287
+ </span>
288
+ </a>
289
+ </li>
290
+ </ul>
291
+ </nav>
292
+ </li>
293
+ <li class="md-nav__item md-nav__item--nested">
294
+ <input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
295
+ <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
296
+ <span class="md-ellipsis">
297
+ User guide
298
+ </span>
299
+ <span class="md-nav__icon md-icon"></span>
300
+ </label>
301
+ <nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
302
+ <label class="md-nav__title" for="__nav_8">
303
+ <span class="md-nav__icon md-icon"></span>
304
+ User guide
305
+ </label>
306
+ <ul class="md-nav__list" data-md-scrollfix="">
307
+ <li class="md-nav__item">
308
+ <a class="md-nav__link" href="../user-guide/_get-started/">
309
+ <span class="md-ellipsis">
310
+ Get started with LINZ Basemaps
311
+ </span>
312
+ </a>
313
+ </li>
314
+ <li class="md-nav__item">
315
+ <a class="md-nav__link" href="../user-guide/api-documentation/">
316
+ <span class="md-ellipsis">
317
+ API documentation
318
+ </span>
319
+ </a>
320
+ </li>
321
+ <li class="md-nav__item">
322
+ <a class="md-nav__link" href="../user-guide/technical-documentation/">
323
+ <span class="md-ellipsis">
324
+ Technical documentation and specifications
325
+ </span>
326
+ </a>
327
+ </li>
328
+ </ul>
329
+ </nav>
330
+ </li>
331
+ </ul>
332
+ </nav>
333
+ </div>
334
+ </div>
335
+ </div>
336
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
337
+ <div class="md-sidebar__scrollwrap">
338
+ <div class="md-sidebar__inner">
339
+ <nav aria-label="Table of contents" class="md-nav md-nav--secondary">
340
+ <label class="md-nav__title" for="__toc">
341
+ <span class="md-nav__icon md-icon"></span>
342
+ Table of contents
343
+ </label>
344
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
345
+ <li class="md-nav__item">
346
+ <a class="md-nav__link" href="#configuration">
347
+ <span class="md-ellipsis">
348
+ Configuration
349
+ </span>
350
+ </a>
351
+ <nav aria-label="Configuration" class="md-nav">
352
+ <ul class="md-nav__list">
353
+ <li class="md-nav__item">
354
+ <a class="md-nav__link" href="#dynamic-configuration">
355
+ <span class="md-ellipsis">
356
+ Dynamic configuration
357
+ </span>
358
+ </a>
359
+ </li>
360
+ </ul>
361
+ </nav>
362
+ </li>
363
+ </ul>
364
+ </nav>
365
+ </div>
366
+ </div>
367
+ </div>
368
+ <div class="md-content" data-md-component="content">
369
+ <article class="md-content__inner md-typeset">
370
+ <h1>Configuration</h1>
371
+ <h2 id="configuration">Configuration</h2>
372
+ <p>Basemaps has two main components to its configuration</p>
373
+ <ul>
374
+ <li>Imagery - List of tiffs that make up a imagery set</li>
375
+ <li>TileSet - List of imagery or vector layers that make up a output layer.</li>
376
+ </ul>
377
+ <p>The configuration can be stored as individual AWS DynamoDB objects or can be stored as a bundled JSON object.</p>
378
+ <p>The configuration is generally generated directly from the source tiffs and associated STAC metadata using the <a href="../packages/cli/README.md">@basemaps/cli</a> import process, with LINZ's specific configuration being stored in <a href="https://github.com/linz/basemaps-config">linz/basemaps-config</a>.</p>
379
+ <p>This allows the configuration objects to be somewhat short, below is a snippet from the <a href="https://github.com/linz/basemaps-config/blob/master/config/tileset/aerial.json">aerial</a> tile set configuration which layers 100+ aerial imagery layers together.</p>
380
+ <div class="language-json highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="p">{</span>
381
+ </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="w"> </span><span class="c1">// Raster or Vector layer</span>
382
+ </span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"raster"</span><span class="p">,</span>
383
+ </span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="w"> </span><span class="c1">// all id's are prefixed by type eg 'ts_' is TileSet</span>
384
+ </span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ts_aerial"</span><span class="p">,</span>
385
+ </span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="w"> </span><span class="c1">// Human friendly name</span>
386
+ </span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="w"> </span><span class="nt">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Aerial Imagery Basemap"</span><span class="p">,</span>
387
+ </span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="w"> </span><span class="nt">"category"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Basemaps"</span><span class="p">,</span>
388
+ </span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="w"> </span><span class="c1">// If there is no data create a background color as hex RGBA</span>
389
+ </span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="w"> </span><span class="nt">"background"</span><span class="p">:</span><span class="w"> </span><span class="s2">"dce9edff"</span><span class="p">,</span>
390
+ </span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="w"> </span><span class="nt">"layers"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
391
+ </span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="w"> </span><span class="p">{</span>
392
+ </span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="w"> </span><span class="c1">// Source location for EPSG:2193 Imagery</span>
393
+ </span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="w"> </span><span class="nt">"2193"</span><span class="p">:</span><span class="w"> </span><span class="s2">"s3://linz-basemaps/2193/gebco_2020_Nztm2000Quad_305-75m/01F1BFJN8R8P7BXN3XTHC5MT5G"</span><span class="p">,</span>
394
+ </span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="w"> </span><span class="c1">// Source location for EPSG:3857 Imagery</span>
395
+ </span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="nt">"3857"</span><span class="p">:</span><span class="w"> </span><span class="s2">"s3://linz-basemaps/3857/gebco_2020_305-75m/01EDMTM3P563P06TWYQAZRA9F6"</span><span class="p">,</span>
396
+ </span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="c1">// url/slug friendly name of the imagery set</span>
397
+ </span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"gebco-2020-305.75m"</span><span class="p">,</span>
398
+ </span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="c1">// At what level should the imagery be turned off</span>
399
+ </span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="nt">"maxZoom"</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span>
400
+ </span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="w"> </span><span class="c1">// Human friendly name for the imagery</span>
401
+ </span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="w"> </span><span class="nt">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"GEBCO Gridded Bathymetry (2020)"</span><span class="p">,</span>
402
+ </span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="w"> </span><span class="nt">"category"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Bathymetry"</span>
403
+ </span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="w"> </span><span class="p">},</span>
404
+ </span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="w"> </span><span class="err">...</span>
405
+ </span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a><span class="w"> </span><span class="p">]</span>
406
+ </span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="p">}</span>
407
+ </span></code></pre></div>
408
+ <p>When this configuration is imported it will list all of the source locations looking for <code>collection.json</code> and <code>*.tiff|*.tif</code> files.</p>
409
+ <h3 id="dynamic-configuration">Dynamic configuration</h3>
410
+ <p>Configuration can be stored as single JSON object in s3 and then passed directly to the basemaps service with <code>?config=s3://linz-basemaps/config/config-latest.json.gz</code> this allows basemaps to preview a configuration before being deployed.</p>
411
+ </article>
412
+ </div>
413
+ </div>
414
+ </main>
415
+ <footer class="md-footer">
416
+ <div class="md-footer-meta md-typeset">
417
+ <div class="md-footer-meta__inner md-grid">
418
+ <div class="md-copyright">
419
+ <div class="md-copyright__highlight">
420
+ <a href="https://www.linz.govt.nz/copyright">© CC BY 4.0 LINZ</a>
421
+ </div>
422
+
423
+
424
+ Made with
425
+ <a href="https://squidfunk.github.io/mkdocs-material/" rel="noopener" target="_blank">
426
+ Material for MkDocs
427
+ </a>
428
+ </div>
429
+ </div>
430
+ </div>
431
+ </footer>
432
+ </div>
433
+ <div class="md-dialog" data-md-component="dialog">
434
+ <div class="md-dialog__inner md-typeset"></div>
435
+ </div>
436
+ <script id="__config" type="application/json">{"base": "..", "features": ["navigation.indexes", "content.code.copy"], "search": "../assets/javascripts/workers/search.f886a092.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
437
+ <script src="../assets/javascripts/bundle.6c14ae12.min.js"></script>
438
+ <script>document$.subscribe(() => {
439
+ window.update_swagger_ui_iframe_height = function (id) {
440
+ var iFrameID = document.getElementById(id);
441
+ if (iFrameID) {
442
+ full_height = (iFrameID.contentWindow.document.body.scrollHeight + 80) + "px";
443
+ iFrameID.height = full_height;
444
+ iFrameID.style.height = full_height;
445
+ }
446
+ }
447
+
448
+ let iframe_id_list = []
449
+ var iframes = document.getElementsByClassName("swagger-ui-iframe");
450
+ for (var i = 0; i < iframes.length; i++) {
451
+ iframe_id_list.push(iframes[i].getAttribute("id"))
452
+ }
453
+
454
+ let ticking = true;
455
+
456
+ document.addEventListener('scroll', function(e) {
457
+ if (!ticking) {
458
+ window.requestAnimationFrame(()=> {
459
+ let half_vh = window.innerHeight/2;
460
+ for(var i = 0; i < iframe_id_list.length; i++) {
461
+ let element = document.getElementById(iframe_id_list[i])
462
+ if(element==null){
463
+ return
464
+ }
465
+ let diff = element.getBoundingClientRect().top
466
+ if(element.contentWindow.update_top_val){
467
+ element.contentWindow.update_top_val(half_vh - diff)
468
+ }
469
+ }
470
+ ticking = false;
471
+ });
472
+ ticking = true;
473
+ }
474
+ });
475
+
476
+ const dark_scheme_name = "slate"
477
+
478
+ window.scheme = document.body.getAttribute("data-md-color-scheme")
479
+ const options = {
480
+ attributeFilter: ['data-md-color-scheme'],
481
+ };
482
+ function color_scheme_callback(mutations) {
483
+ for (let mutation of mutations) {
484
+ if (mutation.attributeName === "data-md-color-scheme") {
485
+ scheme = document.body.getAttribute("data-md-color-scheme")
486
+ var iframe_list = document.getElementsByClassName("swagger-ui-iframe")
487
+ for(var i = 0; i < iframe_list.length; i++) {
488
+ var ele = iframe_list.item(i);
489
+ if (ele) {
490
+ if (scheme === dark_scheme_name) {
491
+ ele.contentWindow.enable_dark_mode();
492
+ } else {
493
+ ele.contentWindow.disable_dark_mode();
494
+ }
495
+ }
496
+ }
497
+ }
498
+ }
499
+ }
500
+ observer = new MutationObserver(color_scheme_callback);
501
+ observer.observe(document.body, options);
502
+ })</script></body>
503
+ </html>