mobility-toolbox-js 2.0.0-beta.6 → 2.0.0-beta.8

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 (55) hide show
  1. package/package.json +1 -1
  2. package/src/common/index.js +5 -0
  3. package/src/common/styles/index.js +1 -1
  4. package/src/common/utils/index.js +0 -1
  5. package/src/iife.js +2 -2
  6. package/src/index.js +8 -23
  7. package/src/mapbox/controls/index.js +2 -0
  8. package/src/mapbox/index.js +4 -3
  9. package/src/mapbox/layers/index.js +2 -0
  10. package/src/ol/controls/index.js +3 -0
  11. package/src/ol/index.js +4 -12
  12. package/src/ol/layers/index.js +8 -0
  13. package/Layer.js +0 -2
  14. package/Layer.js.map +0 -7
  15. package/src/doc/components/esm.min.js +0 -2
  16. package/src/doc/components/examples/assets/tralis-live-map/index.js +0 -11
  17. package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +0 -105
  18. package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +0 -101
  19. package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +0 -95
  20. package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +0 -95
  21. package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +0 -95
  22. package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +0 -95
  23. package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +0 -95
  24. package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +0 -93
  25. package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +0 -107
  26. package/src/doc/components/examples/mb-copyright.html +0 -26
  27. package/src/doc/components/examples/mb-copyright.js +0 -37
  28. package/src/doc/components/examples/mb-tracker.html +0 -1
  29. package/src/doc/components/examples/mb-tracker.js +0 -39
  30. package/src/doc/components/examples/mb-tracker.md +0 -1
  31. package/src/doc/components/examples/mb-tralis.html +0 -1
  32. package/src/doc/components/examples/mb-tralis.js +0 -34
  33. package/src/doc/components/examples/ol-copyright.html +0 -26
  34. package/src/doc/components/examples/ol-copyright.js +0 -43
  35. package/src/doc/components/examples/ol-mapbox-layer.html +0 -1
  36. package/src/doc/components/examples/ol-mapbox-layer.js +0 -28
  37. package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
  38. package/src/doc/components/examples/ol-mapbox-style-layer.html +0 -12
  39. package/src/doc/components/examples/ol-mapbox-style-layer.js +0 -44
  40. package/src/doc/components/examples/ol-query.html +0 -32
  41. package/src/doc/components/examples/ol-query.js +0 -83
  42. package/src/doc/components/examples/ol-routing.html +0 -26
  43. package/src/doc/components/examples/ol-routing.js +0 -59
  44. package/src/doc/components/examples/ol-routing.md +0 -1
  45. package/src/doc/components/examples/ol-stop-finder.html +0 -15
  46. package/src/doc/components/examples/ol-stop-finder.js +0 -31
  47. package/src/doc/components/examples/ol-stop-finder.md +0 -1
  48. package/src/doc/components/examples/ol-tracker.html +0 -1
  49. package/src/doc/components/examples/ol-tracker.js +0 -44
  50. package/src/doc/components/examples/ol-tracker.md +0 -1
  51. package/src/doc/components/examples/ol-tralis.html +0 -5
  52. package/src/doc/components/examples/ol-tralis.js +0 -57
  53. package/src/doc/components/examples/tralis-live-map.html +0 -1
  54. package/src/doc/components/examples/tralis-live-map.js +0 -51
  55. package/src/doc/components/examples/tralis-live-map.md +0 -3
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "mobility-toolbox-js",
3
3
  "license": "MIT",
4
4
  "description": "Toolbox for JavaScript applications in the domains of mobility and logistics.",
5
- "version": "2.0.0-beta.6",
5
+ "version": "2.0.0-beta.8",
6
6
  "main": "index.js",
7
7
  "module": "esm.js",
8
8
  "dependencies": {
@@ -0,0 +1,5 @@
1
+ export { default as Tracker } from './Tracker';
2
+ export * as trackerConfig from './trackerConfig';
3
+
4
+ export * from './utils';
5
+ export * from './styles';
@@ -1,4 +1,4 @@
1
1
  export { default as trackerDefaultStyle } from './trackerDefaultStyle';
2
2
  export { default as trackerDelayStyle } from './trackerDelayStyle';
3
- export * from './trackerDefaultStyle';
4
3
  export { default as trackerSimpleStyle } from './trackerSimpleStyle';
4
+ export * from './trackerDefaultStyle';
@@ -2,5 +2,4 @@ export { default as getMapboxStyleUrl } from './getMapboxStyleUrl';
2
2
  export { default as getMapboxMapCopyrights } from './getMapboxMapCopyrights';
3
3
  export { default as removeDuplicate } from './removeDuplicate';
4
4
  export * from './timeUtils';
5
- export * from '../styles';
6
5
  export { default as sortByDelay } from './sortByDelay';
package/src/iife.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import mbt from './index';
2
2
 
3
3
  if (typeof window !== 'undefined') {
4
- window.mbt = mbt
5
- };
4
+ window.mbt = mbt;
5
+ }
6
6
 
7
7
  export default mbt;
package/src/index.js CHANGED
@@ -1,25 +1,10 @@
1
- import {
2
- Layer as olLayer,
3
- WMSLayer as olWMSLayer,
4
- MapboxLayer as olMapboxLayer,
5
- MaplibreLayer as olMaplibreLayer,
6
- TralisLayer as olTralisLayer,
7
- VectorLayer as olVectorLayer,
8
- } from './ol';
9
- import { TralisLayer as mbTralisLayer } from './mapbox';
1
+ import * as ol from './ol';
2
+ import * as mapbox from './mapbox';
10
3
 
11
- const exports = {
12
- mapbox: {
13
- TralisLayer: mbTralisLayer,
14
- },
15
- ol: {
16
- Layer: olLayer,
17
- WMSLayer: olWMSLayer,
18
- MaplibreLayer: olMaplibreLayer,
19
- MapboxLayer: olMapboxLayer,
20
- TralisLayer: olTralisLayer,
21
- VectorLayer: olVectorLayer,
22
- },
23
- };
4
+ export * as ol from './ol';
5
+ export * as mapbox from './mapbox';
24
6
 
25
- export default exports;
7
+ export default {
8
+ ol,
9
+ mapbox,
10
+ };
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line import/prefer-default-export
2
+ export { default as CopyrightControl } from './CopyrightControl';
@@ -1,3 +1,4 @@
1
- // eslint-disable-next-line import/prefer-default-export
2
- export { default as TralisLayer } from './layers/TralisLayer';
3
- export { default as CopyrightControl } from './controls/CopyrightControl';
1
+ export * from '../api';
2
+ export * from '../common';
3
+ export * from './controls';
4
+ export * from './layers';
@@ -0,0 +1,2 @@
1
+ export { default as Layer } from './Layer';
2
+ export { default as TralisLayer } from './TralisLayer';
@@ -0,0 +1,3 @@
1
+ export { default as CopyrightControl } from './CopyrightControl';
2
+ export { default as RoutingControl } from './RoutingControl';
3
+ export { default as StopFinderControl } from './StopFinderControl';
package/src/ol/index.js CHANGED
@@ -1,13 +1,5 @@
1
- export { default as Layer } from './layers/Layer';
2
- export { default as MapboxLayer } from './layers/MapboxLayer';
3
- export { default as MaplibreLayer } from './layers/MaplibreLayer';
4
- export { default as MapboxStyleLayer } from './layers/MapboxStyleLayer';
5
- export { default as RoutingLayer } from './layers/RoutingLayer';
6
- export { default as TralisLayer } from './layers/TralisLayer';
7
- export { default as VectorLayer } from './layers/VectorLayer';
8
- export { default as WMSLayer } from './layers/WMSLayer';
9
- export { default as CopyrightControl } from './controls/CopyrightControl';
10
- export { default as RoutingControl } from './controls/RoutingControl';
11
- export { default as StopFinderControl } from './controls/StopFinderControl';
12
- export * from '../common/styles';
1
+ export * from '../api';
2
+ export * from '../common';
3
+ export * from './controls';
4
+ export * from './layers';
13
5
  export * from './styles';
