UNPKG

terriajs

Version:

Geospatial data visualization platform.

45 lines (38 loc) 1.43 kB
"use strict"; /* A lookup map for displayable mime types */ var DISPLAYABLE_MIME_TYPES = ['image/jpeg', 'image/gif', 'image/png', 'image/svg+xml', 'image/bmp', 'image/x-bmp'] .reduce(function(acc, mimeType) { acc[mimeType] = true; return acc; }, {}); var IMAGE_URL_REGEX = /[.\/](png|jpg|jpeg|gif|svg)/i; /** * A simple object that represents a legend for a map layer. * * @param url The URL of the legend * @param mimeType The mime type of the legend - this will be used by the UI to determine how the legend should be shown * (usually an img tag or a link) * @constructor */ var LegendUrl = function(url, mimeType) { this.url = url; this.mimeType = mimeType; this.safeSvgContent = undefined; // content generated by us that we're willing to insert directly into a DOM. }; /** * Determines whether this url links to an image by inspecting the mime type, or if none is specified, the file * extension. * * @returns {boolean} */ LegendUrl.prototype.isImage = function() { if (this.mimeType) { return !!DISPLAYABLE_MIME_TYPES[this.mimeType]; } return !!this.url.match(IMAGE_URL_REGEX); }; /** Simple check for whether the url is valid - currently valid is simply defined and length > 0. */ LegendUrl.prototype.isValid = function() { return this.url && this.url.length; }; module.exports = LegendUrl;