{"version":3,"sources":["jsdelivr-header.js","/npm/@mapbox/mapbox-gl-traffic@1.0.2/mapbox-gl-traffic.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,cAAgB,CAClB,CACE,GAAM,yBACN,KAAQ,OACR,SAAY,CACV,eAAgB,oCAElB,OAAU,oCACV,eAAgB,UAChB,QAAW,GACX,OAAU,CACR,MACA,CACE,KACA,QACA,cAEF,CACE,MACA,CACE,MACA,cAEF,CACE,KACA,QACA,OACA,gBACA,UACA,YAIN,OAAU,CACR,WAAc,UACd,YAAa,QACb,WAAY,SAEd,MAAS,CACP,aAAc,CACZ,KAAQ,IACR,MAAS,CACP,CACE,GACA,KAEF,CACE,GACA,QAIN,aAAc,CACZ,KAAQ,EACR,KAAQ,cACR,SAAY,aACZ,MAAS,CACP,CACE,MACA,sBAEF,CACE,WACA,sBAEF,CACE,QACA,uBAEF,CACE,SACA,wBAIN,cAAe,CACb,KAAQ,IACR,MAAS,CACP,CACE,GACA,GAEF,CACE,GACA,MAIN,eAAgB,CACd,KAAQ,EACR,MAAS,CACP,CACE,GACA,GAEF,CACE,GACA,OAMV,CACE,GAAM,gCACN,KAAQ,OACR,SAAY,CACV,eAAgB,oCAElB,OAAU,oCACV,eAAgB,UAChB,QAAW,EACX,OAAU,CACR,MACA,CACE,KACA,QACA,cAEF,CACE,MACA,CACE,MACA,cAEF,CACE,KACA,QACA,YACA,cAIN,OAAU,CACR,WAAc,UACd,YAAa,QACb,WAAY,SAEd,MAAS,CACP,aAAc,CACZ,KAAQ,IACR,MAAS,CACP,CACE,EACA,KAEF,CACE,GACA,IAEF,CACE,GACA,QAIN,aAAc,CACZ,KAAQ,EACR,KAAQ,cACR,SAAY,aACZ,MAAS,CACP,CACE,MACA,sBAEF,CACE,WACA,sBAEF,CACE,QACA,uBAEF,CACE,SACA,wBAIN,cAAe,CACb,KAAQ,IACR,MAAS,CACP,CACE,GACA,IAEF,CACE,GACA,GAEF,CACE,GACA,IAEF,CACE,GACA,QAIN,eAAgB,CACd,KAAQ,EACR,MAAS,CACP,CACE,GACA,GAEF,CACE,GACA,OAMV,CACE,GAAM,qBACN,KAAQ,OACR,SAAY,CACV,eAAgB,oCAElB,OAAU,oCACV,eAAgB,UAChB,QAAW,EACX,OAAU,CACR,MACA,CACE,KACA,QACA,cAEF,CACE,MACA,CACE,KACA,QACA,WAEF,CACE,MACA,gBAIN,OAAU,CACR,WAAc,UACd,YAAa,QACb,WAAY,SAEd,MAAS,CACP,aAAc,CACZ,KAAQ,IACR,MAAS,CACP,CACE,GACA,KAEF,CACE,GACA,GAEF,CACE,GACA,MAIN,aAAc,CACZ,KAAQ,EACR,KAAQ,cACR,SAAY,aACZ,MAAS,CACP,CACE,MACA,sBAEF,CACE,WACA,sBAEF,CACE,QACA,uBAEF,CACE,SACA,wBAIN,cAAe,CACb,KAAQ,IACR,MAAS,CACP,CACE,GACA,GAEF,CACE,GACA,KAEF,CACE,GACA,IAEF,CACE,GACA,MAIN,eAAgB,CACd,KAAQ,EACR,MAAS,CACP,CACE,GACA,GAEF,CACE,GACA,OAMV,CACE,GAAM,mBACN,KAAQ,OACR,SAAY,CACV,eAAgB,oCAElB,OAAU,oCACV,eAAgB,UAChB,QAAW,EACX,OAAU,CACR,MACA,CACE,KACA,QACA,cAEF,CACE,MACA,CACE,KACA,QACA,SAEF,CACE,MACA,gBAIN,OAAU,CACR,WAAc,UACd,YAAa,QACb,WAAY,SAEd,MAAS,CACP,aAAc,CACZ,KAAQ,IACR,MAAS,CACP,CACE,EACA,IAEF,CACE,EACA,MAEF,CACE,GACA,IAEF,CACE,GACA,QAIN,aAAc,CACZ,KAAQ,EACR,KAAQ,cACR,SAAY,aACZ,MAAS,CACP,CACE,MACA,sBAEF,CACE,WACA,sBAEF,CACE,QACA,uBAEF,CACE,SACA,wBAIN,cAAe,CACb,KAAQ,IACR,MAAS,CACP,CACE,EACA,GAEF,CACE,EACA,GAEF,CACE,GACA,IAEF,CACE,GACA,MAIN,eAAgB,IAGpB,CACE,GAAM,sBACN,KAAQ,OACR,SAAY,CACV,eAAgB,oCAElB,OAAU,oCACV,eAAgB,UAChB,QAAW,EACX,OAAU,CACR,MACA,CACE,KACA,QACA,cAEF,CACE,MACA,CACE,KACA,QACA,YAEF,CACE,MACA,gBAIN,OAAU,CACR,WAAc,UACd,YAAa,QAC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","file":"/npm/@mapbox/mapbox-gl-traffic@1.0.2/mapbox-gl-traffic.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/@mapbox/mapbox-gl-traffic@1.0.2/mapbox-gl-traffic.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var trafficLayers = [\n  {\n    'id': 'traffic-street-link-bg',\n    'type': 'line',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'source': 'mapbox://mapbox.mapbox-traffic-v1',\n    'source-layer': 'traffic',\n    'minzoom': 15,\n    'filter': [\n      'all',\n      [\n        '==',\n        '$type',\n        'LineString'\n      ],\n      [\n        'all',\n        [\n          'has',\n          'congestion'\n        ],\n        [\n          'in',\n          'class',\n          'link',\n          'motorway_link',\n          'service',\n          'street'\n        ]\n      ]\n    ],\n    'layout': {\n      'visibility': 'visible',\n      'line-join': 'round',\n      'line-cap': 'round'\n    },\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            14,\n            2.5\n          ],\n          [\n            20,\n            15.5\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(145, 95%, 30%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 42%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 37%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 22%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            14,\n            2\n          ],\n          [\n            20,\n            18\n          ]\n        ]\n      },\n      'line-opacity': {\n        'base': 1,\n        'stops': [\n          [\n            15,\n            0\n          ],\n          [\n            16,\n            1\n          ]\n        ]\n      }\n    }\n  },\n  {\n    'id': 'traffic-secondary-tertiary-bg',\n    'type': 'line',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'source': 'mapbox://mapbox.mapbox-traffic-v1',\n    'source-layer': 'traffic',\n    'minzoom': 6,\n    'filter': [\n      'all',\n      [\n        '==',\n        '$type',\n        'LineString'\n      ],\n      [\n        'all',\n        [\n          'has',\n          'congestion'\n        ],\n        [\n          'in',\n          'class',\n          'secondary',\n          'tertiary'\n        ]\n      ]\n    ],\n    'layout': {\n      'visibility': 'visible',\n      'line-join': 'round',\n      'line-cap': 'round'\n    },\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            9,\n            1.5\n          ],\n          [\n            18,\n            11\n          ],\n          [\n            20,\n            16.5\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(145, 95%, 30%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 42%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 37%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 22%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            10,\n            0.5\n          ],\n          [\n            15,\n            5\n          ],\n          [\n            18,\n            11\n          ],\n          [\n            20,\n            14.5\n          ]\n        ]\n      },\n      'line-opacity': {\n        'base': 1,\n        'stops': [\n          [\n            13,\n            0\n          ],\n          [\n            14,\n            1\n          ]\n        ]\n      }\n    }\n  },\n  {\n    'id': 'traffic-primary-bg',\n    'type': 'line',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'source': 'mapbox://mapbox.mapbox-traffic-v1',\n    'source-layer': 'traffic',\n    'minzoom': 6,\n    'filter': [\n      'all',\n      [\n        '==',\n        '$type',\n        'LineString'\n      ],\n      [\n        'all',\n        [\n          '==',\n          'class',\n          'primary'\n        ],\n        [\n          'has',\n          'congestion'\n        ]\n      ]\n    ],\n    'layout': {\n      'visibility': 'visible',\n      'line-join': 'round',\n      'line-cap': 'round'\n    },\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            10,\n            0.75\n          ],\n          [\n            15,\n            6\n          ],\n          [\n            20,\n            18\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(145, 95%, 30%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 42%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 37%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 22%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.2,\n        'stops': [\n          [\n            10,\n            0\n          ],\n          [\n            12,\n            1.5\n          ],\n          [\n            18,\n            13\n          ],\n          [\n            20,\n            16\n          ]\n        ]\n      },\n      'line-opacity': {\n        'base': 1,\n        'stops': [\n          [\n            11,\n            0\n          ],\n          [\n            12,\n            1\n          ]\n        ]\n      }\n    }\n  },\n  {\n    'id': 'traffic-trunk-bg',\n    'type': 'line',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'source': 'mapbox://mapbox.mapbox-traffic-v1',\n    'source-layer': 'traffic',\n    'minzoom': 6,\n    'filter': [\n      'all',\n      [\n        '==',\n        '$type',\n        'LineString'\n      ],\n      [\n        'all',\n        [\n          '==',\n          'class',\n          'trunk'\n        ],\n        [\n          'has',\n          'congestion'\n        ]\n      ]\n    ],\n    'layout': {\n      'visibility': 'visible',\n      'line-join': 'round',\n      'line-cap': 'round'\n    },\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            8,\n            0.5\n          ],\n          [\n            9,\n            2.25\n          ],\n          [\n            18,\n            13\n          ],\n          [\n            20,\n            17.5\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(145, 95%, 30%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 42%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 37%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 22%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            7,\n            0\n          ],\n          [\n            9,\n            1\n          ],\n          [\n            18,\n            13\n          ],\n          [\n            20,\n            18\n          ]\n        ]\n      },\n      'line-opacity': 1\n    }\n  },\n  {\n    'id': 'traffic-motorway-bg',\n    'type': 'line',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'source': 'mapbox://mapbox.mapbox-traffic-v1',\n    'source-layer': 'traffic',\n    'minzoom': 6,\n    'filter': [\n      'all',\n      [\n        '==',\n        '$type',\n        'LineString'\n      ],\n      [\n        'all',\n        [\n          '==',\n          'class',\n          'motorway'\n        ],\n        [\n          'has',\n          'congestion'\n        ]\n      ]\n    ],\n    'layout': {\n      'visibility': 'visible',\n      'line-join': 'round',\n      'line-cap': 'round'\n    },\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            6,\n            0.5\n          ],\n          [\n            9,\n            3\n          ],\n          [\n            18,\n            16\n          ],\n          [\n            20,\n            20\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(145, 95%, 30%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 42%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 37%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 22%)'\n          ]\n        ]\n      },\n      'line-opacity': 1,\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            7,\n            0\n          ],\n          [\n            9,\n            1.2\n          ],\n          [\n            11,\n            1.2\n          ],\n          [\n            18,\n            10\n          ],\n          [\n            20,\n            15.5\n          ]\n        ]\n      }\n    }\n  },\n  {\n    'id': 'traffic-primary',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'ref': 'traffic-primary-bg',\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            10,\n            1\n          ],\n          [\n            15,\n            4\n          ],\n          [\n            20,\n            16\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(142, 55%, 50%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 55%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 50%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 35%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.2,\n        'stops': [\n          [\n            10,\n            0\n          ],\n          [\n            12,\n            1.5\n          ],\n          [\n            18,\n            13\n          ],\n          [\n            20,\n            16\n          ]\n        ]\n      },\n      'line-opacity': 1\n    }\n  },\n  {\n    'id': 'traffic-secondary-tertiary',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'ref': 'traffic-secondary-tertiary-bg',\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            9,\n            0.5\n          ],\n          [\n            18,\n            9\n          ],\n          [\n            20,\n            14\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(142, 55%, 50%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 55%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 50%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 35%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            10,\n            0.5\n          ],\n          [\n            15,\n            5\n          ],\n          [\n            18,\n            11\n          ],\n          [\n            20,\n            14.5\n          ]\n        ]\n      },\n      'line-opacity': 1\n    }\n  },\n  {\n    'id': 'traffic-street-link',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'ref': 'traffic-street-link-bg',\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            14,\n            1.5\n          ],\n          [\n            20,\n            13.5\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(142, 55%, 50%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 55%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 50%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 35%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            14,\n            2\n          ],\n          [\n            20,\n            18\n          ]\n        ]\n      },\n      'line-opacity': 1\n    }\n  },\n  {\n    'id': 'traffic-trunk',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'ref': 'traffic-trunk-bg',\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            8,\n            0.75\n          ],\n          [\n            18,\n            11\n          ],\n          [\n            20,\n            15\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(142, 55%, 50%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 55%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 50%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 35%)'\n          ]\n        ]\n      },\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            7,\n            0\n          ],\n          [\n            9,\n            1\n          ],\n          [\n            18,\n            13\n          ],\n          [\n            20,\n            18\n          ]\n        ]\n      },\n      'line-opacity': 1\n    }\n  },\n  {\n    'id': 'traffic-motorway',\n    'metadata': {\n      'mapbox:group': '4053de47c16e55481b10fd748eaa994c'\n    },\n    'ref': 'traffic-motorway-bg',\n    'paint': {\n      'line-width': {\n        'base': 1.5,\n        'stops': [\n          [\n            6,\n            0.5\n          ],\n          [\n            9,\n            1.5\n          ],\n          [\n            18,\n            14\n          ],\n          [\n            20,\n            18\n          ]\n        ]\n      },\n      'line-color': {\n        'base': 1,\n        'type': 'categorical',\n        'property': 'congestion',\n        'stops': [\n          [\n            'low',\n            'hsl(142, 55%, 50%)'\n          ],\n          [\n            'moderate',\n            'hsl(30, 100%, 55%)'\n          ],\n          [\n            'heavy',\n            'hsl(355, 100%, 50%)'\n          ],\n          [\n            'severe',\n            'hsl(355, 70%, 35%)'\n          ]\n        ]\n      },\n      'line-opacity': 1,\n      'line-offset': {\n        'base': 1.5,\n        'stops': [\n          [\n            7,\n            0\n          ],\n          [\n            9,\n            1.2\n          ],\n          [\n            11,\n            1.2\n          ],\n          [\n            18,\n            10\n          ],\n          [\n            20,\n            15.5\n          ]\n        ]\n      }\n    }\n  }\n];\n\nfunction addLayers(style, layers, before) {\n  for (var i = 0; i < style.layers.length; i++) {\n    var layer = style.layers[i];\n    if (before === layer.id) {\n      var newLayers = style.layers.slice(0, i).concat(layers).concat(style.layers.slice(i));\n      return Object.assign({ }, style, {\n        layers: newLayers\n      });\n    }\n  }\n  return style;\n}\n\n/**\n * Create a new [Mapbox GL JS plugin](https://www.mapbox.com/blog/build-mapbox-gl-js-plugins/) that allows you to hide and show\n * traffic layers in your map and an optional toggle button.\n * @constructor\n * @param {object} options - Options to configure the plugin.\n * @param {boolean} [options.showTraffic=false] - Show or hide traffic overlay by default.\n * @param {boolean} [options.showTrafficButton=true] - Show a toggle button to turn traffic on and off.\n * @param {RegExp} [options.trafficSource=/mapbox-traffic-v\\d/] - The traffic source regex used to determine whether a layer displays traffic or not.\n */\nfunction MapboxTraffic(options) {\n  if (!(this instanceof MapboxTraffic)) {\n    throw new Error('MapboxTraffic needs to be called with the new keyword');\n  }\n\n  this.options = Object.assign({\n    showTraffic: false,\n    showTrafficButton: true,\n    trafficSource: /mapbox-traffic-v\\d/\n  }, options);\n\n  this.render = this.render.bind(this);\n  this.toggleTraffic = this.toggleTraffic.bind(this);\n  this._hideTraffic = this._hideTraffic.bind(this);\n  this._showTraffic = this._showTraffic.bind(this);\n  this._hasTraffic = this._hasTraffic.bind(this);\n  this._toggle = new TrafficButton({\n    show: this.options.showTrafficButton,\n    onToggle: this.toggleTraffic.bind(this)\n  });\n}\n\nMapboxTraffic.prototype._hasTraffic = function () {\n  var style = this._map.getStyle();\n  var trafficSource = this.options.trafficSource;\n  return Object.keys(style.sources).filter(function (sourceName) {\n    return trafficSource.test(sourceName);\n  }).length > 0;\n};\n\nMapboxTraffic.prototype.toggleTraffic = function () {\n  this.options.showTraffic = !this.options.showTraffic;\n  this.render();\n};\n\nMapboxTraffic.prototype.render = function () {\n  if (!this._hasTraffic()) {\n    this._map.addSource('mapbox://mapbox.mapbox-traffic-v1', {\n      type: 'vector',\n      url: 'mapbox://mapbox.mapbox-traffic-v1'\n    });\n\n    var roadLayers = this._map.getStyle().layers.filter(function (layer) {\n      return layer['source-layer'] === 'road';\n    });\n    var topRoadLayer = roadLayers[roadLayers.length - 1].id;\n    var style = this._map.getStyle();\n    var trafficStyle = addLayers(style, trafficLayers, topRoadLayer);\n    this._map.setStyle(trafficStyle);\n  }\n\n  if (this.options.showTraffic) {\n    this._showTraffic();\n    this._toggle.setMapIcon();\n  } else {\n    this._hideTraffic();\n    this._toggle.setTrafficIcon();\n  }\n};\n\nMapboxTraffic.prototype._hideTraffic = function () {\n  var style = this._map.getStyle();\n  var source = this.options.trafficSource;\n  style.layers.forEach(function (layer) {\n    if (source.test(layer['source'])) {\n      layer['layout'] = layer['layout'] || {};\n      layer['layout']['visibility'] = 'none';\n    }\n  });\n  this._map.setStyle(style);\n};\n\nMapboxTraffic.prototype._showTraffic = function () {\n  var style = this._map.getStyle();\n  var source = this.options.trafficSource;\n  style.layers.forEach(function (layer) {\n    if (source.test(layer['source'])) {\n      layer['layout'] = layer['layout'] || {};\n      layer['layout']['visibility'] = 'visible';\n    }\n  });\n  this._map.setStyle(style);\n};\n\nMapboxTraffic.prototype.onAdd = function (map) {\n  this._map = map;\n  map.on('load', this.render);\n  return this._toggle.elem;\n};\n\nMapboxTraffic.prototype.onRemove = function () {\n  this._map.off('load', this.render);\n\n  var elem = this._toggle.elem;\n  elem.parentNode.removeChild(elem);\n  this._map = undefined;\n};\n\nfunction container(child, show) {\n  var container = document.createElement('div');\n  container.className = 'mapboxgl-ctrl mapboxgl-ctrl-group';\n  container.appendChild(child);\n  if (!show) {\n    container.style.display = 'none';\n  }\n  return container;\n}\n\nfunction button() {\n  var btn = document.createElement('button');\n  btn.className = 'mapboxgl-ctrl-icon mapboxgl-ctrl-traffic';\n  btn.type = 'button';\n  btn['aria-label'] = 'Inspect';\n  return btn;\n}\n\nfunction TrafficButton(options) {\n  options = Object.assign({\n    show: true,\n    onToggle: function () {}\n  }, options);\n\n  this._btn = button();\n  this._btn.onclick = options.onToggle;\n  this.elem = container(this._btn, options.show);\n}\n\nTrafficButton.prototype.setTrafficIcon = function () {\n  this._btn.className = 'mapboxgl-ctrl-icon mapboxgl-ctrl-traffic';\n};\n\nTrafficButton.prototype.setMapIcon = function () {\n  this._btn.className = 'mapboxgl-ctrl-icon mapboxgl-ctrl-map';\n};\n\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n  module.exports = MapboxTraffic;\n} else {\n  window.MapboxTraffic = MapboxTraffic;\n}\n"]}