@@ -0,0 +1,8 @@
1
+ export { default as Layer } from './Layer';
2
+ export { default as MapboxLayer } from './MapboxLayer';
3
+ export { default as MaplibreLayer } from './MaplibreLayer';
4
+ export { default as MapboxStyleLayer } from './MapboxStyleLayer';
5
+ export { default as RoutingLayer } from './RoutingLayer';
6
+ export { default as TralisLayer } from './TralisLayer';
7
+ export { default as VectorLayer } from './VectorLayer';
8
+ export { default as WMSLayer } from './WMSLayer';
package/Layer.js DELETED
@@ -1,2 +0,0 @@
1
- import{unByKey as r}from"ol/Observable";import h from"ol/layer/Group";import l from"../../common/layers/Layer";class t extends l{constructor(e){super(e),this.olLayer&&this.olLayer.setVisible(this.visible)}defineProperties(e){super.defineProperties(e),Object.defineProperties(this,{olLayer:{value:e.olLayer,writable:!0},olListenersKeys:{value:[]}})}init(e){if(super.init(e),!!this.map&&(this.map&&this.olLayer&&this.map.addLayer(this.olLayer),this.olListenersKeys.push(this.map.getLayers().on("remove",i=>{i.element===this.olLayer&&this.terminate()})),(this.isClickActive||this.isHoverActive)&&(this.toggleVisibleListeners(),this.olListenersKeys.push(this.on("change:visible",this.toggleVisibleListeners))),this.copyrights&&this.olLayer)){const i=this.copyrights||[];this.olLayer instanceof h?this.olLayer.getLayers().getArray().forEach(s=>{s.getSource().setAttributions(i)}):this.olLayer.getSource&&this.olLayer.getSource().setAttributions(i)}}terminate(){r(this.olListenersKeys),this.map&&this.olLayer&&this.map.removeLayer(this.olLayer),super.terminate()}setVisible(e,i=!1,s=!1,o=!1){e!==this.visible&&(super.setVisible(e,i,s,o),this.olLayer&&this.olLayer.setVisible(this.visible))}toggleVisibleListeners(){this.isClickListenerKey&&this.isHoverListenerKey&&[this.isClickListenerKey,this.isHoverListenerKey].forEach(e=>{const i=this.olListenersKeys.indexOf(e);i>-1&&this.olListenersKeys.splice(i,1),r([this.isHoverListenerKey,this.isClickListenerKey])}),this.visible&&(this.isClickActive&&(this.isClickListenerKey=this.map.on("singleclick",this.onUserClickCallback)),this.isHoverActive&&(this.isHoverListenerKey=this.map.on("pointermove",this.onUserMoveCallback)),this.olListenersKeys.push(this.isClickListenerKey,this.isHoverListenerKey))}clone(e){return new t({...this.options,...e})}}export default t;
2
- //# sourceMappingURL=Layer.js.map
package/Layer.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["src/ol/layers/Layer.js"],
4
- "sourcesContent": ["import { unByKey } from 'ol/Observable';\nimport Group from 'ol/layer/Group';\nimport LayerCommon from '../../common/layers/Layer';\n\n/**\n * A class representing a layer to display on an OpenLayers map.\n *\n * @example\n * import { Layer } from 'mobility-toolbox-js/ol';\n *\n * const layer = new Layer({\n * olLayer: ...,\n * });\n *\n * @see <a href=\"/example/ol-map\">Map example</a>\n *\n * @classproperty {ol/Map~Map} map - The map where the layer is displayed.\n * @extends {Layer}\n */\nclass Layer extends LayerCommon {\n /**\n * Constructor.\n *\n * @param {Object} options\n * @param {ol/layer/Layer~Layer} options.olLayer The layer (required).\n * @param {string} [options.name=uuid()] Layer name. Default use a generated uuid.\n * @param {string} [options.key=uuid().toLowerCase()] Layer key, will use options.name.toLowerCase() if not specified.\n * @param {string} [options.copyright=undefined] Copyright-Statement.\n * @param {Array<Layer>} [options.children=[]] Sublayers.\n * @param {Object} [options.properties={}] Application-specific layer properties.\n * @param {boolean} [options.visible=true] If true this layer is the currently visible layer on the map.\n * @param {boolean} [options.isBaseLayer=false] If true this layer is a baseLayer.\n * @param {boolean} [options.isQueryable=true] If true feature information can be queried by the react-spatial LayerService. Default is true.\n * @param {boolean} [options.isClickActive=true] If true feature information will be queried on 'singleclick' event. All results will be passed to function registered using `onClick` function. Default is true.\n */\n constructor(options) {\n super(options);\n\n if (this.olLayer) {\n this.olLayer.setVisible(this.visible);\n }\n }\n\n /**\n * Define layer's properties.\n *\n * @ignore\n */\n defineProperties(options) {\n super.defineProperties(options);\n Object.defineProperties(this, {\n olLayer: { value: options.olLayer, writable: true },\n olListenersKeys: {\n value: [],\n },\n });\n }\n\n /**\n * Initialize the layer and listen to feature clicks.\n * @param {ol/Map~Map} map\n */\n init(map) {\n super.init(map);\n\n if (!this.map) {\n return;\n }\n\n if (this.map && this.olLayer) {\n this.map.addLayer(this.olLayer);\n }\n\n this.olListenersKeys.push(\n this.map.getLayers().on('remove', (evt) => {\n if (evt.element === this.olLayer) {\n this.terminate();\n }\n }),\n );\n\n if (this.isClickActive || this.isHoverActive) {\n this.toggleVisibleListeners();\n this.olListenersKeys.push(\n this.on('change:visible', this.toggleVisibleListeners),\n );\n }\n\n // We set the copyright to the source used by the layer.\n if (this.copyrights && this.olLayer) {\n const attributions = this.copyrights || [];\n if (this.olLayer instanceof Group) {\n this.olLayer\n .getLayers()\n .getArray()\n .forEach((layer) => {\n layer.getSource().setAttributions(attributions);\n });\n } else if (this.olLayer.getSource) {\n this.olLayer.getSource().setAttributions(attributions);\n }\n }\n }\n\n /**\n * Terminate what was initialized in init function. Remove layer, events...\n */\n terminate() {\n unByKey(this.olListenersKeys);\n\n if (this.map && this.olLayer) {\n this.map.removeLayer(this.olLayer);\n }\n\n super.terminate();\n }\n\n /**\n * Change the visibility of the layer\n *\n * @param {boolean} visible Defines the visibility of the layer\n * @param {boolean} [stopPropagationDown]\n * @param {boolean} [stopPropagationUp]\n * @param {boolean} [stopPropagationSiblings]\n */\n setVisible(\n visible,\n stopPropagationDown = false,\n stopPropagationUp = false,\n stopPropagationSiblings = false,\n ) {\n if (visible === this.visible) {\n return;\n }\n\n super.setVisible(\n visible,\n stopPropagationDown,\n stopPropagationUp,\n stopPropagationSiblings,\n );\n\n if (this.olLayer) {\n this.olLayer.setVisible(this.visible);\n }\n }\n\n /**\n * Toggle listeners needed when a layer is avisible or not.\n * @private\n */\n toggleVisibleListeners() {\n // Remove previous event\n if (this.isClickListenerKey && this.isHoverListenerKey) {\n [this.isClickListenerKey, this.isHoverListenerKey].forEach((key) => {\n const index = this.olListenersKeys.indexOf(key);\n if (index > -1) {\n this.olListenersKeys.splice(index, 1);\n }\n unByKey([this.isHoverListenerKey, this.isClickListenerKey]);\n });\n }\n\n if (this.visible) {\n if (this.isClickActive) {\n this.isClickListenerKey = this.map.on(\n 'singleclick',\n this.onUserClickCallback,\n );\n }\n if (this.isHoverActive) {\n this.isHoverListenerKey = this.map.on(\n 'pointermove',\n this.onUserMoveCallback,\n );\n }\n this.olListenersKeys.push(\n this.isClickListenerKey,\n this.isHoverListenerKey,\n );\n }\n }\n\n /**\n * Create a copy of the Layer.\n * @param {Object} newOptions Options to override\n * @return {Layer} A Layer\n */\n clone(newOptions) {\n return new Layer({ ...this.options, ...newOptions });\n }\n}\nexport default Layer;\n"],
5
- "mappings": "AAAA,wCACA,8BACA,yCAiBA,MAAM,SAAc,EAAY,CAgB9B,YAAY,EAAS,CACnB,MAAM,CAAO,EAET,KAAK,SACP,KAAK,QAAQ,WAAW,KAAK,OAAO,CAExC,CAOA,iBAAiB,EAAS,CACxB,MAAM,iBAAiB,CAAO,EAC9B,OAAO,iBAAiB,KAAM,CAC5B,QAAS,CAAE,MAAO,EAAQ,QAAS,SAAU,EAAK,EAClD,gBAAiB,CACf,MAAO,CAAC,CACV,CACF,CAAC,CACH,CAMA,KAAK,EAAK,CAGR,GAFA,MAAM,KAAK,CAAG,EAEV,EAAC,KAAK,KAIN,MAAK,KAAO,KAAK,SACnB,KAAK,IAAI,SAAS,KAAK,OAAO,EAGhC,KAAK,gBAAgB,KACnB,KAAK,IAAI,UAAU,EAAE,GAAG,SAAU,AAAC,GAAQ,CACzC,AAAI,EAAI,UAAY,KAAK,SACvB,KAAK,UAAU,CAEnB,CAAC,CACH,EAEI,MAAK,eAAiB,KAAK,gBAC7B,MAAK,uBAAuB,EAC5B,KAAK,gBAAgB,KACnB,KAAK,GAAG,iBAAkB,KAAK,sBAAsB,CACvD,GAIE,KAAK,YAAc,KAAK,SAAS,CACnC,KAAM,GAAe,KAAK,YAAc,CAAC,EACzC,AAAI,KAAK,kBAAmB,GAC1B,KAAK,QACF,UAAU,EACV,SAAS,EACT,QAAQ,AAAC,GAAU,CAClB,EAAM,UAAU,EAAE,gBAAgB,CAAY,CAChD,CAAC,EACM,KAAK,QAAQ,WACtB,KAAK,QAAQ,UAAU,EAAE,gBAAgB,CAAY,CAEzD,CACF,CAKA,WAAY,CACV,EAAQ,KAAK,eAAe,EAExB,KAAK,KAAO,KAAK,SACnB,KAAK,IAAI,YAAY,KAAK,OAAO,EAGnC,MAAM,UAAU,CAClB,CAUA,WACE,EACA,EAAsB,GACtB,EAAoB,GACpB,EAA0B,GAC1B,CACA,AAAI,IAAY,KAAK,SAIrB,OAAM,WACJ,EACA,EACA,EACA,CACF,EAEI,KAAK,SACP,KAAK,QAAQ,WAAW,KAAK,OAAO,EAExC,CAMA,wBAAyB,CAEvB,AAAI,KAAK,oBAAsB,KAAK,oBAClC,CAAC,KAAK,mBAAoB,KAAK,kBAAkB,EAAE,QAAQ,AAAC,GAAQ,CAClE,KAAM,GAAQ,KAAK,gBAAgB,QAAQ,CAAG,EAC9C,AAAI,EAAQ,IACV,KAAK,gBAAgB,OAAO,EAAO,CAAC,EAEtC,EAAQ,CAAC,KAAK,mBAAoB,KAAK,kBAAkB,CAAC,CAC5D,CAAC,EAGC,KAAK,SACH,MAAK,eACP,MAAK,mBAAqB,KAAK,IAAI,GACjC,cACA,KAAK,mBACP,GAEE,KAAK,eACP,MAAK,mBAAqB,KAAK,IAAI,GACjC,cACA,KAAK,kBACP,GAEF,KAAK,gBAAgB,KACnB,KAAK,mBACL,KAAK,kBACP,EAEJ,CAOA,MAAM,EAAY,CAChB,MAAO,IAAI,GAAM,CAAE,GAAG,KAAK,QAAS,GAAG,CAAW,CAAC,CACrD,CACF,CACA,cAAe",
6
- "names": []
7
- }
@@ -1,2 +0,0 @@
1
- var Ar=Object.create;var ut=Object.defineProperty;var Rr=Object.getOwnPropertyDescriptor;var jr=Object.getOwnPropertyNames;var Dr=Object.getPrototypeOf,Vr=Object.prototype.hasOwnProperty;var z=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var $r=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of jr(e))!Vr.call(r,s)&&s!==t&&ut(r,s,{get:()=>e[s],enumerable:!(i=Rr(e,s))||i.enumerable});return r};var re=(r,e,t)=>(t=r!=null?Ar(Dr(r)):{},$r(e||!r||!r.__esModule?ut(t,"default",{value:r,enumerable:!0}):t,r));var yt=z((wn,gt)=>{"use strict";gt.exports=r=>encodeURIComponent(r).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)});var Lt=z((Ln,wt)=>{"use strict";var xt="%[a-f0-9]{2}",bt=new RegExp(xt,"gi"),vt=new RegExp("("+xt+")+","gi");function Ie(r,e){try{return decodeURIComponent(r.join(""))}catch{}if(r.length===1)return r;e=e||1;var t=r.slice(0,e),i=r.slice(e);return Array.prototype.concat.call([],Ie(t),Ie(i))}function Kr(r){try{return decodeURIComponent(r)}catch{for(var e=r.match(bt),t=1;t<e.length;t++)r=Ie(e,t).join(""),e=r.match(bt);return r}}function zr(r){for(var e={"%FE%FF":"\uFFFD\uFFFD","%FF%FE":"\uFFFD\uFFFD"},t=vt.exec(r);t;){try{e[t[0]]=decodeURIComponent(t[0])}catch{var i=Kr(t[0]);i!==t[0]&&(e[t[0]]=i)}t=vt.exec(r)}e["%C2"]="\uFFFD";for(var s=Object.keys(e),n=0;n<s.length;n++){var o=s[n];r=r.replace(new RegExp(o,"g"),e[o])}return r}wt.exports=function(r){if(typeof r!="string")throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof r+"`");try{return r=r.replace(/\+/g," "),decodeURIComponent(r)}catch{return zr(r)}}});var St=z((Cn,Ct)=>{"use strict";Ct.exports=(r,e)=>{if(!(typeof r=="string"&&typeof e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(e==="")return[r];let t=r.indexOf(e);return t===-1?[r]:[r.slice(0,t),r.slice(t+e.length)]}});var Mt=z((Sn,Tt)=>{"use strict";Tt.exports=function(r,e){for(var t={},i=Object.keys(r),s=Array.isArray(e),n=0;n<i.length;n++){var o=i[n],a=r[o];(s?e.indexOf(o)!==-1:e(o,a,r))&&(t[o]=a)}return t}});var ye=z(I=>{"use strict";var _r=yt(),Zr=Lt(),kt=St(),Wr=Mt(),Jr=r=>r==null,Oe=Symbol("encodeFragmentIdentifier");function Xr(r){switch(r.arrayFormat){case"index":return e=>(t,i)=>{let s=t.length;return i===void 0||r.skipNull&&i===null||r.skipEmptyString&&i===""?t:i===null?[...t,[L(e,r),"[",s,"]"].join("")]:[...t,[L(e,r),"[",L(s,r),"]=",L(i,r)].join("")]};case"bracket":return e=>(t,i)=>i===void 0||r.skipNull&&i===null||r.skipEmptyString&&i===""?t:i===null?[...t,[L(e,r),"[]"].join("")]:[...t,[L(e,r),"[]=",L(i,r)].join("")];case"colon-list-separator":return e=>(t,i)=>i===void 0||r.skipNull&&i===null||r.skipEmptyString&&i===""?t:i===null?[...t,[L(e,r),":list="].join("")]:[...t,[L(e,r),":list=",L(i,r)].join("")];case"comma":case"separator":case"bracket-separator":{let e=r.arrayFormat==="bracket-separator"?"[]=":"=";return t=>(i,s)=>s===void 0||r.skipNull&&s===null||r.skipEmptyString&&s===""?i:(s=s===null?"":s,i.length===0?[[L(t,r),e,L(s,r)].join("")]:[[i,L(s,r)].join(r.arrayFormatSeparator)])}default:return e=>(t,i)=>i===void 0||r.skipNull&&i===null||r.skipEmptyString&&i===""?t:i===null?[...t,L(e,r)]:[...t,[L(e,r),"=",L(i,r)].join("")]}}function Qr(r){let e;switch(r.arrayFormat){case"index":return(t,i,s)=>{if(e=/\[(\d*)\]$/.exec(t),t=t.replace(/\[\d*\]$/,""),!e){s[t]=i;return}s[t]===void 0&&(s[t]={}),s[t][e[1]]=i};case"bracket":return(t,i,s)=>{if(e=/(\[\])$/.exec(t),t=t.replace(/\[\]$/,""),!e){s[t]=i;return}if(s[t]===void 0){s[t]=[i];return}s[t]=[].concat(s[t],i)};case"colon-list-separator":return(t,i,s)=>{if(e=/(:list)$/.exec(t),t=t.replace(/:list$/,""),!e){s[t]=i;return}if(s[t]===void 0){s[t]=[i];return}s[t]=[].concat(s[t],i)};case"comma":case"separator":return(t,i,s)=>{let n=typeof i=="string"&&i.includes(r.arrayFormatSeparator),o=typeof i=="string"&&!n&&$(i,r).includes(r.arrayFormatSeparator);i=o?$(i,r):i;let a=n||o?i.split(r.arrayFormatSeparator).map(c=>$(c,r)):i===null?i:$(i,r);s[t]=a};case"bracket-separator":return(t,i,s)=>{let n=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!n){s[t]=i&&$(i,r);return}let o=i===null?[]:i.split(r.arrayFormatSeparator).map(a=>$(a,r));if(s[t]===void 0){s[t]=o;return}s[t]=[].concat(s[t],o)};default:return(t,i,s)=>{if(s[t]===void 0){s[t]=i;return}s[t]=[].concat(s[t],i)}}}function Pt(r){if(typeof r!="string"||r.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function L(r,e){return e.encode?e.strict?_r(r):encodeURIComponent(r):r}function $(r,e){return e.decode?Zr(r):r}function Ft(r){return Array.isArray(r)?r.sort():typeof r=="object"?Ft(Object.keys(r)).sort((e,t)=>Number(e)-Number(t)).map(e=>r[e]):r}function It(r){let e=r.indexOf("#");return e!==-1&&(r=r.slice(0,e)),r}function Yr(r){let e="",t=r.indexOf("#");return t!==-1&&(e=r.slice(t)),e}function Ot(r){r=It(r);let e=r.indexOf("?");return e===-1?"":r.slice(e+1)}function Et(r,e){return e.parseNumbers&&!Number.isNaN(Number(r))&&typeof r=="string"&&r.trim()!==""?r=Number(r):e.parseBooleans&&r!==null&&(r.toLowerCase()==="true"||r.toLowerCase()==="false")&&(r=r.toLowerCase()==="true"),r}function At(r,e){e=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},e),Pt(e.arrayFormatSeparator);let t=Qr(e),i=Object.create(null);if(typeof r!="string"||(r=r.trim().replace(/^[?#&]/,""),!r))return i;for(let s of r.split("&")){if(s==="")continue;let[n,o]=kt(e.decode?s.replace(/\+/g," "):s,"=");o=o===void 0?null:["comma","separator","bracket-separator"].includes(e.arrayFormat)?o:$(o,e),t($(n,e),o,i)}for(let s of Object.keys(i)){let n=i[s];if(typeof n=="object"&&n!==null)for(let o of Object.keys(n))n[o]=Et(n[o],e);else i[s]=Et(n,e)}return e.sort===!1?i:(e.sort===!0?Object.keys(i).sort():Object.keys(i).sort(e.sort)).reduce((s,n)=>{let o=i[n];return Boolean(o)&&typeof o=="object"&&!Array.isArray(o)?s[n]=Ft(o):s[n]=o,s},Object.create(null))}I.extract=Ot;I.parse=At;I.stringify=(r,e)=>{if(!r)return"";e=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},e),Pt(e.arrayFormatSeparator);let t=o=>e.skipNull&&Jr(r[o])||e.skipEmptyString&&r[o]==="",i=Xr(e),s={};for(let o of Object.keys(r))t(o)||(s[o]=r[o]);let n=Object.keys(s);return e.sort!==!1&&n.sort(e.sort),n.map(o=>{let a=r[o];return a===void 0?"":a===null?L(o,e):Array.isArray(a)?a.length===0&&e.arrayFormat==="bracket-separator"?L(o,e)+"[]":a.reduce(i(o),[]).join("&"):L(o,e)+"="+L(a,e)}).filter(o=>o.length>0).join("&")};I.parseUrl=(r,e)=>{e=Object.assign({decode:!0},e);let[t,i]=kt(r,"#");return Object.assign({url:t.split("?")[0]||"",query:At(Ot(r),e)},e&&e.parseFragmentIdentifier&&i?{fragmentIdentifier:$(i,e)}:{})};I.stringifyUrl=(r,e)=>{e=Object.assign({encode:!0,strict:!0,[Oe]:!0},e);let t=It(r.url).split("?")[0]||"",i=I.extract(r.url),s=I.parse(i,{sort:!1}),n=Object.assign(s,r.query),o=I.stringify(n,e);o&&(o=`?${o}`);let a=Yr(r.url);return r.fragmentIdentifier&&(a=`#${e[Oe]?L(r.fragmentIdentifier,e):r.fragmentIdentifier}`),`${t}${o}${a}`};I.pick=(r,e,t)=>{t=Object.assign({parseFragmentIdentifier:!0,[Oe]:!1},t);let{url:i,query:s,fragmentIdentifier:n}=I.parseUrl(r,t);return I.stringifyUrl({url:i,query:Wr(s,e),fragmentIdentifier:n},t)};I.exclude=(r,e,t)=>{let i=Array.isArray(e)?s=>!e.includes(s):(s,n)=>!e(s,n);return I.pick(r,i,t)}});var Kt=z((Po,Ht)=>{var Ci="Expected a function",Gt=NaN,Si="[object Symbol]",Ti=/^\s+|\s+$/g,Mi=/^[-+]0x[0-9a-f]+$/i,Ei=/^0b[01]+$/i,ki=/^0o[0-7]+$/i,Pi=parseInt,Fi=typeof global=="object"&&global&&global.Object===Object&&global,Ii=typeof self=="object"&&self&&self.Object===Object&&self,Oi=Fi||Ii||Function("return this")(),Ai=Object.prototype,Ri=Ai.toString,ji=Math.max,Di=Math.min,Ue=function(){return Oi.Date.now()};function Vi(r,e,t){var i,s,n,o,a,c,l=0,h=!1,u=!1,y=!0;if(typeof r!="function")throw new TypeError(Ci);e=qt(e)||0,Be(t)&&(h=!!t.leading,u="maxWait"in t,n=u?ji(qt(t.maxWait)||0,e):n,y="trailing"in t?!!t.trailing:y);function m(f){var p=i,w=s;return i=s=void 0,l=f,o=r.apply(w,p),o}function g(f){return l=f,a=setTimeout(b,e),h?m(f):o}function C(f){var p=f-c,w=f-l,O=e-p;return u?Di(O,n-w):O}function S(f){var p=f-c,w=f-l;return c===void 0||p>=e||p<0||u&&w>=n}function b(){var f=Ue();if(S(f))return d(f);a=setTimeout(b,C(f))}function d(f){return a=void 0,y&&i?m(f):(i=s=void 0,o)}function v(){a!==void 0&&clearTimeout(a),l=0,i=c=s=a=void 0}function M(){return a===void 0?o:d(Ue())}function x(){var f=Ue(),p=S(f);if(i=arguments,s=this,c=f,p){if(a===void 0)return g(c);if(u)return a=setTimeout(b,e),m(c)}return a===void 0&&(a=setTimeout(b,e)),o}return x.cancel=v,x.flush=M,x}function Be(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function $i(r){return!!r&&typeof r=="object"}function Ni(r){return typeof r=="symbol"||$i(r)&&Ri.call(r)==Si}function qt(r){if(typeof r=="number")return r;if(Ni(r))return Gt;if(Be(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=Be(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=r.replace(Ti,"");var t=Ei.test(r);return t||ki.test(r)?Pi(r.slice(2),t?2:8):Mi.test(r)?Gt:+r}Ht.exports=Vi});var Jt=z((Fo,Wt)=>{var Zt="Expected a function",zt=NaN,Ui="[object Symbol]",Bi=/^\s+|\s+$/g,Gi=/^[-+]0x[0-9a-f]+$/i,qi=/^0b[01]+$/i,Hi=/^0o[0-7]+$/i,Ki=parseInt,zi=typeof global=="object"&&global&&global.Object===Object&&global,_i=typeof self=="object"&&self&&self.Object===Object&&self,Zi=zi||_i||Function("return this")(),Wi=Object.prototype,Ji=Wi.toString,Xi=Math.max,Qi=Math.min,Ge=function(){return Zi.Date.now()};function Yi(r,e,t){var i,s,n,o,a,c,l=0,h=!1,u=!1,y=!0;if(typeof r!="function")throw new TypeError(Zt);e=_t(e)||0,Ce(t)&&(h=!!t.leading,u="maxWait"in t,n=u?Xi(_t(t.maxWait)||0,e):n,y="trailing"in t?!!t.trailing:y);function m(f){var p=i,w=s;return i=s=void 0,l=f,o=r.apply(w,p),o}function g(f){return l=f,a=setTimeout(b,e),h?m(f):o}function C(f){var p=f-c,w=f-l,O=e-p;return u?Qi(O,n-w):O}function S(f){var p=f-c,w=f-l;return c===void 0||p>=e||p<0||u&&w>=n}function b(){var f=Ge();if(S(f))return d(f);a=setTimeout(b,C(f))}function d(f){return a=void 0,y&&i?m(f):(i=s=void 0,o)}function v(){a!==void 0&&clearTimeout(a),l=0,i=c=s=a=void 0}function M(){return a===void 0?o:d(Ge())}function x(){var f=Ge(),p=S(f);if(i=arguments,s=this,c=f,p){if(a===void 0)return g(c);if(u)return a=setTimeout(b,e),m(c)}return a===void 0&&(a=setTimeout(b,e)),o}return x.cancel=v,x.flush=M,x}function es(r,e,t){var i=!0,s=!0;if(typeof r!="function")throw new TypeError(Zt);return Ce(t)&&(i="leading"in t?!!t.leading:i,s="trailing"in t?!!t.trailing:s),Yi(r,e,{leading:i,maxWait:e,trailing:s})}function Ce(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function ts(r){return!!r&&typeof r=="object"}function rs(r){return typeof r=="symbol"||ts(r)&&Ji.call(r)==Ui}function _t(r){if(typeof r=="number")return r;if(rs(r))return zt;if(Ce(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=Ce(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=r.replace(Bi,"");var t=qi.test(r);return t||Hi.test(r)?Ki(r.slice(2),t?2:8):Gi.test(r)?zt:+r}Wt.exports=es});import{unByKey as pt}from"ol/Observable";import Hr from"ol/layer/Group";import qr from"ol/Observable";var pe,Nr=new Uint8Array(16);function Pe(){if(!pe&&(pe=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!pe))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return pe(Nr)}var ft=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Ur(r){return typeof r=="string"&&ft.test(r)}var dt=Ur;var k=[];for(ge=0;ge<256;++ge)k.push((ge+256).toString(16).substr(1));var ge;function Br(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=(k[r[e+0]]+k[r[e+1]]+k[r[e+2]]+k[r[e+3]]+"-"+k[r[e+4]]+k[r[e+5]]+"-"+k[r[e+6]]+k[r[e+7]]+"-"+k[r[e+8]]+k[r[e+9]]+"-"+k[r[e+10]]+k[r[e+11]]+k[r[e+12]]+k[r[e+13]]+k[r[e+14]]+k[r[e+15]]).toLowerCase();if(!dt(t))throw TypeError("Stringified UUID is invalid");return t}var mt=Br;function Gr(r,e,t){r=r||{};var i=r.random||(r.rng||Pe)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){t=t||0;for(var s=0;s<16;++s)e[t+s]=i[s];return e}return mt(i)}var Fe=Gr;var _=class extends qr{constructor(e={}){super(),this.defineProperties(e);let{onClick:t,onHover:i}=e;i&&this.onHover(i),t&&this.onClick(t),e.copyrights&&(this.copyrights=e.copyrights),this.onUserClickCallback=this.onUserClickCallback.bind(this),this.onUserMoveCallback=this.onUserMoveCallback.bind(this)}defineProperties(e){let{name:t,key:i,children:s,visible:n,properties:o,isBaseLayer:a,isQueryable:c,isClickActive:l,isHoverActive:h,hitTolerance:u}={isQueryable:!0,isClickActive:!0,isHoverActive:!0,...e},y=Fe(),m=t||y;Object.defineProperties(this,{options:{value:e},name:{value:m},key:{value:i||m.toLowerCase()},isBaseLayer:{value:!!a},isQueryable:{value:!!c,writable:!0},isClickActive:{value:!!c&&!!l,writable:!0},isHoverActive:{value:!!c&&!!h,writable:!0},hitTolerance:{value:u||5,writable:!0},isMobilityLayer:{value:!0},children:{value:s||[],writable:!0},copyrights:{get:()=>this.get("copyrights"),set:g=>{let C=Array.isArray(g)?g:[g];this.set("copyrights",C)}},visible:{value:n===void 0?!0:n,writable:!0},properties:{value:{...o||{}}},map:{writable:!0},clickCallbacks:{value:[]},hoverCallbacks:{value:[]}})}init(e){this.terminate(),this.map=e}terminate(){}get(e){return this.properties[e]}set(e,t){t!==this.properties[e]&&(this.properties[e]=t,this.dispatchEvent({type:`change:${e}`,target:this}))}setVisible(e,t=!1,i=!1,s=!1){e!==this.visible&&(this.visible=e,this.dispatchEvent({type:"change:visible",target:this,stopPropagationDown:t,stopPropagationUp:i,stopPropagationSiblings:s}))}getVisibleChildren(){return this.children.filter(e=>e.visible)}hasVisibleChildren(){return!!this.children.find(e=>e.visible===!0)}getFeatureInfoAtCoordinate(e,t){return console.error("getFeatureInfoAtCoordinate must be implemented by inheriting layers",this.key),this.isQueryable=!1,Promise.resolve({layer:this,features:[],coordinate:e})}onClick(e){if(typeof e=="function")this.clickCallbacks.includes(e)||this.clickCallbacks.push(e);else throw new Error("onClick callback must be of type function:",e)}unClick(e){if(typeof e=="function"){let t=this.clickCallbacks.indexOf(e);t>-1&&this.clickCallbacks.splice(t,1)}}onUserClickCallback(e){let t={features:[],layer:this,coordinate:e.coordinate,event:e};return!this.isClickActive||!this.clickCallbacks.length?Promise.resolve(t):this.getFeatureInfoAtCoordinate(e.coordinate).then(i=>{let{features:s,layer:n,coordinate:o}=i;return this.clickCallbacks.forEach(a=>a(s,n,o)),i}).catch(()=>t)}onHover(e){if(typeof e=="function")this.hoverCallbacks.includes(e)||this.hoverCallbacks.push(e);else throw new Error("callback must be of type function.")}unHover(e){if(typeof e=="function"){let t=this.hoverCallbacks.indexOf(e);t>-1&&this.hoverCallbacks.splice(t,1)}}onUserMoveCallback(e){let t={features:[],layer:this,coordinate:e.coordinate,event:e};return!this.isHoverActive||!this.hoverCallbacks.length?Promise.resolve(t):this.getFeatureInfoAtCoordinate(e.coordinate).then(i=>{let{features:s,layer:n,coordinate:o}=i;return this.hoverCallbacks.forEach(a=>a(s,n,o)),i}).catch(()=>t)}};var ie=class extends _{constructor(e){super(e),this.olLayer&&this.olLayer.setVisible(this.visible)}defineProperties(e){super.defineProperties(e),Object.defineProperties(this,{olLayer:{value:e.olLayer,writable:!0},olListenersKeys:{value:[]}})}init(e){if(super.init(e),!!this.map&&(this.map&&this.olLayer&&this.map.addLayer(this.olLayer),this.olListenersKeys.push(this.map.getLayers().on("remove",t=>{t.element===this.olLayer&&this.terminate()})),(this.isClickActive||this.isHoverActive)&&(this.toggleVisibleListeners(),this.olListenersKeys.push(this.on("change:visible",this.toggleVisibleListeners))),this.copyrights&&this.olLayer)){let t=this.copyrights||[];this.olLayer instanceof Hr?this.olLayer.getLayers().getArray().forEach(i=>{i.getSource().setAttributions(t)}):this.olLayer.getSource&&this.olLayer.getSource().setAttributions(t)}}terminate(){pt(this.olListenersKeys),this.map&&this.olLayer&&this.map.removeLayer(this.olLayer),super.terminate()}setVisible(e,t=!1,i=!1,s=!1){e!==this.visible&&(super.setVisible(e,t,i,s),this.olLayer&&this.olLayer.setVisible(this.visible))}toggleVisibleListeners(){this.isClickListenerKey&&this.isHoverListenerKey&&[this.isClickListenerKey,this.isHoverListenerKey].forEach(e=>{let t=this.olListenersKeys.indexOf(e);t>-1&&this.olListenersKeys.splice(t,1),pt([this.isHoverListenerKey,this.isClickListenerKey])}),this.visible&&(this.isClickActive&&(this.isClickListenerKey=this.map.on("singleclick",this.onUserClickCallback)),this.isHoverActive&&(this.isHoverListenerKey=this.map.on("pointermove",this.onUserMoveCallback)),this.olListenersKeys.push(this.isClickListenerKey,this.isHoverListenerKey))}clone(e){return new ie({...this.options,...e})}},F=ie;import{toLonLat as Nt}from"ol/proj";import{Map as fi}from"mapbox-gl";import di from"ol/source/Source";import mi from"ol/layer/Layer";import pi from"ol/format/GeoJSON";var Ae=re(ye()),ei=(r,e,t)=>{if(r===!1)return t;let i=Ae.default.parseUrl(t);return!r&&i.query[e]?t:r?Ae.default.stringifyUrl({...i,query:{...i.query,[e]:r}}):(console.warn(`No apiKey is defined for request to ${t}`),null)},se=ei;var ti=r=>{let e=r.filter(n=>n!=null&&n.trim&&n.trim()),t=e.map(n=>n.toLowerCase());return[...new Set(t)].map(n=>e.find(o=>o.toLowerCase()===n))},ne=ti;var ri=r=>{if(!r||!r.style)return[];let{sourceCaches:e}=r.style,t=[];return Object.values(e).forEach(i=>{if(i.used){let s=i.getSource(),n=s.attribution||s.options&&s.options.attribution;n&&(t=t.concat(n.replace(/&copy;/g,"\xA9").split(/(<a.*?<\/a>)/)))}}),ne(t)},B=ri;var ii={0:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],1:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],2:[0,0,0,0,0,2,2,3,7,7,7,12,15,15,15,15,15],3:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],4:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],5:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],6:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],7:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],8:[0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7],9:[0,0,0,0,0,2,2,3,7,7,7,12,15,15,15,15,15]},si=[/^Tram/i,/^Subway( \/ Metro \/ S-Bahn)?/i,/^Train/i,/^Bus/i,/^Ferry/i,/^Cable ?Car/i,/^Gondola/i,/^Funicular/i,/^(Long distance bus|coach)/i,/^Rail/i],ni=["#ffb400","#ff5400","#ff8080","#ea0000","#3000ff","#ffb400","#41a27b","#00d237","#b5b5b5","#ff8080"],oi=["#000000","#ffffff","#000000","#ffffff","#ffffff","#000000","#ffffff","#000000","#000000","#000000"],Rt=[1e5,5e4,4e4,3e4,2e4,15e3,1e4,5e3,2e3,1e3,400,300,250,180,90,60,50,50,50,50,50],Re=r=>typeof r=="string"?si.findIndex(e=>e.test(r)):r,jt=(r,e)=>{try{let t=Re(r||0);return ii[t][e]}catch{return 1}},be=(r=0)=>{try{let e=Re(r);return ni[e]}catch{return 1}},Dt=(r=0)=>{try{let e=Re(r);return oi[e]}catch{return 1}},Vt=(r,e,t,i)=>{r.font=`bold ${i}px Arial`;let s=r.measureText(t),n=25,o=0;for(;s.width>e-6&&o<n;)i-=.5,r.font=`bold ${i}px arial, sans-serif`,s=r.measureText(t),o+=1;return i},ve=(r,e,t)=>e?t?"#ff0000":"#a0a0a0":r>=36e5?"#ed004c":r>=5e5?"#e80000":r>=3e5?"#ff4a00":r>=18e4?"#f7bf00":r===null?"#a0a0a0":"#00a00c",$t=(r,e)=>e?String.fromCodePoint(215):r>36e5?`+${Math.round(r/36e5)}h`:r>59e3?`+${Math.round(r/6e4)}m`:r>0?`+${r}s`:"";var oe=(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},je={},ai=(r,e,t)=>{let i=`${r}, ${e}, ${t}`;if(!je[i]){let s=oe(r*2,r*2),n=s.getContext("2d");n.beginPath(),n.arc(r,r,e,0,2*Math.PI,!1),n.fillStyle=t,n.filter="blur(1px)",n.fill(),je[i]=s}return je[i]},De={},li=(r,e,t,i,s,n,o)=>{let a=`${r}, ${e}, ${i}, ${s}, ${n}, ${o}`;if(!De[a]){let c=oe(r,t+8*o),l=c.getContext("2d");l.textAlign="left",l.textBaseline="middle",l.font=i,l.fillStyle=s,l.strokeStyle=n,l.lineWidth=1.5*o;let h=e;l.strokeText(h,0,t),l.fillText(h,0,t),De[a]=c}return De[a]},Ve={},ci=(r,e,t,i,s,n)=>{let o=`${r}, ${e}, ${t}, ${i}, ${s}, ${n}`;if(!Ve[o]){let a=oe(r*2,r*2),c=a.getContext("2d");c.fillStyle=t,i&&(c.lineWidth=1*n,c.strokeStyle="#000000"),c.beginPath(),c.arc(r,r,e,0,2*Math.PI,!1),c.fill(),s&&c.setLineDash([5,3]),i&&c.stroke(),Ve[o]=a}return Ve[o]},$e={},hi=(r,e,t,i,s,n,o)=>{let a=`${r}, ${e}, ${t}, ${i},${s}, ${n}, ${o}`;if(!$e[a]){let c=oe(e*2,e*2),l=c.getContext("2d");n&&(l.save(),l.textBaseline="middle",l.textAlign="center",l.font=`bold ${t+2}px Arial`,l.strokeStyle=s,l.strokeText(r,e,e),l.restore()),l.textBaseline="middle",l.textAlign="center",l.fillStyle=i,l.font=`bold ${t}px Arial`,l.strokeStyle=s,l.strokeText(r,e,e),l.fillText(r,e,e),$e[a]=c}return $e[a]},xe={},ui=(r,e,t)=>{let{hoverVehicleId:i,selectedVehicleId:s,useDelayStyle:n,delayOutlineColor:o,delayDisplay:a}=t,{zoom:c,pixelRatio:l}=e,{type:h,cancelled:u}=r.properties,{train_id:y,line:m,delay:g,state:C,operator_provides_realtime_journey:S}=r.properties,{name:b,text_color:d,color:v}=m||{};u=u===!0||C==="JOURNEY_CANCELLED",h||(h="Rail"),b||(b="I"),d||(d="#000000"),v&&v[0]!=="#"&&(v=`#${v}`),d[0]!=="#"&&(d=`#${d}`);let M=Math.min(Math.floor(c||1),16),x=i&&i===y,f=s&&s===y,p=jt(h,M)*l,w=p>=7*l;(x||f)&&(p=w?p+5*l:14*l);let O=p>10*l,D=`${p}${h}${v}${x}${f}${u}${g}`;if(n&&(D+=`${S}`),O&&(D+=`${b}${d}`),!xe[D]){if(p===0)return xe[D]=null,null;let N=1*l,K=p+2,J=p*2,Q=K*2+N*2+100*l,V=Q/2,me=oe(Q,Q),E=me.getContext("2d");if(w&&g!==null){let U=ai(V,K,ve(g,u));E.drawImage(U,0,0)}if(w&&(x||g>=a||u)){let U=Math.max(u?19:14,Math.min(u?19:17,p*1.2))*l,te=$t(g,u);if(te){let ke=te.length*U,ht=li(ke,te,U,`bold ${U}px arial, sans-serif`,ve(g,u,!0),o,l);E.drawImage(ht,V+K+N,V-U)}}let A;n?A=ve(g,u):A=v||be(h);let Ee=ci(V,p,A,w||x||f,w&&n&&g===null&&S==="yes",l);if(E.drawImage(Ee,0,0),O){let U=Math.max(p,10),te=Vt(E,J,b,U),ke=n?"#000000":d||Dt(h),Or=hi(b,V,te,ke,A,n&&g===null&&S==="yes",l);E.drawImage(Or,0,0)}xe[D]=me}return xe[D]},we=ui;var G=class extends F{constructor(e={}){let t=new mi({source:new di({}),render:i=>{if(!this.mbMap)return console.warn("Mapbox map doesn't exist."),null;let s=!1,n=this.mbMap.getCanvas(),{viewState:o}=i,a=this.olLayer.getVisible();this.renderState.visible!==a&&(n.style.display=a?"block":"none",this.renderState.visible=a,n.style.position="absolute");let c=this.olLayer.getOpacity();this.renderState.opacity!==c&&(n.style.opacity=c,this.renderState.opacity=c);let{rotation:l}=o;this.renderState.rotation!==l&&(this.mbMap.rotateTo(-(l||0)*180/Math.PI,{animate:!1}),s=!0,this.renderState.rotation=l),(this.renderState.zoom!==o.zoom||this.renderState.center[0]!==o.center[0]||this.renderState.center[1]!==o.center[1])&&(this.mbMap.jumpTo({center:Nt(o.center),zoom:o.zoom-1,animate:!1}),s=!0,this.renderState.zoom=o.zoom,this.renderState.center=o.center);let h=this.map.getSize();if((this.renderState.size[0]!==h[0]||this.renderState.size[1]!==h[1])&&(s=!0,this.renderState.size=h),this.mbMap&&this.mbMap.style&&this.mbMap.isStyleLoaded()&&s)try{this.mbMap._frame&&(this.mbMap._frame.cancel(),this.mbMap._frame=null),this.mbMap._render()}catch(u){console.warn(u)}return this.mbMap.getContainer()}});super({...e,olLayer:t}),this.styleUrl=e.url,this.apiKey=e.apiKey,this.apiKeyName=e.apiKeyName||"key",this.updateAttribution=this.updateAttribution.bind(this)}init(e){super.init(e),!(!this.map||this.mbMap)&&(this.format=new pi({featureProjection:this.map.getView().getProjection()}),this.loadMbMap(),this.olListenersKeys.push(this.map.on("change:size",()=>{try{this.mbMap&&this.mbMap.resize()}catch(t){console.warn(t)}})))}terminate(){this.mbMap&&(this.mbMap.off("idle",this.updateAttribution),this.mbMap.triggerRepaint=()=>{},this.mbMap.remove(),this.mbMap=null),this.loaded=!1,super.terminate()}createStyleUrl(){return se(this.apiKey,this.apiKeyName,this.styleUrl)}loadMbMap(){if(this.olListenersKeys.push(this.map.on("change:target",()=>{this.loadMbMap()})),!this.map.getTargetElement())return;if(!this.visible){this.olListenersKeys.push(this.once("change:visible",()=>{this.loadMbMap()}));return}let[e,t]=this.map.getView().getCenter();(!e||!t)&&(e=0,t=0);let i=document.createElement("div");i.style.position="absolute",i.style.width="100%",i.style.height="100%",this.mbMap=new fi({style:this.createStyleUrl(),container:i,interactive:!1,trackResize:!1,attributionControl:!1,...this.options.mapOptions||{}}),this.renderState={center:[e,t],zoom:null,rotation:null,visible:null,opacity:null,size:[0,0]},this.mbMap.once("load",()=>{this.mbMap.resize(),this.loaded=!0,this.copyrights=B(this.mbMap)||[],this.olLayer.getSource().setAttributions(this.copyrights),this.dispatchEvent({type:"load",target:this})});let s=this.mbMap.getCanvas();s&&(this.options.tabIndex?s.setAttribute("tabindex",this.options.tabIndex):s.removeAttribute("tabindex")),this.mbMap.on("idle",this.updateAttribution)}updateAttribution(e){let t=B(e.target)||[];this.copyrights.toString()!==t.toString()&&(this.copyrights=t,this.olLayer.getSource().setAttributions(t))}getFeatureInfoAtCoordinate(e,t){if(!t||!this.format||!this.mbMap||!this.mbMap.isStyleLoaded())return Promise.resolve({coordinate:e,features:[],layer:this});let i=e&&this.mbMap.project(Nt(e));if(this.hitTolerance){let{x:n,y:o}=i;i=[{x:n-this.hitTolerance,y:o-this.hitTolerance},{x:n+this.hitTolerance,y:o+this.hitTolerance}]}let s=this.mbMap.queryRenderedFeatures(i,t).map(n=>{let o=this.format.readFeature(n);return o&&o.set("mapboxFeature",n),o});return Promise.resolve({layer:this,features:s,coordinate:e})}clone(e){return new G({...this.options,...e})}};import{toLonLat as Ut}from"ol/proj";import{Map as gi}from"maplibre-gl";import yi from"ol/source/Source";import bi from"ol/layer/Layer";import vi from"ol/format/GeoJSON";import{toDegrees as xi}from"ol/math";var q=class extends F{constructor(e={}){let t=new bi({source:new yi({}),render:i=>{if(!this.mbMap)return console.warn("Mapbox map doesn't exist."),null;let s=this.mbMap.getCanvas(),{viewState:n}=i,o=this.olLayer.getOpacity();return s.style.opacity=o,this.mbMap.jumpTo({center:Ut(n.center),zoom:n.zoom-1,bearing:xi(-n.rotation),animate:!1}),s.isConnected?(s.width!==i.size[0]||s.height!==i.size[1])&&this.mbMap.resize():this.map.render(),this.mbMap.redraw(),this.mbMap.getContainer()}});super({...e,olLayer:t}),this.styleUrl=e.url,this.apiKey=e.apiKey,this.apiKeyName=e.apiKeyName||"key",this.updateAttribution=this.updateAttribution.bind(this)}init(e){super.init(e),this.map&&(this.format=new vi({featureProjection:this.map.getView().getProjection()}),this.loadMbMap())}terminate(){this.mbMap&&(this.mbMap.off("idle",this.updateAttribution),this.mbMap.triggerRepaint=()=>{},this.mbMap.remove(),this.mbMap=null),this.loaded=!1,super.terminate()}createStyleUrl(){return se(this.apiKey,this.apiKeyName,this.styleUrl)}loadMbMap(){if(this.olListenersKeys.push(this.map.on("change:target",()=>{this.loadMbMap()})),!this.map.getTargetElement())return;if(!this.visible){this.olListenersKeys.push(this.once("change:visible",()=>{this.loadMbMap()}));return}let e=document.createElement("div");e.style.position="absolute",e.style.width="100%",e.style.height="100%",this.mbMap=new gi({style:this.createStyleUrl(),container:e,interactive:!1,trackResize:!1,attributionControl:!1,...this.options.mapOptions||{}}),this.mbMap.once("load",()=>{this.loaded=!0,this.dispatchEvent({type:"load",target:this})}),this.mbMap.on("idle",this.updateAttribution)}updateAttribution(e){let t=B(e.target)||[];this.copyrights?.toString()!==t.toString()&&(this.copyrights=t,this.olLayer.getSource().setAttributions(t))}getFeatureInfoAtCoordinate(e,t){if(!t||!this.format||!this.mbMap||!this.mbMap.isStyleLoaded())return Promise.resolve({coordinate:e,features:[],layer:this});let i=e&&this.mbMap.project(Ut(e));if(this.hitTolerance){let{x:n,y:o}=i;i=[{x:n-this.hitTolerance,y:o-this.hitTolerance},{x:n+this.hitTolerance,y:o+this.hitTolerance}]}let s=this.mbMap.queryRenderedFeatures(i,t).map(n=>{let o=this.format.readFeature(n);return o&&o.set("mapboxFeature",n),o});return Promise.resolve({layer:this,features:s,coordinate:e})}clone(e){return new q({...this.options,...e})}};import{Circle as wi,Fill as Li,Stroke as Le,Style as Ne}from"ol/style";import{Vector as wo}from"ol/source";import{Vector as Co}from"ol/layer";var Bt=new wi({radius:6,fill:new Li({color:[255,0,0,1]}),stroke:new Le({color:[0,0,0,1],width:1})}),To=new Ne({stroke:new Le({color:[0,0,0,1],width:5})}),Mo=new Ne({image:Bt,stroke:new Le({color:[255,0,0,1],width:3})}),Eo=new Ne({image:Bt,stroke:new Le({color:[255,0,0,1],width:3,lineDash:[1,10]})});import ws from"ol/format/GeoJSON";import{Layer as Ls,Group as Cs,Vector as Ss}from"ol/layer";import Ts from"ol/source/Source";import{composeCssTransform as Ms}from"ol/transform";import{Vector as Es}from"ol/source";var ir=re(ye()),Je=re(Kt()),Xe=re(Jt());import{buffer as cs,containsCoordinate as hs,intersects as us}from"ol/extent";import{unByKey as fs}from"ol/Observable";import ds from"ol/format/GeoJSON";import"ol/geom/Point";import{fromLonLat as ms}from"ol/proj";import{compose as ss,apply as ns,create as os}from"ol/transform";import Xt from"ol/geom/GeometryType";var is=(r,e,t)=>{let{time_intervals:i,olGeometry:s,coordinate:n}=e.properties,o,a;if(t&&n)o=n;else if(s.getType()===Xt.POINT)o=s.getCoordinates();else if(s.getType()===Xt.LINE_STRING){let c=i||[[]],l=c[0],h=c[c.length-1];if(r<l[0])[,,a]=l,o=s.getFirstCoordinate();else if(r>h[0])[,,a]=h,o=s.getLastCoordinate();else for(let u=0;u<c.length-1;u+=1){let[y,m]=c[u],[g,C]=c[u+1];if(y<=r&&r<=g){let b=Math.min((r-y)/(g-y),1)*(C-m)+m;o=s.getCoordinateAt(b),[,,a]=c[u];break}}}else console.error("This geometry type is not supported. Only Point or LineString are. Current geometry: ",s);return{coord:o,rotation:a}},Qt=is;var ae=class{constructor(e){this.style=e.style,this.canvas=e.canvas||document.createElement("canvas")}renderTrajectories(e,t,i){let{time:s=Date.now(),size:n=[],center:o,resolution:a,rotation:c=0,pixelRatio:l}=t,{noInterpolate:h=!1,hoverVehicleId:u,selectedVehicleId:y}=i,{canvas:m}=this,g=m.getContext("2d");g.clearRect(0,0,m.width,m.height);let[C,S]=n;C&&S&&(m.width!==C||m.height!==S)&&([m.width,m.height]=[C*l,S*l]);let b=ss(os(),n[0]/2,n[1]/2,1/a,-1/a,-c,-o[0],-o[1]);m.style&&(m.style.width=`${m.width/l}px`,m.style.height=`${m.height/l}px`);let d,v,M,x,f,p,w,O,D=0;for(let N=e.length-1;N>=0;N-=1){let K=e[N],{train_id:J,timeOffset:Q}=K.properties,{coord:V,rotation:me}=Qt(s-(Q||0),K,h);if(e[N].properties.coordinate=V,e[N].properties.rotation=me,!V)continue;let E=ns(b,[...V]);if(!E||(E=E.map(Ee=>Ee*l),E[0]<0||E[0]>m.width||E[1]<0||E[1]>m.height))continue;let A=this.style(K,t,i);if(!A)continue;D+=1;let Y=A.width,ee=A.height;u!==J&&y!==J&&g.drawImage(A,E[0]-Y/2,E[1]-ee/2,Y,ee),u&&u===J&&(d=A,v=E,M=Y,x=ee),y&&y===J&&(f=A,p=E,w=Y,O=ee)}return f&&g.drawImage(f,p[0]-w/2,p[1]-O/2,w,O),d&&g.drawImage(d,v[0]-M/2,v[1]-x/2,M,x),{nbTrajectoriesRendered:D}}};var as=(r,e,t,i)=>{let s=[];if(!r&&!e&&!t&&!i)return null;if(i){let n=typeof i=="string"?[i]:i,o=a=>{let c=a.properties.name||a.properties.line&&a.properties.line.name||"";return c?n.some(l=>new RegExp(l,"i").test(c)):!1};s.push(o)}if(r){let o=(typeof r=="string"?r.split(","):r).map(c=>c.replace(/\s+/g,"").toUpperCase()),a=c=>{let{line:l,name:h}=c.properties,u=(h||l&&l.name||"").toUpperCase();return u?o.includes(u):!1};s.push(a)}if(e){let o=(typeof e=="string"?e.split(","):e).map(c=>parseInt(c,10)),a=c=>{let l=parseInt(c.properties.routeIdentifier.split(".")[0],10);return o.includes(l)};s.push(a)}if(t){let n=typeof t=="string"?[t]:t,o=a=>n.some(c=>new RegExp(c,"i").test(a.properties.operator));s.push(o)}return s.length?n=>{for(let o=0;o<s.length;o+=1)if(!s[o](n))return!1;return!0}:null},Yt=as;var er=re(ye());import ls from"ol/Object";var qe=class extends ls{constructor(e={}){super(),this.url=e.url,this.apiKey=e.apiKey}fetch(e,t,i){let s={...t||{},key:this.apiKey},n={...s};return Object.keys(s).forEach(o=>(n[o]===void 0||n[o]===null)&&delete n[o]),this.apiKey?fetch(`${this.url}${e||""}?${er.default.stringify(n)}`,i).then(o=>{try{return o.json().then(a=>{if(a.error)throw new Error(a.error);return a})}catch(a){return Promise.reject(new Error(a))}}):Promise.reject(new Error(`No apiKey defined for request to ${this.url}`))}},He=qe;var Ke=class extends He{constructor(e={}){super({url:"https://api.geops.io/stops/v1/",...e})}search(e,t={}){return this.fetch("",e,{signal:t.signal}).then(i=>i.features)}},ze=Ke;var X=class{constructor(){this.defineProperties()}defineProperties(){Object.defineProperties(this,{closed:{get:()=>!!(this.websocket&&this.websocket.readyState===this.websocket.CLOSED)},closing:{get:()=>!!(this.websocket&&this.websocket.readyState===this.websocket.CLOSING)},connecting:{get:()=>!!(this.websocket&&this.websocket.readyState===this.websocket.CONNECTING)},open:{get:()=>!!(this.websocket&&this.websocket.readyState===this.websocket.OPEN)},messagesOnOpen:{value:[],writable:!0},subscriptions:{value:[],writable:!0},subscribed:{value:{},writable:!0}})}static getRequestString(e,t){let i=`${e} ${t.channel}`;return i+=t.args?` ${t.args}`:"",i+=t.id?` ${t.id}`:"",i.trim()}connect(e,t=()=>{}){this.websocket&&!this.closed&&this.websocket.close(),this.websocket=new WebSocket(e),this.open?(t(),this.subscribePreviousSubscriptions()):this.websocket.addEventListener("open",()=>{t(),this.subscribePreviousSubscriptions()})}close(){this.websocket&&(this.websocket.onclose=null,this.websocket.close(),this.websocket=null,this.messagesOnOpen=[])}send(e){if(!this.websocket)return;let t=()=>{this.websocket.send(e)};this.open?this.messagesOnOpen.includes(e)||t():this.messagesOnOpen.includes(e)||(this.messagesOnOpen.push(e),this.websocket.addEventListener("open",()=>{this.messagesOnOpen=[],t()}),this.websocket.addEventListener("close",()=>{this.messagesOnOpen=[]}))}listen(e,t,i){this.unlisten(e,t);let s=n=>{let o={};try{o=JSON.parse(n.data)}catch(l){console.error("WebSocket: unable to parse JSON data",l,n.data)}let a=e.channel;a+=e.args?` ${e.args}`:"",(o.source==="buffer"?o.content:[o]).forEach(l=>{l?.source===a&&(!e.id||e.id===o.client_reference)&&t(l)})};return this.websocket&&(this.websocket.addEventListener("message",s),i&&(this.websocket.addEventListener("error",i),this.websocket.addEventListener("close",i))),{onMessageCb:s,onErrorCb:i}}unlisten(e,t){!this.websocket||this.subscriptions.filter(i=>i.params.channel===e.channel&&(!t||i.cb===t)).forEach(({onMessageCb:i,onErrorCb:s})=>{this.websocket&&(this.websocket.removeEventListener("message",i),s&&(this.websocket.removeEventListener("error",s),this.websocket.removeEventListener("close",s)))})}get(e,t,i){let s=X.getRequestString("GET",e);this.send(s),this.listen(e,t,i)}subscribe(e,t,i,s=!1){let{onMessageCb:n,onErrorCb:o}=this.listen(e,t,i),a=X.getRequestString("",e),c=this.subscriptions.findIndex(h=>e.channel===h.params.channel&&t===h.cb),l={params:e,cb:t,errorCb:i,onMessageCb:n,onErrorCb:o,quiet:s};c>-1?this.subscriptions[c]=l:this.subscriptions.push(l),this.subscribed[a]||(l.quiet||(this.send(`GET ${a}`),this.send(`SUB ${a}`)),this.subscribed[a]=!0)}unsubscribe(e,t){let i=this.subscriptions.filter(s=>s.params.channel===e&&(!t||s.cb===t));i.forEach(({onMessageCb:s,onErrorCb:n})=>{this.websocket&&(this.websocket.removeEventListener("message",s),n&&(this.websocket.removeEventListener("error",n),this.websocket.removeEventListener("close",n)))}),this.subscriptions=this.subscriptions.filter(s=>s.params.channel!==e||t&&s.cb!==t),e&&this.subscribed[e]&&!this.subscriptions.find(s=>s.params.channel===e)&&i.find(s=>!s.quiet)&&(this.send(`DEL ${e}`),this.subscribed[e]=!1)}subscribePreviousSubscriptions(){Object.keys(this.subscribed).forEach(e=>{this.subscribed[e]=!1}),[...this.subscriptions].forEach(e=>{this.subscribe(e.params,e.cb,e.errorCb,e.quiet)})}},tr=X;var R=(r,e)=>r===e.SCHEMATIC?"_schematic":"",rr=(r,e,t=!1)=>{let i=["HIDDEN","LEAVING","BOARDING"],s=r.has_fzo&&i.indexOf(r.state)>-1,n=e.has_fzo&&i.indexOf(e.state)>-1;if(s||n){if(s!==n)return s?-1:1;if(r.state!==e.state)return i.indexOf(r.state)-i.indexOf(e.state)}let o=null,a=null,c=Date.now();return t?(o=new Date(r.min_arrival_time||r.time).getTime()-c,a=new Date(e.min_arrival_time||e.time).getTime()-c):(o=new Date(r.time).getTime()-c,a=new Date(e.time).getTime()-c),o-a},_e=r=>{if(!!r)return r.stations.forEach(e=>{e.arrivalTimeWithDelay=e.arrivalTime,e.departureTime&&(e.departureTimeWithDelay=e.departureTime),e.arrivalDelay&&(e.arrivalTime-=e.arrivalDelay,e.departureTime&&(e.departureTime-=e.arrivalDelay))}),r};var P={RAW:"raw",TOPOGRAPHIC:"topographic",SCHEMATIC:"schematic"},Ze=class{constructor(e={}){this.defineProperties(e),this.subscribedStationUic=null,this.departureUpdateTimeout=null,this.maxDepartureAge=30,this.extraGeoms={},this.prefix=e.prefix||"",this.onOpen=this.onOpen.bind(this)}defineProperties(e){let t=e;typeof e=="string"&&(t={url:e});let{apiKey:i}=t,{url:s,projection:n,bbox:o,buffer:a=[100,100]}=t,c=new tr;i&&(s=`${s||"wss://api.geops.io/tracker-ws/v1/"}?key=${i}`),Object.defineProperties(this,{url:{get:()=>s,set:l=>{s=l,this.open()}},projection:{get:()=>n,set:l=>{l!==n&&(n=l,this.conn&&this.conn.send(`PROJECTION ${n}`))}},bbox:{get:()=>o,set:l=>{JSON.stringify(l)!==JSON.stringify(o)&&(o=l,this.conn&&this.conn.send(`BBOX ${o.join(" ")}`))}},buffer:{get:()=>a,set:l=>{JSON.stringify(l)!==JSON.stringify(a)&&(a=l,this.conn&&this.conn.send(`BUFFER ${a.join(" ")}`))}},conn:{value:c,writable:!0},pingIntervalMs:{value:e.pingIntervalMs||1e4,writable:!0},reconnectTimeoutMs:{value:e.pingIntervalMs||100,writable:!0}})}open(){this.close(),this.conn.connect(this.url,this.onOpen),this.conn.websocket.onclose=()=>{this.onClose()}}close(){this.conn.close()}reset(){this.conn.send("RESET")}onOpen(){this.projection&&this.conn.send(`PROJECTION ${this.projection}`),this.bbox&&this.conn.send(`BBOX ${this.bbox.join(" ")}`),this.buffer&&this.conn.send(`BUFFER ${this.buffer.join(" ")}`),this.pingIntervalMs&&(window.clearInterval(this.pingInterval),this.pingInterval=setInterval(()=>{this.conn.send("PING")},this.pingIntervalMs))}onClose(){window.clearTimeout(this.pingInterval),window.clearTimeout(this.reconnectTimeout),this.reconnectTimeoutMs&&(this.reconnectTimeout=window.setTimeout(()=>this.open(),this.reconnectTimeoutMs))}subscribe(e,t,i,s=!1){this.conn.subscribe({channel:e},t,i,s)}unsubscribe(e,t,i){this.conn.unsubscribe(`${e}${R(P.SCHEMATIC,P)}${t}`,i),this.conn.unsubscribe(`${e}${R(P.TOPOGRAPHIC,P)}${t||""}`,i)}filterDepartures(e,t=!1){let i=Object.keys(e).map(l=>e[l]);i.sort((l,h)=>rr(l,h,t));let s=new Date;s.setMinutes(s.getMinutes()+this.maxDepartureAge),s=s.getTime();let n=new Date;n.setMinutes(n.getMinutes()-this.maxDepartureAge),n=n.getTime();let o=[],a=[],c=null;for(let l=i.length-1;l>=0;l-=1){let h=i[l],u=new Date(h.time).getTime();u>n&&u<s&&(h.state==="BOARDING"&&(a.indexOf(h.platform)===-1?a.push(h.platform):h.state="HIDDEN"),c&&h.to[0]===c.to[0]&&Math.abs(u-c.time)<1e3&&h.line.name===c.line.name&&(h.state="HIDDEN"),/(STOP_CANCELLED|JOURNEY_CANCELLED)/.test(h.state)&&(h.cancelled=!0),c=h,c.time=u,o.unshift(h))}return o}subscribeDepartures(e,t,i){window.clearTimeout(this.departureUpdateTimeout),this.unsubscribeDepartures(),this.subscribedStationUic=e;let s=e?`timetable_${e}`:null,n={};this.subscribe(s,o=>{if(o.source===s){let a=o.content||{},c=new Date(a.timestamp).getTime()-Date.now();a.timediff=c,n[a.call_id]=a,window.clearTimeout(this.departureUpdateTimeout),this.departureUpdateTimeout=window.setTimeout(()=>{let l=this.filterDepartures(n,t||!1);i(l)},100)}},()=>{i([])})}unsubscribeDepartures(e){this.subscribedStationUic&&(this.unsubscribe(`timetable_${this.subscribedStationUic}`,"",e),this.subscribedStationUic=null)}subscribeDisruptions(e){this.subscribe(`${this.prefix}newsticker`,t=>{e(t.content)})}unsubscribeDisruptions(e){this.unsubscribe(`${this.prefix}newsticker`,"",e)}getStation(e,t){let i={channel:`station${R(t,P)}`,args:e};return new Promise((s,n)=>{this.conn.get(i,o=>{o.content?s(o.content):n()})})}getStations(e){let t=[],i={channel:`station${R(e,P)}`};return window.clearTimeout(this.stationUpdateTimeout),new Promise((s,n)=>{this.conn.get(i,o=>{o.content?(t.push(o.content),window.clearTimeout(this.stationUpdateTimeout),this.stationUpdateTimeout=window.setTimeout(()=>{s(t)},50)):n(o.content)})})}subscribeStations(e,t){this.unsubscribeStations(),this.subscribe(`station${R(e,P)}`,i=>{i.content&&t(i.content)})}unsubscribeStations(e){window.clearTimeout(this.stationUpdateTimeout),this.unsubscribe("station","",e)}subscribeExtraGeoms(e){this.subscribe("extra_geoms",t=>{let i=t.content;if(i){let{ref:s}=i.properties;i.type==="Feature"?this.extraGeoms[s]=i:delete this.extraGeoms[s],e(Object.keys(this.extraGeoms).map(n=>this.extraGeoms[n]))}})}unsubscribeExtraGeoms(e){this.unsubscribe("extra_geoms","",e)}subscribeTrajectory(e,t,i=!1){this.unsubscribeTrajectory(t),this.subscribe(`trajectory${R(e,P)}`,t,null,i)}unsubscribeTrajectory(e){this.unsubscribe("trajectory","",e)}subscribeDeletedVehicles(e,t,i=!1){this.unsubscribeDeletedVehicles(t),this.subscribe(`deleted_vehicles${R(e,P)}`,t,null,i)}unsubscribeDeletedVehicles(e){this.unsubscribe("deleted_vehicles","",e)}getFullTrajectory(e,t,i){let s=[`full_trajectory${R(t,P)}`];e&&s.push(e),(!t||t===P.TOPOGRAPHIC)&&i&&s.push(`gen${i}`);let n={channel:s.join("_")};return new Promise(o=>{this.conn.get(n,a=>{a.content&&o(a.content)})})}getFullTrajectories(e,t,i){let s=e.map(n=>this.getFullTrajectory(n,t,i));return Promise.all(s)}subscribeFullTrajectory(e,t){this.unsubscribeFullTrajectory(e),this.subscribe(`full_trajectory${R(t,P)}_${e}`,i=>{console.log("subscribe full_trajectory",i)},i=>{console.log("subscribe full_trajectory error",i)})}unsubscribeFullTrajectory(e,t){this.unsubscribe("full_trajectory",`_${e}`,t)}getStopSequence(e){let t={channel:`stopsequence_${e}`};return new Promise((i,s)=>{this.conn.get(t,n=>{if(n.content&&n.content.length){let o=n.content.map(a=>_e(a));i(o)}i([])},n=>{s(n)})})}getStopSequences(e){let t=e.map(i=>this.getStopSequence(i));return Promise.all(t)}subscribeStopSequence(e,t){window.clearTimeout(this.fullTrajectoryUpdateTimeout),this.unsubscribeStopSequence(e),this.subscribe(`stopsequence_${e}`,i=>{if(i.content&&i.content.length){let s=i.content.map(n=>_e(n));t(s)}},i=>{console.log("subscribe stopsequence error",i)})}unsubscribeStopSequence(e,t){this.unsubscribe("stopsequence",`_${e}`,t)}subscribeHealthCheck(e){this.unsubscribeHealthCheck(),this.subscribe("healthcheck",e)}unsubscribeHealthCheck(){this.unsubscribe("healthcheck")}},We=Ze;var ps="publishedlinename",gs="tripnumber",ys="operator";var bs=r=>class extends r{constructor(e={}){super({hitTolerance:10,...e}),this.debug=e.debug,this.mode=e.mode||P.TOPOGRAPHIC,this.api=e.api||new We(e),this.tenant=e.tenant||"",this.minZoomNonTrain=e.minZoomNonTrain||9,this.minZoomInterpolation=e.minZoomInterpolation||8,this.format=new ds,this.generalizationLevelByZoom=e.generalizationLevelByZoom||{0:5,1:5,2:5,3:5,4:5,5:5,6:5,7:5,8:10,9:30,10:30,11:100,12:100,13:100},this.isUpdateBboxOnMoveEnd=e.isUpdateBboxOnMoveEnd!==!1,this.throttleRenderTrajectories=(0,Xe.default)(this.renderTrajectoriesInternal,50,{leading:!1,trailing:!0}),this.debounceRenderTrajectories=(0,Je.default)(this.renderTrajectoriesInternal,50,{leading:!0,trailing:!0,maxWait:5e3}),this.onFeatureHover=this.onFeatureHover.bind(this),this.onFeatureClick=this.onFeatureClick.bind(this),this.renderTrajectoriesInternal=this.renderTrajectoriesInternal.bind(this),this.onTrajectoryMessage=this.onTrajectoryMessage.bind(this),this.onDeleteTrajectoryMessage=this.onDeleteTrajectoryMessage.bind(this),this.onDocumentVisibilityChange=this.onDocumentVisibilityChange.bind(this)}defineProperties(e){let{regexPublishedLineName:t,publishedLineName:i,tripNumber:s,operator:n}=e,{style:o,speed:a,pixelRatio:c,hoverVehicleId:l,selectedVehicleId:h,filter:u,sort:y,time:m,live:g}=e,C={style:o};Object.keys(C).forEach(d=>C[d]===void 0&&delete C[d]);let S=a||1,b=m||new Date;super.defineProperties(e),Object.defineProperties(this,{isTrackerLayer:{value:!0},style:{value:(d,v)=>(o||we)(d,v,this)},speed:{get:()=>S,set:d=>{S=d,this.start()}},filter:{value:u,writable:!0},sort:{value:y,writable:!0},tracker:{value:null,writable:!0},styleCache:{value:{}},live:{value:g===!1?g:!0,writable:!0},time:{get:()=>b,set:d=>{b=d&&d.getTime?d:new Date(d),this.renderTrajectories()}},trajectories:{value:{},writable:!0},renderedTrajectories:{get:()=>this.tracker&&this.tracker.renderedTrajectories||[]},hoverVehicleId:{value:l,writable:!0},selectedVehicleId:{value:h,writable:!0},pixelRatio:{value:c||(typeof window<"u"?window.devicePixelRatio:1),writable:!0},initTrackerOptions:{value:C,writable:!1},useRequestAnimationFrame:{value:e.useRequestAnimationFrame||!1,writable:!0},useThrottle:{value:e.useThrottle||!0,writable:!0},useDebounce:{value:e.useDebounce||!1,writable:!0},publishedLineName:{get:()=>i,set:d=>{i=d,this.updateFilters()}},tripNumber:{get:()=>s,set:d=>{s=d,this.updateFilters()}},operator:{get:()=>n,set:d=>{n=d,this.updateFilters()}},regexPublishedLineName:{get:()=>t,set:d=>{t=d,this.updateFilters()}},delayDisplay:{value:e.delayDisplay||3e5,writable:!0},delayOutlineColor:{value:e.delayOutlineColor||"#000000",writable:!0}}),this.updateFilters()}init(e){super.init(e),this.tracker=new ae({style:(...t)=>this.style(...t),...this.initTrackerOptions}),this.visible&&this.start(),this.visibilityRef=this.on("change:visible",t=>{t.target.visible?this.start():this.stop()}),document.addEventListener("visibilitychange",this.onDocumentVisibilityChange)}terminate(){if(document.removeEventListener("visibilitychange",this.onDocumentVisibilityChange),this.stop(),fs(this.visibilityRef),this.tracker){let{canvas:e}=this.tracker;e.getContext("2d").clearRect(0,0,e.width,e.height),this.tracker=null}super.terminate()}start(){this.stop(),this.renderTrajectories(),this.startUpdateTime(),this.isClickActive&&this.onClick(this.onFeatureClick),this.isHoverActive&&this.onHover(this.onFeatureHover),this.api.open(),this.api.subscribeTrajectory(this.mode,this.onTrajectoryMessage,this.isUpdateBboxOnMoveEnd),this.api.subscribeDeletedVehicles(this.mode,this.onDeleteTrajectoryMessage,this.isUpdateBboxOnMoveEnd),this.isUpdateBboxOnMoveEnd&&this.setBbox()}startUpdateTime(){this.stopUpdateTime(),this.updateTimeDelay=this.getRefreshTimeInMs(),this.updateTimeInterval=setInterval(()=>{this.time=this.live?new Date:this.time.getTime()+this.updateTimeDelay*this.speed},this.updateTimeDelay)}stop(){this.api.unsubscribeTrajectory(this.onTrajectoryMessage),this.api.unsubscribeDeletedVehicles(this.onDeleteTrajectoryMessage),this.api.close()}stopUpdateTime(){this.updateTimeInterval&&clearInterval(this.updateTimeInterval)}renderTrajectoriesInternal(e,t){if(!this.tracker)return!1;let i=this.live?Date.now():this.time,s=Object.values(this.trajectories);return this.sort&&s.sort(this.sort),this.renderState=this.tracker.renderTrajectories(s,{...e,pixelRatio:this.pixelRatio,time:i},{noInterpolate:e.zoom<this.minZoomInterpolation?!0:t,hoverVehicleId:this.hoverVehicleId,selectedVehicleId:this.selectedVehicleId,iconScale:this.iconScale,delayDisplay:this.delayDisplay,delayOutlineColor:this.delayOutlineColor}),!0}renderTrajectories(e,t){this.requestId&&(cancelAnimationFrame(this.requestId),this.requestId=null),!t&&this.useRequestAnimationFrame?this.requestId=requestAnimationFrame(()=>{this.renderTrajectoriesInternal(e,t)}):!t&&this.useDebounce?this.debounceRenderTrajectories(e,t):!t&&this.useThrottle?this.throttleRenderTrajectories(e,t):this.renderTrajectoriesInternal(e,t)}setBbox(e,t){let i=Object.keys(this.trajectories);for(let n=i.length-1;n>=0;n-=1)this.purgeTrajectory(this.trajectories[i[n]],e,t);let s=[...e];this.isUpdateBboxOnMoveEnd&&(s.push(t),this.tenant&&s.push(`tenant=${this.tenant}`),this.generalizationLevel=this.generalizationLevelByZoom[t],this.generalizationLevel&&s.push(`gen=${this.generalizationLevel}`)),this.api.bbox=s}setMode(e){this.mode!==e&&(this.mode=e,this.api.subscribeTrajectory(this.mode,this.onTrajectoryMessage,this.isUpdateBboxOnMoveEnd),this.api.subscribeDeletedVehicles(this.mode,this.onDeleteTrajectoryMessage,this.isUpdateBboxOnMoveEnd))}getRefreshTimeInMs(e){let t=Math.round(e),i=Rt[t]||25,s=Math.max(25,i/this.speed),n=Math.min(s,500);if(this.useThrottle?this.throttleRenderTrajectories=(0,Xe.default)(this.renderTrajectoriesInternal,n,{leading:!0,trailing:!0}):this.useDebounce&&(this.debounceRenderTrajectories=(0,Je.default)(this.renderTrajectoriesInternal,n,{leading:!0,trailing:!0,maxWait:5e3})),this.api?.buffer){let[,o]=this.api.buffer;this.api.buffer=[n,o]}return s}getVehicle(e){return Object.values(this.trajectories).filter(e)}getFeatureInfoAtCoordinate(e,t={}){let{resolution:i,nb:s}=t,n=cs([...e,...e],this.hitTolerance*i),o=Object.values(this.trajectories);this.sort&&(o=o.sort(this.sort));let a=[];for(let c=0;c<o.length&&(o[c].properties.coordinate&&hs(n,o[c].properties.coordinate)&&a.push(o[c]),a.length!==s);c+=1);return Promise.resolve({layer:this,features:a.map(c=>this.format.readFeature(c)),coordinate:e})}getTrajectoryInfos(e){let t=[this.api.getStopSequence(e,this.mode),this.api.getFullTrajectory(e,this.mode,this.generalizationLevel)];return Promise.all(t).then(([i,s])=>({stopSequence:i,fullTrajectory:s}))}purgeTrajectory(e,t,i){let{type:s,bounds:n,train_id:o}=e.properties;return!us(t,n)||s!=="rail"&&i<(this.minZoomNonTrain||9)?(this.removeTrajectory(o),!0):!1}addTrajectory(e){this.filter&&!this.filter(e)||(this.trajectories[e.properties.train_id]=e,this.renderTrajectories())}removeTrajectory(e){delete this.trajectories[e]}onZoomEnd(e){this.startUpdateTime()}onDocumentVisibilityChange(){!this.visible||(document.hidden?this.stop():this.start())}onTrajectoryMessage(e){if(!e.content)return;let t=e.content,{geometry:i,properties:{train_id:s,time_since_update:n,raw_coordinates:o}}=t;n<0||this.purgeTrajectory(t)||(this.debug&&this.mode===P.TOPOGRAPHIC&&o?t.properties.olGeometry={type:"Point",coordinates:ms(o,this.map.getView().getProjection())}:t.properties.olGeometry=this.format.readGeometry(i),t.properties.timeOffset=Date.now()-e.timestamp,this.addTrajectory(t))}onDeleteTrajectoryMessage(e){!e.content||this.removeTrajectory(e.content)}onFeatureHover(e,t,i){let[s]=e,n=null;s&&(n=s.get("train_id")),this.hoverVehicleId!==n&&(this.hoverVehicleId=n,this.renderTrajectories(!0))}onFeatureClick(e,t,i){let[s]=e,n=null;s&&(n=s.get("train_id")),this.selectedVehicleId!==n&&(this.selectedVehicleId=n,this.selectedVehicle=s,this.renderTrajectories(!0))}updateFilters(){let e=ir.default.parse(window.location.search.toLowerCase()),t=this.publishedLineName||e[ps],i=this.tripNumber||e[gs],s=this.operator||e[ys],{regexPublishedLineName:n}=this;(t||i||s||n)&&(this.filter=Yt(t,i,s,n))}},Se=bs;import{Style as sr,Fill as nr,Stroke as or,Circle as ar}from"ol/style";var vs=new sr({zIndex:2,image:new ar({radius:5,fill:new nr({color:"#000000"})}),stroke:new or({color:"#000000",width:6})}),xs=r=>{let e="#ffffff",t=r.get("type"),i=r.get("stroke");return i&&i[0]!=="#"&&(i=`#${i}`),e=i||be(t),e=/#ffffff/i.test(e)?"#ff0000":e,[vs,new sr({zIndex:3,image:new ar({radius:4,fill:new nr({color:e})}),stroke:new or({color:e,width:4})})]},Qe=xs;import{Style as lr,Fill as cr,Stroke as hr,Circle as ur}from"ol/style";var fa=new lr({zIndex:2,image:new ur({radius:5,fill:new cr({color:"#000000"})}),stroke:new hr({color:"#000000",width:6})}),da=new lr({zIndex:3,image:new ur({radius:4,fill:new cr({color:"#a0a0a0"})}),stroke:new hr({color:"#a0a0a0",width:4})});var ks=new ws,le=class extends Se(F){constructor(e={}){super({...e}),this.olLayer=e.olLayer||new Cs({layers:[new Ss({source:new Es({features:[]}),style:e.fullTrajectoryStyle||Qe}),new Ls({source:new Ts({}),render:t=>{if(!this.tracker||!this.tracker.canvas)return null;if(this.container||(this.container=document.createElement("div"),this.container.style.position="absolute",this.container.style.width="100%",this.container.style.height="100%",this.transformContainer=document.createElement("div"),this.transformContainer.style.position="absolute",this.transformContainer.style.width="100%",this.transformContainer.style.height="100%",this.container.appendChild(this.transformContainer),this.tracker.canvas.style.position="absolute",this.tracker.canvas.style.top="0",this.tracker.canvas.style.left="0",this.tracker.canvas.style.transformOrigin="top left",this.transformContainer.appendChild(this.tracker.canvas)),this.renderedViewState){let{center:i,resolution:s,rotation:n}=t.viewState,{center:o,resolution:a,rotation:c}=this.renderedViewState;if(a/s>=3){let{canvas:l}=this.tracker;l.getContext("2d").clearRect(0,0,l.width,l.height)}else{let l=this.map.getPixelFromCoordinate(o),h=this.map.getPixelFromCoordinate(i);this.transformContainer.style.transform=Ms(l[0]-h[0],l[1]-h[1],a/s,a/s,n-c,0,0)}}return this.container}})]}),this.vectorLayer=this.olLayer.getLayers().item(0),this.renderState={center:[0,0],zoom:null,rotation:0}}init(e){super.init(e),this.map&&this.olListenersKeys.push(this.map.on(["moveend","change:target"],t=>{let i=this.map.getView();if(i.getAnimating()||i.getInteracting())return;let s=i.getZoom();this.currentZoom!==s&&this.onZoomEnd(t),this.currentZoom=s,this.onMoveEnd(t)}))}terminate(){super.terminate(),this.container=null}hasFeatureInfoAtCoordinate(e){if(this.map&&this.tracker&&this.tracker.canvas){let t=this.tracker.canvas.getContext("2d"),i=this.map.getPixelFromCoordinate(e);return!!t.getImageData(i[0]*this.pixelRatio,i[1]*this.pixelRatio,1,1).data[3]}return!1}renderTrajectories(e){let t=this.map.getView();super.renderTrajectories({size:this.map.getSize(),center:this.map.getView().getCenter(),extent:t.calculateExtent(),resolution:t.getResolution(),rotation:t.getRotation(),zoom:t.getZoom(),pixelRatio:this.pixelRatio},e)}renderTrajectoriesInternal(e,t){let i=!1;i=this.map.getView().getAnimating()||this.map.getView().getInteracting()?!1:super.renderTrajectoriesInternal(e,t),i&&(this.renderedViewState={...e},this.transformContainer&&(this.transformContainer.style.transform=""))}getRefreshTimeInMs(){return super.getRefreshTimeInMs(this.map.getView().getZoom())}getFeatureInfoAtCoordinate(e,t={}){let i=this.map.getView().getResolution();return super.getFeatureInfoAtCoordinate(e,{resolution:i,...t})}onMoveEnd(){this.visible&&this.isUpdateBboxOnMoveEnd&&this.setBbox(),this.visible&&this.isUpdateBboxOnMoveEnd&&this.isClickActive&&this.selectedVehicleId&&this.highlightTrajectory(this.selectedVehicleId)}onZoomEnd(e){super.onZoomEnd(e)}onFeatureHover(e,t,i){super.onFeatureHover(e,t,i),this.map.getTargetElement().style.cursor=e.length?"pointer":"auto"}onFeatureClick(e,t,i){super.onFeatureClick(e,t,i),!e.length&&this.vectorLayer&&this.vectorLayer.getSource().clear(),this.selectedVehicleId&&this.highlightTrajectory(this.selectedVehicleId)}purgeTrajectory(e,t,i){return super.purgeTrajectory(e,t||this.map.getView().calculateExtent(),i||this.map.getView().getZoom())}setBbox(e,t){let i=e,s=t;!i&&this.isUpdateBboxOnMoveEnd&&(i=e||this.map.getView().calculateExtent(),s=Math.floor(this.map.getView().getZoom())),super.setBbox(i,s)}highlightTrajectory(e){this.api.getFullTrajectory(e,this.mode,this.generalizationLevel).then(t=>{if(this.vectorLayer.getSource().clear(),!t||!t.features||!t.features.length)return;let s=ks.readFeatures(t);this.vectorLayer.getSource().addFeatures(s)})}clone(e){return new le({...this.options,...e})}},Ye=le;var ce=class extends F{getFeatureInfoAtCoordinate(e){let t=[];if(this.map){let i=this.map.getPixelFromCoordinate(e);t=this.map.getFeaturesAtPixel(i,{layerFilter:s=>s===this.olLayer,hitTolerance:this.hitTolerance})}return Promise.resolve({features:t,layer:this,coordinate:e})}clone(e){return new ce({...this.options,...e})}},et=ce;import Ps from"ol/format/GeoJSON";var he=class extends F{constructor(e={}){super(e),this.abortController=new AbortController,this.format=new Ps}getFeatureInfoUrl(e){let t=this.map.getView().getProjection(),i=this.map.getView().getResolution();return this.olLayer.getSource().getFeatureInfoUrl?this.olLayer.getSource().getFeatureInfoUrl(e,i,t,{info_format:"application/json",query_layers:this.olLayer.getSource().getParams().layers}):!1}getFeatureInfoAtCoordinate(e){this.abortController.abort(),this.abortController=new AbortController;let{signal:t}=this.abortController;return fetch(this.getFeatureInfoUrl(e),{signal:t}).then(i=>i.json()).then(i=>i.features).then(i=>({layer:this,coordinate:e,features:i.map(s=>this.format.readFeature(s))})).catch(()=>Promise.resolve({features:[],coordinate:e,layer:this}))}clone(e){return new he({...this.options,...e})}},tt=he;import{inView as Os}from"ol/layer/Layer";import Fs from"ol/Object";var rt=class extends Fs{constructor(e={}){super(e),this.defineProperties(e);let{active:t}={active:e.active!==!1,...e};this.active=t}defineProperties(e){let{target:t,element:i,render:s}={...e};Object.defineProperties(this,{active:{get:()=>this.get("active"),set:n=>{this.set("active",n),n?this.activate():this.deactivate(),this.render()}},map:{get:()=>this.get("map"),set:n=>{if(this.map&&this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.deactivate(),this.set("map",n),this.map){let o=this.target||this.map.getTargetElement&&this.map.getTargetElement()||this.map.getContainer&&this.map.getContainer();this.element||this.createDefaultElement(),this.element&&o.appendChild(this.element),this.active&&this.activate()}this.render()}},target:{value:t},element:{value:i,writable:!0},render:{value:s||this.render,writable:!0}})}activate(){this.deactivate()}deactivate(){}render(){}createDefaultElement(){}},Z=rt;var Is=r=>class extends r{render(){!this.element||(this.element.innerHTML=this.active?this.getCopyrights().join(" | "):"")}createDefaultElement(){this.element=document.createElement("div"),this.element.id="mbt-copyright",Object.assign(this.element.style,{position:"absolute",bottom:0,right:0,fontSize:".8rem",padding:"0 10px"})}},Te=Is;var fr=class extends Te(Z){constructor(e){super(e),this.onPostRender=this.onPostRender.bind(this)}getCopyrights(){if(!this.frameState)return[];let e=[];return this.frameState.layerStatesArray.forEach(t=>{let{layer:i}=t;Os(t,this.frameState.viewState)&&i&&i.getSource&&i.getSource()&&i.getSource().getAttributions()&&(e=e.concat(i.getSource().getAttributions()(this.frameState)))}),ne(e)}activate(){super.activate(),this.map&&this.map.on("postrender",this.onPostRender)}deactivate(){this.map&&this.map.un("postrender",this.onPostRender),super.deactivate()}onPostRender(e){this.map&&this.element&&(this.frameState=e.frameState,this.render())}};import{Feature as za}from"ol";import{LineString as Za,Point as Wa}from"ol/geom";import{Modify as Xa}from"ol/interaction";import{unByKey as Ya}from"ol/Observable";import{click as tl}from"ol/events/condition";import{GeoJSON as il}from"ol/format";import{buffer as nl}from"ol/extent";import{fromLonLat as al,toLonLat as ll}from"ol/proj";import{fromLonLat as js}from"ol/proj";var Rs=r=>class extends r{constructor(e={}){super(e);let{apiParams:t,apiKey:i,url:s}=e;this.apiParams={limit:20,...t||{}},this.placeholder=e.placeholder||"Search for a stop...";let n={apiKey:i};s&&(n.url=s),this.api=new ze(n),this.abortController=new AbortController}render(e=[]){!this.suggestionsElt||(this.suggestionsElt.style.display=e.length?"block":"none",this.suggestionsElt.innerHTML="",e.forEach(t=>{let{properties:i}=t,s=document.createElement("div");s.innerHTML=i.name,s.onclick=()=>{this.onSuggestionClick(t)},Object.assign(s.style,{padding:"5px 12px"}),this.suggestionsElt.appendChild(s)}))}createDefaultElement(){this.element=document.createElement("div"),this.element.id="mbt-search",Object.assign(this.element.style,{position:"absolute",top:0,left:"50px",margin:"10px",display:"flex",flexDirection:"column",width:"320px"}),this.inputElt=document.createElement("input"),this.inputElt.type="text",this.inputElt.placeholder=this.placeholder,this.inputElt.autoComplete="off",this.inputElt.onkeyup=e=>{this.abortController.abort(),this.abortController=new AbortController,this.search(e.target.value,this.abortController)},Object.assign(this.inputElt.style,{padding:"10px 30px 10px 10px"}),this.element.appendChild(this.inputElt),this.suggestionsElt=document.createElement("div"),Object.assign(this.suggestionsElt.style,{backgroundColor:"white",overflowY:"auto",cursor:"pointer"}),this.element.appendChild(this.suggestionsElt),this.clearElt=document.createElement("div"),Object.assign(this.clearElt.style,{display:"none",position:"absolute",right:"0",padding:"0 10px",fontSize:"200%",cursor:"pointer"}),this.clearElt.innerHTML="\xD7",this.clearElt.onclick=()=>this.clear(),this.element.appendChild(this.clearElt)}search(e,t){return(e!==void 0||e!==null)&&(this.apiParams.q=e),this.clearElt&&(this.clearElt.style.display="block"),this.api.search(this.apiParams,t).then(i=>{this.render(i)}).catch(()=>{this.render()})}onSuggestionClick(e){}clear(){!this.suggestionsElt||(this.inputElt.value="",this.suggestionsElt.innerHTML="",this.clearElt.style.display="none")}},dr=Rs;var mr=class extends dr(Z){onSuggestionClick({geometry:e}){let t=js(e.coordinates);this.map.getView().setCenter(t)}};import{fromLonLat as de}from"ol/proj";import{unByKey as Xs}from"ol/Observable";import{getWidth as Qs,getHeight as Ys}from"ol/extent";var T=63710088e-1,pr={centimeters:T*100,centimetres:T*100,degrees:T/111325,feet:T*3.28084,inches:T*39.37,kilometers:T/1e3,kilometres:T/1e3,meters:T,metres:T,miles:T/1609.344,millimeters:T*1e3,millimetres:T*1e3,nauticalmiles:T/1852,radians:1,yards:T*1.0936},$l={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/T,yards:1.0936133};function gr(r,e,t){t===void 0&&(t={});var i={type:"Feature"};return(t.id===0||t.id)&&(i.id=t.id),t.bbox&&(i.bbox=t.bbox),i.properties=e||{},i.geometry=r,i}function H(r,e,t){if(t===void 0&&(t={}),!r)throw new Error("coordinates is required");if(!Array.isArray(r))throw new Error("coordinates must be an Array");if(r.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!it(r[0])||!it(r[1]))throw new Error("coordinates must contain numbers");var i={type:"Point",coordinates:r};return gr(i,e,t)}function Ds(r,e){e===void 0&&(e="kilometers");var t=pr[e];if(!t)throw new Error(e+" units is invalid");return r*t}function Vs(r,e){e===void 0&&(e="kilometers");var t=pr[e];if(!t)throw new Error(e+" units is invalid");return r/t}function yr(r){var e=r%(2*Math.PI);return e*180/Math.PI}function W(r){var e=r%360;return e*Math.PI/180}function Me(r,e,t){if(e===void 0&&(e="kilometers"),t===void 0&&(t="kilometers"),!(r>=0))throw new Error("length must be a positive number");return Ds(Vs(r,e),t)}function it(r){return!isNaN(r)&&r!==null&&!Array.isArray(r)}function st(r){return!!r&&r.constructor===Object}function ue(r,e,t){if(r!==null)for(var i,s,n,o,a,c,l,h=0,u=0,y,m=r.type,g=m==="FeatureCollection",C=m==="Feature",S=g?r.features.length:1,b=0;b<S;b++){l=g?r.features[b].geometry:C?r.geometry:r,y=l?l.type==="GeometryCollection":!1,a=y?l.geometries.length:1;for(var d=0;d<a;d++){var v=0,M=0;if(o=y?l.geometries[d]:l,o!==null){c=o.coordinates;var x=o.type;switch(h=t&&(x==="Polygon"||x==="MultiPolygon")?1:0,x){case null:break;case"Point":if(e(c,u,b,v,M)===!1)return!1;u++,v++;break;case"LineString":case"MultiPoint":for(i=0;i<c.length;i++){if(e(c[i],u,b,v,M)===!1)return!1;u++,x==="MultiPoint"&&v++}x==="LineString"&&v++;break;case"Polygon":case"MultiLineString":for(i=0;i<c.length;i++){for(s=0;s<c[i].length-h;s++){if(e(c[i][s],u,b,v,M)===!1)return!1;u++}x==="MultiLineString"&&v++,x==="Polygon"&&M++}x==="Polygon"&&v++;break;case"MultiPolygon":for(i=0;i<c.length;i++){for(M=0,s=0;s<c[i].length;s++){for(n=0;n<c[i][s].length-h;n++){if(e(c[i][s][n],u,b,v,M)===!1)return!1;u++}M++}v++}break;case"GeometryCollection":for(i=0;i<o.geometries.length;i++)if(ue(o.geometries[i],e,t)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function $s(r,e){e===void 0&&(e={});var t=0,i=0,s=0;return ue(r,function(n){t+=n[0],i+=n[1],s++},!0),H([t/s,i/s],e.properties)}var br=$s;function j(r){if(!r)throw new Error("coord is required");if(!Array.isArray(r)){if(r.type==="Feature"&&r.geometry!==null&&r.geometry.type==="Point")return r.geometry.coordinates;if(r.type==="Point")return r.coordinates}if(Array.isArray(r)&&r.length>=2&&!Array.isArray(r[0])&&!Array.isArray(r[1]))return r;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function vr(r){if(Array.isArray(r))return r;if(r.type==="Feature"){if(r.geometry!==null)return r.geometry.coordinates}else if(r.coordinates)return r.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function Ns(r,e,t){t===void 0&&(t={});var i;t.final?i=xr(j(e),j(r)):i=xr(j(r),j(e));var s=i>180?-(360-i):i;return s}function xr(r,e){var t=W(r[1]),i=W(e[1]),s=W(e[0]-r[0]);s>Math.PI&&(s-=2*Math.PI),s<-Math.PI&&(s+=2*Math.PI);var n=Math.log(Math.tan(i/2+Math.PI/4)/Math.tan(t/2+Math.PI/4)),o=Math.atan2(s,n);return(yr(o)+360)%360}var wr=Ns;function Us(r,e,t){t===void 0&&(t={});var i=j(r),s=j(e);s[0]+=s[0]-i[0]>180?-360:i[0]-s[0]>180?360:0;var n=Bs(i,s),o=Me(n,"meters",t.units);return o}function Bs(r,e,t){t=t===void 0?T:Number(t);var i=t,s=r[1]*Math.PI/180,n=e[1]*Math.PI/180,o=n-s,a=Math.abs(e[0]-r[0])*Math.PI/180;a>Math.PI&&(a-=2*Math.PI);var c=Math.log(Math.tan(n/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),l=Math.abs(c)>1e-11?o/c:Math.cos(s),h=Math.sqrt(o*o+l*l*a*a),u=h*i;return u}var Lr=Us;function Gs(r,e,t,i){i===void 0&&(i={});var s=e<0,n=Me(Math.abs(e),i.units,"meters");s&&(n=-Math.abs(n));var o=j(r),a=qs(o,n,t);return a[0]+=a[0]-o[0]>180?-360:o[0]-a[0]>180?360:0,H(a,i.properties)}function qs(r,e,t,i){i=i===void 0?T:Number(i);var s=e/i,n=r[0]*Math.PI/180,o=W(r[1]),a=W(t),c=s*Math.cos(a),l=o+c;Math.abs(l)>Math.PI/2&&(l=l>0?Math.PI-l:-Math.PI-l);var h=Math.log(Math.tan(l/2+Math.PI/4)/Math.tan(o/2+Math.PI/4)),u=Math.abs(h)>1e-11?c/h:Math.cos(o),y=s*Math.sin(a)/u,m=n+y;return[(m*180/Math.PI+540)%360-180,l*180/Math.PI]}var Cr=Gs;function Hs(r){if(!r)throw new Error("geojson is required");switch(r.type){case"Feature":return Sr(r);case"FeatureCollection":return Ks(r);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return nt(r);default:throw new Error("unknown GeoJSON type")}}function Sr(r){var e={type:"Feature"};return Object.keys(r).forEach(function(t){switch(t){case"type":case"properties":case"geometry":return;default:e[t]=r[t]}}),e.properties=Tr(r.properties),e.geometry=nt(r.geometry),e}function Tr(r){var e={};return r&&Object.keys(r).forEach(function(t){var i=r[t];typeof i=="object"?i===null?e[t]=null:Array.isArray(i)?e[t]=i.map(function(s){return s}):e[t]=Tr(i):e[t]=i}),e}function Ks(r){var e={type:"FeatureCollection"};return Object.keys(r).forEach(function(t){switch(t){case"type":case"features":return;default:e[t]=r[t]}}),e.features=r.features.map(function(t){return Sr(t)}),e}function nt(r){var e={type:r.type};return r.bbox&&(e.bbox=r.bbox),r.type==="GeometryCollection"?(e.geometries=r.geometries.map(function(t){return nt(t)}),e):(e.coordinates=Mr(r.coordinates),e)}function Mr(r){var e=r;return typeof e[0]!="object"?e.slice():e.map(function(t){return Mr(t)})}var Er=Hs;function zs(r,e,t){if(t=t||{},!st(t))throw new Error("options is invalid");var i=t.pivot,s=t.mutate;if(!r)throw new Error("geojson is required");if(e==null||isNaN(e))throw new Error("angle is required");return e===0||(i||(i=br(r)),(s===!1||s===void 0)&&(r=Er(r)),ue(r,function(n){var o=wr(i,n),a=o+e,c=Lr(i,n),l=vr(Cr(i,c,a));n[0]=l[0],n[1]=l[1]})),r}var ot=zs;import{unByKey as _s}from"ol/Observable";import{transformExtent as Zs}from"ol/proj";var fe=class extends _{init(e){super.init(e),!!this.map&&(this.isClickActive||this.isHoverActive)&&(this.toggleVisibleListeners(),this.onChangeVisibleKey=this.on("change:visible",this.toggleVisibleListeners))}terminate(e){this.map&&(this.map.off("mousemove",this.onUserMoveCallback),this.map.off("click",this.onUserClickCallback),_s(this.onChangeVisibleKey)),super.terminate(e)}onUserClickCallback(e){super.onUserClickCallback({coordinate:e.lngLat.toArray(),...e})}onUserMoveCallback(e){super.onUserMoveCallback({coordinate:e.lngLat.toArray(),...e})}toggleVisibleListeners(){this.visible?(this.isClickActive&&this.map.on("click",this.onUserClickCallback),this.isHoverActive&&this.map.on("mousemove",this.onUserMoveCallback)):(this.isClickActive&&this.map.off("click",this.onUserClickCallback),this.isHoverActive&&this.map.off("mousemove",this.onUserMoveCallback))}getMercatorExtent(){let e=this.map.getBounds().toArray();return Zs([...e[0],...e[1]],"EPSG:4326","EPSG:3857")}getOlZoom(){return this.map.getZoom()+1}clone(e){return new fe({...this.options,...e})}},kr=fe;import{getWidth as Ws,getHeight as Js}from"ol/extent";import{fromLonLat as Pr}from"ol/proj";var Fr=r=>{let e=r.getBounds().toArray(),t=Pr(e[0]),i=Pr(e[1]),s=[...t,...i],{width:n,height:o}=r.getCanvas(),a=Ws(s)/n,c=Js(s)/o;return Math.max(a,c)},at=(r,e)=>{let{width:t,height:i}=r.getCanvas(),s=r.unproject({x:0,y:0}),n=r.unproject({x:0,y:i/e}),o=r.unproject({x:t/e,y:i/e}),a=r.unproject({x:t/e,y:0});return[[s.lng,s.lat],[a.lng,a.lat],[o.lng,o.lat],[n.lng,n.lat]]};var lt=class extends Se(kr){constructor(e={}){super({...e}),this.onLoad=this.onLoad.bind(this),this.onMove=this.onMove.bind(this),this.onMoveEnd=this.onMoveEnd.bind(this),this.onZoomEnd=this.onZoomEnd.bind(this),this.onVisibilityChange=this.onVisibilityChange.bind(this)}init(e,t){if(!e)return;let i=e.getCanvas();super.init(e,{width:i.width/this.pixelRatio,height:i.height/this.pixelRatio}),this.source={type:"canvas",canvas:this.tracker.canvas,coordinates:at(e,this.pixelRatio),animate:!0,attribution:this.copyrights&&this.copyrights.join(", ")},this.beforeId=t,this.layer={id:this.key,type:"raster",source:this.key,layout:{visibility:this.visible?"visible":"none"},paint:{"raster-opacity":1,"raster-fade-duration":0,"raster-resampling":"nearest"}},e.isStyleLoaded()&&this.onLoad(),this.map.on("load",this.onLoad),this.listeners=[this.on("change:visible",this.onVisibilityChange)]}terminate(){this.map&&(this.map.off("load",this.onLoad),this.listeners.forEach(e=>{Xs(e)}),this.map.getLayer(this.key)&&this.map.removeLayer(this.key),this.map.getSource(this.key)&&this.map.removeSource(this.key)),super.terminate()}start(){super.start(),this.map.on("move",this.onMove),this.map.on("moveend",this.onMoveEnd),this.map.on("zoomend",this.onZoomEnd)}stop(){super.stop(),this.map&&(this.map.off("move",this.onMove),this.map.off("moveend",this.onMoveEnd),this.map.off("zoomend",this.onZoomEnd))}onLoad(){this.map.getSource(this.key)||this.map.addSource(this.key,this.source),this.map.getLayer(this.key)||this.map.addLayer(this.layer,this.beforeId)}onUserClickCallback(e){super.onUserClickCallback({coordinate:de(e.lngLat.toArray()),...e})}onUserMoveCallback(e){super.onUserMoveCallback({coordinate:de(e.lngLat.toArray()),...e})}renderTrajectories(e){let{width:t,height:i}=this.map.getCanvas(),s=this.map.getCenter(),n=this.map.unproject({x:0,y:i/this.pixelRatio}),o=this.map.unproject({x:t/this.pixelRatio,y:0}),a=ot(H([n.lng,n.lat]),-this.map.getBearing(),{pivot:[s.lng,s.lat]}).geometry.coordinates,c=ot(H([o.lng,o.lat]),-this.map.getBearing(),{pivot:[s.lng,s.lat]}).geometry.coordinates,l=[...de(a),...de(c)],h=Qs(l)/(t/this.pixelRatio),u=Ys(l)/(i/this.pixelRatio),y=Math.max(h,u),m={size:[t/this.pixelRatio,i/this.pixelRatio],center:de([s.lng,s.lat]),extent:l,resolution:y,zoom:this.map.getZoom(),rotation:-(this.map.getBearing()*Math.PI)/180,pixelRatio:this.pixelRatio};super.renderTrajectories(m,e)}getRefreshTimeInMs(){return super.getRefreshTimeInMs(this.map.getZoom())}getFeatureInfoAtCoordinate(e,t={}){let i=Fr(this.map);return super.getFeatureInfoAtCoordinate(e,{resolution:i,...t})}onVisibilityChange(){this.visible&&!this.map.getLayer(this.key)?this.map.addLayer(this.layer,this.beforeId):this.map.getLayer(this.key)&&this.map.removeLayer(this.key)}purgeTrajectory(e,t,i){return super.purgeTrajectory(e,t||this.getMercatorExtent(),i||Math.floor(this.map.getZoom()+1))}setBbox(e,t){let i=e,s=t;!i&&this.isUpdateBboxOnMoveEnd&&(i=e||this.getMercatorExtent(),s=Math.floor(this.getOlZoom())),super.setBbox(i,s)}onMove(){let e=at(this.map,this.pixelRatio),t=this.map.getSource(this.key);t&&t.setCoordinates(e),this.renderTrajectories()}onMoveEnd(){this.renderTrajectories(),this.visible&&this.isUpdateBboxOnMoveEnd&&this.setBbox()}onFeatureHover(e,t,i){super.onFeatureHover(e,t,i),this.map.getCanvasContainer().style.cursor=e.length?"pointer":"auto"}},ct=lt;var Ir=class extends Te(Z){constructor(e){super(e),this.render=this.render.bind(this)}activate(){super.activate(),this.map&&(this.map.on("sourcedata",this.render),this.map.on("styledata",this.render),this.map.on("idle",this.render))}deactivate(){this.map&&(this.map.off("sourcedata",this.render),this.map.off("styledata",this.render),this.map.off("idle",this.render)),super.deactivate()}getCopyrights(){return B(this.map)}};var en={mapbox:{TralisLayer:ct},ol:{Layer:F,WMSLayer:tt,MaplibreLayer:q,MapboxLayer:G,TralisLayer:Ye,VectorLayer:et}},Nc=en;export{Nc as default};
2
- //# sourceMappingURL=esm.min.js.map
@@ -1,11 +0,0 @@
1
- import S1 from './s1kreis.svg';
2
- import S20 from './s20kreis.svg';
3
- import S2 from './s2kreis.svg';
4
- import S3 from './s3kreis.svg';
5
- import S4 from './s4kreis.svg';
6
- import S6 from './s6kreis.svg';
7
- import S7 from './s7kreis.svg';
8
- import S8 from './s8kreis.svg';
9
- import unknown from './unknown.svg';
10
-
11
- export default { S1, S20, S2, S3, S4, S6, S7, S8, unknown };
@@ -1,105 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
- width="25"
11
- height="24.999998"
12
- viewBox="0 0 25 24.999998"
13
- version="1.1"
14
- id="svg10"
15
- sodipodi:docname="s1kreis.svg"
16
- inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
17
- <metadata
18
- id="metadata16">
19
- <rdf:RDF>
20
- <cc:Work
21
- rdf:about="">
22
- <dc:format>image/svg+xml</dc:format>
23
- <dc:type
24
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
- <dc:title></dc:title>
26
- </cc:Work>
27
- </rdf:RDF>
28
- </metadata>
29
- <defs
30
- id="defs14" />
31
- <sodipodi:namedview
32
- pagecolor="#ffffff"
33
- bordercolor="#666666"
34
- borderopacity="1"
35
- objecttolerance="10"
36
- gridtolerance="10"
37
- guidetolerance="10"
38
- inkscape:pageopacity="0"
39
- inkscape:pageshadow="2"
40
- inkscape:window-width="2149"
41
- inkscape:window-height="1712"
42
- id="namedview12"
43
- showgrid="false"
44
- fit-margin-top="0"
45
- fit-margin-left="0"
46
- fit-margin-right="0"
47
- fit-margin-bottom="0"
48
- lock-margins="true"
49
- inkscape:zoom="3.9126575"
50
- inkscape:cx="54.716242"
51
- inkscape:cy="165.95994"
52
- inkscape:window-x="2391"
53
- inkscape:window-y="0"
54
- inkscape:window-maximized="0"
55
- inkscape:current-layer="Gruppe_143" />
56
- <rect
57
- id="Rechteck_33"
58
- data-name="Rechteck 33"
59
- width="150"
60
- height="150"
61
- fill="none"
62
- x="-36.299999"
63
- y="-36.299999" />
64
- <g
65
- id="Gruppe_143"
66
- data-name="Gruppe 143"
67
- opacity="0.85"
68
- transform="translate(-36.3,-36.3)">
69
- <circle
70
- id="Ellipse_17"
71
- data-name="Ellipse 17"
72
- cx="48.799999"
73
- cy="48.799999"
74
- r="12.499999"
75
- fill="#00b6e2"
76
- style="stroke-width: 0.322997;" />
77
- <rect
78
- id="Rechteck_43"
79
- data-name="Rechteck 43"
80
- width="150"
81
- height="150"
82
- transform="translate(-1,3)"
83
- fill="none"
84
- x="0"
85
- y="0" />
86
- </g>
87
- <path
88
- id="Pfad_473"
89
- data-name="Pfad 473"
90
- d="m 3.8435878,14.696072 h 2.196336 c 0.1937943,1.324261 0.8397756,1.808747 2.4547286,1.808747 1.1304671,0 2.0994386,-0.387588 2.0994386,-1.421158 0,-1.03357 -1.0335697,-1.227364 -2.6485227,-1.614953 -1.9056445,-0.484486 -3.7143918,-0.936672 -3.7143918,-3.229906 0,-2.1963362 1.7118502,-3.2299061 4.1665787,-3.2299061 2.4547288,0 4.0050838,1.2273643 4.1665788,3.4237001 H 10.464895 C 10.367998,9.3021292 9.5282222,8.8176433 8.3654562,8.8176433 c -1.1627662,0 -2.0025418,0.4844859 -2.0025418,1.2273637 0,0.839776 0.7751774,1.130467 2.3901305,1.518056 2.2932331,0.484486 4.0696821,1.03357 4.0696821,3.326804 0,2.196336 -1.808748,3.4237 -4.2634765,3.4237 -3.0038126,-0.0323 -4.6187655,-1.35656 -4.7156627,-3.617495 z"
91
- fill="#ffffff"
92
- style="stroke-width: 0.32299;" />
93
- <path
94
- id="Pfad_474"
95
- data-name="Pfad 474"
96
- d="M 17.409193,10.594091 H 15.148259 V 9.4636244 c 1.130467,0 2.260934,-0.3875887 2.648523,-1.9056445 h 1.905645 V 18.152072 h -2.260935 z"
97
- fill="#ffffff"
98
- style="stroke-width: 0.32299;" />
99
- <path
100
- id="Pfad_472"
101
- data-name="Pfad 472"
102
- d="M 12.499736,1.5180558 A 10.557917,10.557917 0 0 1 23.093828,12.039797 v 0.07235 c 0,5.684635 -4.909458,10.981681 -10.594092,10.981681 -5.6846348,0 -10.5940917,-4.909458 -10.5940917,-10.981681 v 0 A 10.578265,10.578265 0 0 1 12.467437,1.5180558 h 0.0323 M 12.499737,0 a 12.499736,12.499736 0 1 0 12.499736,12.499736 v 0 A 12.386043,12.386043 0 0 0 12.728413,0 Z"
103
- fill="#00b6e2"
104
- style="stroke-width: 0.32299;" />
105
- </svg>
@@ -1,101 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
- id="s20kreis"
11
- width="25"
12
- height="24.999966"
13
- viewBox="0 0 25 24.999966"
14
- version="1.1"
15
- sodipodi:docname="s20kreis.svg"
16
- inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
17
- <metadata
18
- id="metadata14">
19
- <rdf:RDF>
20
- <cc:Work
21
- rdf:about="">
22
- <dc:format>image/svg+xml</dc:format>
23
- <dc:type
24
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
- <dc:title></dc:title>
26
- </cc:Work>
27
- </rdf:RDF>
28
- </metadata>
29
- <defs
30
- id="defs12" />
31
- <sodipodi:namedview
32
- pagecolor="#ffffff"
33
- bordercolor="#666666"
34
- borderopacity="1"
35
- objecttolerance="10"
36
- gridtolerance="10"
37
- guidetolerance="10"
38
- inkscape:pageopacity="0"
39
- inkscape:pageshadow="2"
40
- inkscape:window-width="2149"
41
- inkscape:window-height="1712"
42
- id="namedview10"
43
- showgrid="false"
44
- fit-margin-top="0"
45
- fit-margin-left="0"
46
- fit-margin-right="0"
47
- fit-margin-bottom="0"
48
- inkscape:zoom="5.5333333"
49
- inkscape:cx="38.800001"
50
- inkscape:cy="37.9"
51
- inkscape:window-x="2391"
52
- inkscape:window-y="0"
53
- inkscape:window-maximized="0"
54
- inkscape:current-layer="s20kreis" />
55
- <rect
56
- id="Rechteck_34"
57
- data-name="Rechteck 34"
58
- width="150"
59
- height="150"
60
- fill="none"
61
- x="-36.200001"
62
- y="-37.099998" />
63
- <g
64
- id="Gruppe_144"
65
- data-name="Gruppe 144"
66
- opacity="0.85"
67
- transform="matrix(0.3221645,0,0,0.3221645,-11.662354,-11.952303)">
68
- <circle
69
- id="Ellipse_18"
70
- data-name="Ellipse 18"
71
- cx="38.799999"
72
- cy="38.799999"
73
- r="38.799999"
74
- transform="translate(36.2,37.1)"
75
- fill="#eb4866" />
76
- </g>
77
- <path
78
- id="Pfad_475"
79
- data-name="Pfad 475"
80
- d="M 12.499984,1.771905 A 10.695862,10.695862 0 1 1 1.804122,12.467766 v 0 A 10.75224,10.75224 0 0 1 12.499984,1.771905 m 0,-1.771904950000003 A 12.499983,12.499983 0 1 0 24.999966,12.499983 v 0 A 12.470666,12.470666 0 0 0 12.558618,4.9999997e-8 Z"
81
- fill="#eb4866"
82
- style="stroke-width:0.322165" />
83
- <path
84
- id="Pfad_476"
85
- data-name="Pfad 476"
86
- d="m 2.64175,14.014156 h 1.610822 c 0.09665,0.934277 0.676546,1.320874 1.804122,1.320874 0.837627,0 1.610822,-0.289948 1.610822,-1.030926 0,-0.773195 -0.773195,-0.934277 -1.99742,-1.224225 -1.417524,-0.289948 -2.738398,-0.773195 -2.738398,-2.384017 0,-1.610823 1.320874,-2.4484509 3.124996,-2.4484509 1.804121,0 3.028346,0.837628 3.124995,2.5450999 H 7.570867 C 7.474217,9.954883 6.797672,9.5682861 5.960044,9.5682861 c -0.837627,0 -1.417524,0.386597 -1.417524,0.9342769 0,0.676545 0.579897,0.837628 1.804122,1.127576 1.707472,0.386597 3.028346,0.773194 3.028346,2.545099 0,1.610823 -1.320874,2.5451 -3.124996,2.5451 -2.287368,-0.06443 -3.511593,-0.99871 -3.608242,-2.706182 z"
87
- fill="#ffffff"
88
- style="stroke-width:0.322165" />
89
- <path
90
- id="Pfad_477"
91
- data-name="Pfad 477"
92
- d="m 12.306685,13.33761 c 0.934277,-0.773194 2.094069,-1.320874 2.094069,-2.287368 0,-0.773194 -0.386597,-1.224225 -1.030926,-1.224225 -0.773195,0 -1.224225,0.579896 -1.224225,1.610823 h -1.417524 c 0,-1.804121 0.934277,-2.931697 2.738398,-2.931697 1.707472,0 2.641749,1.127576 2.641749,2.44845 0,1.417524 -1.030926,2.190719 -1.99742,2.835048 -0.579896,0.386597 -1.320874,0.837627 -1.610822,1.417524 h 3.608242 v 1.224225 h -5.605662 c 0,-1.481957 0.966493,-2.319585 1.804121,-3.09278 z"
93
- fill="#ffffff"
94
- style="stroke-width:0.322165" />
95
- <path
96
- id="Pfad_478"
97
- data-name="Pfad 478"
98
- d="m 16.301525,12.596632 c 0,-2.44845 1.320874,-4.059273 3.221645,-4.059273 1.99742,0 3.221645,1.610823 3.221645,4.059273 0,2.44845 -1.224225,4.059273 -3.221645,4.059273 -1.99742,0 -3.221645,-1.610823 -3.221645,-4.059273 z m 4.929117,0 c 0,-1.610822 -0.483247,-2.7383979 -1.610823,-2.7383979 -1.127576,0 -1.610822,1.1275759 -1.610822,2.7383979 0,1.610823 0.483246,2.738398 1.610822,2.738398 1.127576,0 1.610823,-1.030926 1.610823,-2.738398 z"
99
- fill="#ffffff"
100
- style="stroke-width:0.322165" />
101
- </svg>