UNPKG

rlayers

Version:

React Components for OpenLayers

42 lines 1.82 kB
import React from 'react'; import { RContext } from '../context'; import { default as RLayer } from './RLayer'; import { default as RFeature } from '../RFeature'; import { default as RStyle } from '../style/RStyle'; import { RlayersBase } from '../REvent'; export const featureHandlersSymbol = '_rlayers_feature_handlers'; /** * An abstract class used for grouping code common to all Vector layers * * Meant to be extended */ export default class RLayerBaseVector extends RLayer { constructor(props, context) { super(props, context); RFeature.initEventRelay(this.context.map); this.eventSources = this.createSource(props); super.refresh(); } createSource(props) { throw new Error('RLayerBaseVector is an abstract class'); } refresh(prevProps) { super.refresh(prevProps); if ((prevProps === null || prevProps === void 0 ? void 0 : prevProps.style) !== this.props.style) this.ol.setStyle(RStyle.getStyle(this.props.style)); } incrementHandlers(ev) { var _a; const featureHandlers = RlayersBase.getOLObject(featureHandlersSymbol, this.ol); featureHandlers[ev] = ((_a = featureHandlers[ev]) !== null && _a !== void 0 ? _a : 0) + 1; } decrementHandlers(ev) { const featureHandlers = RlayersBase.getOLObject(featureHandlersSymbol, this.ol); featureHandlers[ev]--; } render() { return (React.createElement("div", { className: '_rlayers_RLayerVector' }, React.createElement(RContext.Provider, { value: Object.assign(Object.assign({}, this.context), { layer: this.ol, source: this.source, vectorlayer: this.ol, vectorsource: this.source, rLayer: this, rLayerVector: this }) }, this.props.children))); } } //# sourceMappingURL=RLayerBaseVector.js.map