tmp-react-map-gl-draw
Version:
A lite version editing layer with react
152 lines (122 loc) • 11.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.featureStyle = featureStyle;
exports.editHandleStyle = editHandleStyle;
var _constants = require("./constants");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var RECT_STYLE = {
stroke: '#7ac943',
strokeWidth: 2,
x: -6,
y: -6,
height: 12,
width: 12
};
var CIRCLE_RADIUS = 8;
var SELECTED_STYLE = {
stroke: '#7ac943',
strokeWidth: 2,
fill: '#ffff00',
fillOpacity: 0.7
};
var HOVERED_STYLE = {
stroke: '#7ac943',
strokeWidth: 2,
fill: '#7ac943',
fillOpacity: 0.5
};
var UNCOMMITTED_STYLE = {
stroke: '#a7a7a7',
strokeWidth: 2,
fill: '#a9a9a9',
fillOpacity: 0.3
};
var INACTIVE_STYLE = UNCOMMITTED_STYLE;
var DEFAULT_STYLE = {
stroke: '#000000',
strokeWidth: 2,
fill: '#a9a9a9',
fillOpacity: 0.1
};
function featureStyle(_ref) {
var feature = _ref.feature,
state = _ref.state;
var renderType = feature.properties.renderType;
var style = null;
switch (state) {
case _constants.RENDER_STATE.SELECTED:
style = _objectSpread({}, SELECTED_STYLE);
break;
case _constants.RENDER_STATE.HOVERED:
style = _objectSpread({}, HOVERED_STYLE);
break;
case _constants.RENDER_STATE.UNCOMMITTED:
case _constants.RENDER_STATE.CLOSING:
style = _objectSpread({}, UNCOMMITTED_STYLE);
break;
case _constants.RENDER_STATE.INACTIVE:
style = _objectSpread({}, INACTIVE_STYLE);
break;
default:
style = _objectSpread({}, DEFAULT_STYLE);
}
switch (renderType) {
case _constants.RENDER_TYPE.POINT:
style.r = CIRCLE_RADIUS;
break;
case _constants.RENDER_TYPE.LINE_STRING:
style.fill = 'none';
break;
case _constants.RENDER_TYPE.POLYGON:
if (state === _constants.RENDER_STATE.CLOSING) {
style.strokeDasharray = '4,2';
}
break;
case _constants.RENDER_TYPE.RECTANGLE:
if (state === _constants.RENDER_STATE.UNCOMMITTED) {
style.strokeDasharray = '4,2';
}
break;
default:
}
return style;
}
function editHandleStyle(_ref2) {
var feature = _ref2.feature,
shape = _ref2.shape,
index = _ref2.index,
state = _ref2.state;
var style = {};
switch (state) {
case _constants.RENDER_STATE.SELECTED:
style = _objectSpread({}, SELECTED_STYLE);
break;
case _constants.RENDER_STATE.HOVERED:
style = _objectSpread({}, HOVERED_STYLE);
break;
case _constants.RENDER_STATE.UNCOMMITTED:
case _constants.RENDER_STATE.CLOSING:
style = _objectSpread({}, UNCOMMITTED_STYLE);
break;
case _constants.RENDER_STATE.INACTIVE:
style = _objectSpread({}, INACTIVE_STYLE);
break;
default:
style = _objectSpread({}, DEFAULT_STYLE);
}
switch (shape) {
case 'circle':
style.r = CIRCLE_RADIUS;
break;
case 'rect':
style = _objectSpread({}, style, {}, RECT_STYLE);
break;
default:
}
return style;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdHlsZS5qcyJdLCJuYW1lcyI6WyJSRUNUX1NUWUxFIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJ4IiwieSIsImhlaWdodCIsIndpZHRoIiwiQ0lSQ0xFX1JBRElVUyIsIlNFTEVDVEVEX1NUWUxFIiwiZmlsbCIsImZpbGxPcGFjaXR5IiwiSE9WRVJFRF9TVFlMRSIsIlVOQ09NTUlUVEVEX1NUWUxFIiwiSU5BQ1RJVkVfU1RZTEUiLCJERUZBVUxUX1NUWUxFIiwiZmVhdHVyZVN0eWxlIiwiZmVhdHVyZSIsInN0YXRlIiwicmVuZGVyVHlwZSIsInByb3BlcnRpZXMiLCJzdHlsZSIsIlJFTkRFUl9TVEFURSIsIlNFTEVDVEVEIiwiSE9WRVJFRCIsIlVOQ09NTUlUVEVEIiwiQ0xPU0lORyIsIklOQUNUSVZFIiwiUkVOREVSX1RZUEUiLCJQT0lOVCIsInIiLCJMSU5FX1NUUklORyIsIlBPTFlHT04iLCJzdHJva2VEYXNoYXJyYXkiLCJSRUNUQU5HTEUiLCJlZGl0SGFuZGxlU3R5bGUiLCJzaGFwZSIsImluZGV4Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7OztBQUVBLElBQU1BLFVBQVUsR0FBRztBQUNqQkMsRUFBQUEsTUFBTSxFQUFFLFNBRFM7QUFFakJDLEVBQUFBLFdBQVcsRUFBRSxDQUZJO0FBR2pCQyxFQUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUhhO0FBSWpCQyxFQUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUphO0FBS2pCQyxFQUFBQSxNQUFNLEVBQUUsRUFMUztBQU1qQkMsRUFBQUEsS0FBSyxFQUFFO0FBTlUsQ0FBbkI7QUFTQSxJQUFNQyxhQUFhLEdBQUcsQ0FBdEI7QUFFQSxJQUFNQyxjQUFjLEdBQUc7QUFDckJQLEVBQUFBLE1BQU0sRUFBRSxTQURhO0FBRXJCQyxFQUFBQSxXQUFXLEVBQUUsQ0FGUTtBQUdyQk8sRUFBQUEsSUFBSSxFQUFFLFNBSGU7QUFJckJDLEVBQUFBLFdBQVcsRUFBRTtBQUpRLENBQXZCO0FBT0EsSUFB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QWxCO0FBQ0VOLE1BQUFBLEtBQUsscUJBQVFQLGNBQVIsQ0FBTDtBQUNBOztBQUVGO0FBQ0VPLE1BQUFBLEtBQUsscUJBQVFOLGFBQVIsQ0FBTDtBQW5CSjs7QUFzQkEsVUFBUXFCLEtBQVI7QUFDRSxTQUFLLFFBQUw7QUFDRWYsTUFBQUEsS0FBSyxDQUFDUyxDQUFOLEdBQVV0QixhQUFWO0FBQ0E7O0FBQ0YsU0FBSyxNQUFMO0FBQ0VhLE1BQUFBLEtBQUsscUJBQVFBLEtBQVIsTUFBa0JwQixVQUFsQixDQUFMO0FBQ0E7O0FBQ0Y7QUFQRjs7QUFVQSxTQUFPb0IsS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUkVOREVSX1NUQVRFLCBSRU5ERVJfVFlQRSB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuY29uc3QgUkVDVF9TVFlMRSA9IHtcbiAgc3Ryb2tlOiAnIzdhYzk0MycsXG4gIHN0cm9rZVdpZHRoOiAyLFxuICB4OiAtNixcbiAgeTogLTYsXG4gIGhlaWdodDogMTIsXG4gIHdpZHRoOiAxMlxufTtcblxuY29uc3QgQ0lSQ0xFX1JBRElVUyA9IDg7XG5cbmNvbnN0IFNFTEVDVEVEX1NUWUxFID0ge1xuICBzdHJva2U6ICcjN2FjOTQzJyxcbiAgc3Ryb2tlV2lkdGg6IDIsXG4gIGZpbGw6ICcjZmZmZjAwJyxcbiAgZmlsbE9wYWNpdHk6IDAuN1xufTtcblxuY29uc3QgSE9WRVJFRF9TVFlMRSA9IHtcbiAgc3Ryb2tlOiAnIzdhYzk0MycsXG4gIHN0cm9rZVdpZHRoOiAyLFxuICBmaWxsOiAnIzdhYzk0MycsXG4gIGZpbGxPcGFjaXR5OiAwLjVcbn07XG5cbmNvbnN0IFVOQ09NTUlUVEVEX1NUWUxFID0ge1xuICBzdHJva2U6ICcjYTdhN2E3JyxcbiAgc3Ryb2tlV2lkdGg6IDIsXG4gIGZpbGw6ICcjYTlhOWE5JyxcbiAgZmlsbE9wYWNpdHk6IDAuM1xufTtcblxuY29uc3QgSU5BQ1RJVkVfU1RZTEUgPSBVTkNPTU1JVFRFRF9TVFlMRTtcblxuY29uc3QgREVGQVVMVF9TVFlMRSA9IHtcbiAgc3Ryb2tlOiAnIzAwMDAwMCcsXG4gIHN0cm9rZVdpZHRoOiAyLFxuICBmaWxsOiAnI2E5YTlhOScsXG4gIGZpbGxPcGFjaXR5OiAwLjFcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmZWF0dXJlU3R5bGUoeyBmZWF0dXJlLCBzdGF0ZSB9KSB7XG4gIGNvbnN0IHJlbmRlclR5cGUgPSBmZWF0dXJlLnByb3BlcnRpZXMucmVuZGVyVHlwZTtcbiAgbGV0IHN0eWxlID0gbnVsbDtcblxuICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgY2FzZSBSRU5ERVJfU1RBVEUuU0VMRUNURUQ6XG4gICAgICBzdHlsZSA9IHsgLi4uU0VMRUNURURfU1RZTEUgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBSRU5ERVJfU1RBVEUuSE9WRVJFRDpcbiAgICAgIHN0eWxlID0geyAuLi5IT1ZFUkVEX1NUWUxFIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgUkVOREVSX1NUQVRFLlVOQ09NTUlUVEVEOlxuICAgIGNhc2UgUkVOREVSX1NUQVRFLkNMT1NJTkc6XG4gICAgICBzdHlsZSA9IHsgLi4uVU5DT01NSVRURURfU1RZTEUgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBSRU5ERVJfU1RBVEUuSU5BQ1RJVkU6XG4gICAgICBzdHlsZSA9IHsgLi4uSU5BQ1RJVkVfU1RZTEUgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHN0eWxlID0geyAuLi5ERUZBVUxUX1NUWUxFIH07XG4gIH1cblxuICBzd2l0Y2ggKHJlbmRlclR5cGUpIHtcbiAgICBjYXNlIFJFTkRFUl9UWVBFLlBPSU5UOlxuICAgICAgc3R5bGUuciA9IENJUkNMRV9SQURJVVM7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJFTkRFUl9UWVBFLkxJTkVfU1RSSU5HOlxuICAgICAgc3R5bGUuZmlsbCA9ICdub25lJztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgUkVOREVSX1RZUEUuUE9MWUdPTjpcbiAgICAgIGlmIChzdGF0ZSA9PT0gUkVOREVSX1NUQVRFLkNMT1NJTkcpIHtcbiAgICAgICAgc3R5bGUuc3Ryb2tlRGFzaGFycmF5ID0gJzQsMic7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJFTkRFUl9UWVBFLlJFQ1RBTkdMRTpcbiAgICAgIGlmIChzdGF0ZSA9PT0gUkVOREVSX1NUQVRFLlVOQ09NTUlUVEVEKSB7XG4gICAgICAgIHN0eWxlLnN0cm9rZURhc2hhcnJheSA9ICc0LDInO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgfVxuXG4gIHJldHVybiBzdHlsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRIYW5kbGVTdHlsZSh7IGZlYXR1cmUsIHNoYXBlLCBpbmRleCwgc3RhdGUgfSkge1xuICBsZXQgc3R5bGUgPSB7fTtcbiAgc3dpdGNoIChzdGF0ZSkge1xuICAgIGNhc2UgUkVOREVSX1NUQVRFLlNFTEVDVEVEOlxuICAgICAgc3R5bGUgPSB7IC4uLlNFTEVDVEVEX1NUWUxFIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgUkVOREVSX1NUQVRFLkhPVkVSRUQ6XG4gICAgICBzdHlsZSA9IHsgLi4uSE9WRVJFRF9TVFlMRSB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFJFTkRFUl9TVEFURS5VTkNPTU1JVFRFRDpcbiAgICBjYXNlIFJFTkRFUl9TVEFURS5DTE9TSU5HOlxuICAgICAgc3R5bGUgPSB7IC4uLlVOQ09NTUlUVEVEX1NUWUxFIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgUkVOREVSX1NUQVRFLklOQUNUSVZFOlxuICAgICAgc3R5bGUgPSB7IC4uLklOQUNUSVZFX1NUWUxFIH07XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBzdHlsZSA9IHsgLi4uREVGQVVMVF9TVFlMRSB9O1xuICB9XG5cbiAgc3dpdGNoIChzaGFwZSkge1xuICAgIGNhc2UgJ2NpcmNsZSc6XG4gICAgICBzdHlsZS5yID0gQ0lSQ0xFX1JBRElVUztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JlY3QnOlxuICAgICAgc3R5bGUgPSB7IC4uLnN0eWxlLCAuLi5SRUNUX1NUWUxFIH07XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufVxuIl19