react-google-maps
Version:
React.js Google Maps integration component
212 lines (175 loc) • 5.05 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true,
})
exports.GroundOverlay = undefined
var _defineProperty2 = require("babel-runtime/helpers/defineProperty")
var _defineProperty3 = _interopRequireDefault(_defineProperty2)
var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of")
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf)
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck")
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2)
var _createClass2 = require("babel-runtime/helpers/createClass")
var _createClass3 = _interopRequireDefault(_createClass2)
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn")
var _possibleConstructorReturn3 = _interopRequireDefault(
_possibleConstructorReturn2
)
var _inherits2 = require("babel-runtime/helpers/inherits")
var _inherits3 = _interopRequireDefault(_inherits2)
var _react = require("react")
var _react2 = _interopRequireDefault(_react)
var _propTypes = require("prop-types")
var _propTypes2 = _interopRequireDefault(_propTypes)
var _MapChildHelper = require("../utils/MapChildHelper")
var _constants = require("../constants")
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj }
}
/**
* @url https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay
*/
/* global google */
var GroundOverlay = (exports.GroundOverlay = (function(_React$PureComponent) {
;(0, _inherits3.default)(GroundOverlay, _React$PureComponent)
/*
* @url https://developers.google.com/maps/documentation/javascript/3.exp/reference#GroundOverlay
*/
function GroundOverlay(props, context) {
;(0, _classCallCheck3.default)(this, GroundOverlay)
var _this = (0, _possibleConstructorReturn3.default)(
this,
(GroundOverlay.__proto__ || (0, _getPrototypeOf2.default)(GroundOverlay)
).call(this, props, context)
)
var groundOverlay = new google.maps.GroundOverlay(props.url, props.bounds)
;(0, _MapChildHelper.construct)(
GroundOverlay.propTypes,
updaterMap,
_this.props,
groundOverlay
)
groundOverlay.setMap(_this.context[_constants.MAP])
_this.state = (0, _defineProperty3.default)(
{},
_constants.GROUND_LAYER,
groundOverlay
)
return _this
}
;(0, _createClass3.default)(GroundOverlay, [
{
key: "componentDidMount",
value: function componentDidMount() {
;(0, _MapChildHelper.componentDidMount)(
this,
this.state[_constants.GROUND_LAYER],
eventMap
)
},
},
{
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
;(0, _MapChildHelper.componentDidUpdate)(
this,
this.state[_constants.GROUND_LAYER],
eventMap,
updaterMap,
prevProps
)
},
},
{
key: "componentWillUnmount",
value: function componentWillUnmount() {
;(0, _MapChildHelper.componentWillUnmount)(this)
var GroundOverlay = this.state[_constants.GROUND_LAYER]
if (GroundOverlay) {
GroundOverlay.setMap(null)
}
},
},
{
key: "render",
value: function render() {
return false
},
/**
* Gets the LatLngBounds of this overlay.
* @type LatLngBoundsLatLngBounds
* @public
*/
},
{
key: "getBounds",
value: function getBounds() {
return this.state[_constants.GROUND_LAYER].getBounds()
},
/**
* Returns the opacity of this ground overlay.
* @type number
* @public
*/
},
{
key: "getOpacity",
value: function getOpacity() {
return this.state[_constants.GROUND_LAYER].getOpacity()
},
/**
* Gets the url of the projected image.
* @type string
* @public
*/
},
{
key: "getUrl",
value: function getUrl() {
return this.state[_constants.GROUND_LAYER].getUrl()
},
},
])
return GroundOverlay
})(_react2.default.PureComponent))
GroundOverlay.propTypes = {
/**
* @type string
*/
url: _propTypes2.default.string.isRequired,
/**
* @see https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay
*/
bounds: _propTypes2.default.object.isRequired,
/**
* @type number
*/
defaultOpacity: _propTypes2.default.number,
/**
* @type number
*/
opacity: _propTypes2.default.number,
/**
* function
*/
onDblClick: _propTypes2.default.func,
/**
* function
*/
onClick: _propTypes2.default.func,
}
GroundOverlay.contextTypes = (0, _defineProperty3.default)(
{},
_constants.MAP,
_propTypes2.default.object
)
exports.default = GroundOverlay
var eventMap = {
onDblClick: "dblclick",
onClick: "click",
}
var updaterMap = {
opacity: function opacity(instance, _opacity) {
instance.setOpacity(_opacity)
},
}