UNPKG

react-mapfilter

Version:

A React Component for viewing and filtering GeoJSON

99 lines (81 loc) 3.19 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactIntl = require('react-intl'); var _roundTo = require('round-to'); var _roundTo2 = _interopRequireDefault(_roundTo); var _utm = require('utm'); var _sexagesimal = require('@mapbox/sexagesimal'); var _sexagesimal2 = _interopRequireDefault(_sexagesimal); var _filter_helpers = require('../../util/filter_helpers'); var _intl_helpers = require('../../util/intl_helpers'); var _constants = require('../../constants'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var FormattedValue = function FormattedValue(_ref) { var value = _ref.value, type = _ref.type, _ref$coordFormat = _ref.coordFormat, coordFormat = _ref$coordFormat === undefined ? _constants.FORMATS_DEG_MIN_SEC : _ref$coordFormat; switch (type) { case _constants.FIELD_TYPE_DATE: return _react2.default.createElement(_reactIntl.FormattedDate, { value: (0, _filter_helpers.parseDate)(value), year: 'numeric', month: 'long', day: '2-digit' }); case _constants.FIELD_TYPE_ARRAY: return (value || []).map(function (v) { return _react2.default.createElement(_reactIntl.FormattedMessage, (0, _intl_helpers.createMessage)('field_value')(value)); }); case _constants.FIELD_TYPE_LOCATION: return _react2.default.createElement( 'span', null, formatLocation(value, coordFormat) ); case _constants.FIELD_TYPE_NUMBER: return _react2.default.createElement( 'span', null, value === _constants.UNDEFINED_KEY ? '' : value + '' ); case _constants.FIELD_TYPE_UUID: case _constants.FIELD_TYPE_FILENAME: return _react2.default.createElement( 'span', null, value ); case _constants.FIELD_TYPE_IMAGE: case _constants.FIELD_TYPE_VIDEO: case _constants.FIELD_TYPE_MEDIA: case _constants.FIELD_TYPE_AUDIO: case _constants.FIELD_TYPE_LINK: return _react2.default.createElement( 'a', { href: value, target: '_blank' }, value ); default: return _react2.default.createElement(_reactIntl.FormattedMessage, (0, _intl_helpers.createMessage)('field_value')(value)); } }; exports.default = FormattedValue; function formatLocation(coords, format) { if (!(Array.isArray(coords) && coords.length === 2)) return coords; switch (format) { case _constants.FORMATS_DEC_DEG: return coords.map(function (coord) { return (0, _roundTo2.default)(coord, 5); }).join(', '); case _constants.FORMATS_DEG_MIN_SEC: return _sexagesimal2.default.formatPair({ lon: coords[0], lat: coords[1] }).replace(/'/g, '’').replace(/"/g, '”'); case _constants.FORMATS_UTM: var utm = (0, _utm.fromLatLon)(coords[1], coords[0]); return 'X ' + (0, _roundTo2.default)(utm.easting, 1) + ', Y ' + (0, _roundTo2.default)(utm.northing, 1) + ' \u2014 UTM ' + utm.zoneNum + utm.zoneLetter; } } //# sourceMappingURL=FormattedValue.js.map