com.mware.web.product.map.dist.Map.js.map Maven / Gradle / Ivy
The newest version!
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 3e9f9da24d684a7ee6f7","webpack:///Map.js","webpack:///external {\"amd\":\"openlayers\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"prop-types\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./util/layerHelpers.js","webpack:///external {\"amd\":\"create-react-class\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./util/cache.js","webpack:///external {\"amd\":\"react-dom\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./multiPointCluster.js","webpack:///external {\"amd\":\"util/withDataRequest\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"jscache\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"util/vertex/formatters\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"util/mapConfig\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"data/web-worker/store/ontology/selectors\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"react-redux\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"data/web-worker/store/selection/actions\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"data/web-worker/store/product/actions\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"data/web-worker/store/product/selectors\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./worker/actions.js","webpack:///external {\"amd\":\"data/web-worker/store/actions\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"configuration/plugins/registry\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./MapContainer.jsx","webpack:///external {\"amd\":\"util/dnd\",\"commonjs2\":false,\"commonjs\":false}","webpack:///external {\"amd\":\"components/DroppableHOC\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./Map.jsx","webpack:///external {\"amd\":\"components/RegistryInjectorHOC\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./OpenLayers.jsx","webpack:///external {\"amd\":\"product/toolbar/ProductToolbar\",\"commonjs2\":false,\"commonjs\":false}","webpack:///./clusterHover.js","webpack:///external {\"amd\":\"util/deepObjectCache\",\"commonjs2\":false,\"commonjs\":false}"],"names":["root","factory","exports","module","require","define","amd","undefined","self","this","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_6__","__WEBPACK_EXTERNAL_MODULE_8__","__WEBPACK_EXTERNAL_MODULE_10__","__WEBPACK_EXTERNAL_MODULE_11__","__WEBPACK_EXTERNAL_MODULE_12__","__WEBPACK_EXTERNAL_MODULE_19__","__WEBPACK_EXTERNAL_MODULE_28__","__WEBPACK_EXTERNAL_MODULE_29__","__WEBPACK_EXTERNAL_MODULE_30__","__WEBPACK_EXTERNAL_MODULE_31__","__WEBPACK_EXTERNAL_MODULE_32__","__WEBPACK_EXTERNAL_MODULE_34__","__WEBPACK_EXTERNAL_MODULE_47__","__WEBPACK_EXTERNAL_MODULE_65__","__WEBPACK_EXTERNAL_MODULE_66__","__WEBPACK_EXTERNAL_MODULE_68__","__WEBPACK_EXTERNAL_MODULE_70__","__WEBPACK_EXTERNAL_MODULE_72__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_objectWithoutProperties","obj","keys","target","indexOf","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","push","value","length","err","Array","isArray","TypeError","_extends","assign","arguments","source","key","ol","MultiPointCluster","withDataRequest","cache","interpolate","v","x0","x1","y0","y1","setLayerConfig","config","layer","visible","opacity","zIndex","properties","_","mapObject","unset","set","setVisible","setOpacity","setZIndex","syncFeatures","focused","features","existingFeatures","indexBy","getFeatures","f","getId","newFeatures","changed","featureIndex","data","id","styles","geometryOverride","geometry","geoLocations","element","rest","getOrCreateGeometry","feature","featureValues","normal","selected","radius","getRadiusFromStyles","normalImage","isFunction","getImage","_nodeRadius","getStroke","newSelected","clone","prevStroke","newStroke","style","Stroke","color","width","getWidth","image_","stroke","isFocusing","type","focusedDim","existingFeature","any","getProperties","val","isEqual","setProperties","Feature","setId","fitFeatures","addFeatures","isEmpty","forEach","removeFeature","getFormatForMimeType","mimeType","format","GeoJSON","KML","getOverlayIdForLayer","VECTOR_FEATURE_SELECTION_OVERLAY","image","getRadius","nodeRadius","devicePixelRatio","DEFAULT_LAYER_CONFIG","sortable","toggleable","layers","tile","configure","options","sourceOptions","baseLayerSource","console","error","Error","crossOrigin","Tile","label","addEvents","map","handlers","on","event","_retryCount","warn","src_","defer","load","cluster","Vector","clusterSource","heatmap","Heatmap","clear","count","selectionState","isSelected","heatmapLayer","vectorLayer","addToElements","list","el","isPartiallySelected","filter","getClusterFromEvent","pixel","pixelFeatures","getFeaturesAtPixel","layerFilter","onHeatmapClick","elements","vertices","edges","forEachFeatureAtPixel","onSelectElements","onClusterClick","targetFeature","clusterIterator","onAddSelection","selectInteraction","interaction","Select","addCondition","originalEvent","shiftKey","condition","events","click","toggleCondition","platformModifierKeyOnly","addInteraction","clusters","includes","debounce","newSelection","innerFeatures","all","some","extend","update","ancillary","wrapX","getExtent","_superExtent","extent","apply","customExtent","createEmpty","renderBuffer","updateWhileInteracting","updateWhileAnimating","extensionStyles","vectorXhr","layerOptions","olSource","overlayId","e","featuresAtPixel","sourceFeatures","getFeatureById","every","selectionOverlay","forEachFeature","geom","getGeometry","featureExtent","Polygon","fromExtent","setGeometry","layerStatus","selectedOverlay","setStyle","Style","fill","Fill","addFeature","loadFeatures","then","propName","propKey","dataRequest","dataProjection","readProjection","proj","getCode","readFeatures","featureProjection","catch","message","i18n","featureSelected","needFocusStyle","styleList","normalStyle","selectedStyle","getOrCreateFeature","src","imgSize","scale","anchor","addFocus","reset","addDim","focusStats","selectionCount","countStats","min","max","Math","getOrCreateCluster","byType","_toConsumableArray","arr2","from","Cache","hash","join","geoCache","cacheOptions","expirationSliding","EXPIRATION_MINUTES","FocusFill","FocusStroke","geo","getItem","MultiPoint","fromLonLat","setItem","cached","Icon","splice","renderer","point","context","pixelRatio","resolution","rotation","setTransform","x","y","w","FocusPadding","h","save","globalAlpha","beginPath","moveTo","lineTo","quadraticCurveTo","closePath","fillStyle","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","restore","r","dim","Circle","lineWidth","textStroke","translate","arc","PI","strokeStyle","portion","font","textAlign","textBaseline","text","toString","strokeText","fillText","focusStyle","getOpacity","attributions","logo","projection","distance","geometryFunction","refresh","bind","inherits","getSource","updateResolution","setDistance","clustered","maxRadius","reduce","Number","MAX_VALUE","mapDistanceSearch","mapDistance","coordinates","getCoordinates","coordinate","coordinateIndex","extentSearch","boundingExtent","buffer","extent1","neighbors","getFeaturesInExtent","coords","featuresToCluster","neighbor","neighborGeometry","neighborCoordinates","neighborUid","coordsInCluster","uid","extent2","intersects","createCluster","centers","sums","average","Point","actions","protectFromWorker","createActions","workerImpl","dropElements","productId","undoable","removeElements","setLayerOrder","layerOrder","redux","ReactDom","registry","selectionActions","productActions","productSelectors","ontologySelectors","dnd","mapActions","DroppableHOC","Map","layerHelpers","registerExtension","identifier","itemComponentPath","placementHint","canHandle","product","kind","mimeTypes","BC_MIMETYPES","ELEMENTS","connect","state","props","getProduct","layerConfig","extendedData","workspaceId","workspace","currentId","configProperties","configuration","ontologyProperties","panelPadding","top","left","right","bottom","selection","getSelectedElementsInProduct","viewport","getViewport","productElementIds","getElementIdsInProduct","getElementsInProduct","getFocusedElementsInProduct","screen","height","dispatch","onClearSelection","add","onSelectAll","selectAll","onUpdatePreview","dataUrl","updatePreview","onUpdateViewport","pan","zoom","updateViewport","onDrop","getElementsFromDataTransfer","dataTransfer","preventDefault","stopPropagation","onDropElementIds","elementIds","onRemoveElementIds","onVertexMenu","vertexId","position","$","trigger","createReactClass","PropTypes","OpenLayers","clusterHover","RegistryInjectorHOC","F","DeepObjectCache","mapConfig","clusterCache","iconAnchor","getIconSize","memoize","ratio","documentExtensionPoint","markUndocumentedExtensionPoint","GEOSHAPE_MIMETYPES","propTypes","isRequired","func","shape","getInitialState","generatePreview","shouldComponentUpdate","nextProps","componentWillMount","caches","geometries","requestUpdateDebounce","clearCaches","componentDidMount","mounted","wrap","document","vertexIds","edgeIds","saveViewportDebounce","saveViewport","legacyListeners","fileImportSuccess","node","handler","componentWillUnmount","removeEvents","off","componentWillReceiveProps","setState","render","baseSource","baseSourceOptions","layerExtensions","className","marginTop","ref","_openlayers","sourcesByLayerId","mapElementsToSources","onTap","onPan","onViewport","onZoom","onContextTap","onMouseOver","onMouseOut","hasFeatureAtPixel","show","hide","productVertices","isValidVertex","isAncillary","clusteredFeatures","clusteredFeature","find","pageX","pageY","view","getZoom","getCenter","currentViewport","edgeInfo","ontology","calculatedGeometry","getOrUpdate","slice","getStyles","calculatedStyles","output","elementsSelectedById","values","concat","geoLocationProperties","groupBy","geoLocation","addOrUpdateSource","sources","extendedDataType","vertex","displayType","prop","ONTOLOGY_CONSTANTS","PROP_MIME_TYPE","rawProp","PROP_RAW","title","geoProp","latitude","longitude","isNaN","iconUrl","param","conceptType","iconUrlSelected","iconSize","each","k","forceUpdate","ProductToolbar","noop","ANIMATION_DURATION","string","bool","panning","getDefaultProps","prevSourcesByLayerId","prevProduct","nextSourcesByLayerId","nextProduct","layersWithSources","nextLayerIds","layerId","previous","newLayers","nextLayers","getLayerGroup","getLayers","getArray","existingLayersById","newLayersWithSources","addLayer","initializer","layerWithSource","initializeLayer","layerIndex","findIndex","setLayers","Collection","omit","componentDidUpdate","prevProps","prevState","fit","layerType","layerHelper","layerWithSources","nextSource","prevSource","shouldUpdate","newLayerOrder","prevLayerOrder","layersWithSource","applyLayerOrder","limitToFeatures","getView","setCenter","setResolution","applyLayerConfig","_updatePreview","base","doFit","animate","_canvasPreviewBuffer","once","captureTimer","loading","loaded","mapCanvas","canvas","capture","newCanvas","getContext","hRatio","vRatio","trunc","drawImage","Observable","unByKey","toDataURL","renderSync","tileLoadStart","clearTimeout","tileLoadEnd","createElement","olEvents","domEvents","PREVIEW_DEBOUNCE_SECONDS","configureMap","_handleMouseMoveTimeout","fn","moveWrapper","injectedProductProps","getInjectedToolProps","rightOffset","showNavigationControls","onFit","onControlsFit","onControlsZoom","zoomByDelta","delta","currentResolution","getResolution","constrainResolution","duration","_slowZoomIn","throttle","trailing","_slowZoomOut","onControlsPan","currentCenter","center","constrainCenter","extentFromFeatures","fExtent","changeZoom","getVisible","getDefaultViewParameters","extentWithPadding","clientBox","refs","getBoundingClientRect","viewportWidth","padding","viewportHeight","extentWithPaddingSize","getSize","currentExtent","calculateExtent","idealResolution","horizontalSync","verticalSync","containsExtent","newResolution","offsetX","offsetY","lon","lat","minZoom","layerExtension","loadTilesWhileInteracting","keyboardEventTarget","controls","extension","configureEvents","View","setView","pointerEvent","button","domEvent","ctrlKey","getEventPixel","hit","handleMouseMove","getTarget","cursor","layersById","nextLayerGroup","orderedLayers","reverse","ids","removeEventListener","addEventListener","_handleMouseMoveFeatures","setTimeout","requestUpdate","aspect","size","setupMap","overlay","innerMap","styleFn","removeOverlay","coord","getPixelFromCoordinate","flip","css","append","toggleClass","Overlay","offset","addOverlay","setPosition","setPositioning","_map","_layer","setSize","maxZoom"],"mappings":"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","file":"Map.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"openlayers\", \"prop-types\", \"create-react-class\", \"react-dom\", \"util/withDataRequest\", \"jscache\", \"util/vertex/formatters\", \"util/mapConfig\", \"data/web-worker/store/ontology/selectors\", \"react-redux\", \"data/web-worker/store/selection/actions\", \"data/web-worker/store/product/actions\", \"data/web-worker/store/product/selectors\", \"data/web-worker/store/actions\", \"configuration/plugins/registry\", \"util/dnd\", \"components/DroppableHOC\", \"components/RegistryInjectorHOC\", \"product/toolbar/ProductToolbar\", \"util/deepObjectCache\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Map\"] = factory(require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false));\n\telse\n\t\troot[\"Map\"] = factory(root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_6__, __WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_10__, __WEBPACK_EXTERNAL_MODULE_11__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_19__, __WEBPACK_EXTERNAL_MODULE_28__, __WEBPACK_EXTERNAL_MODULE_29__, __WEBPACK_EXTERNAL_MODULE_30__, __WEBPACK_EXTERNAL_MODULE_31__, __WEBPACK_EXTERNAL_MODULE_32__, __WEBPACK_EXTERNAL_MODULE_34__, __WEBPACK_EXTERNAL_MODULE_47__, __WEBPACK_EXTERNAL_MODULE_65__, __WEBPACK_EXTERNAL_MODULE_66__, __WEBPACK_EXTERNAL_MODULE_68__, __WEBPACK_EXTERNAL_MODULE_70__, __WEBPACK_EXTERNAL_MODULE_72__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 64);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3e9f9da24d684a7ee6f7","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"openlayers\", \"prop-types\", \"create-react-class\", \"react-dom\", \"util/withDataRequest\", \"jscache\", \"util/vertex/formatters\", \"util/mapConfig\", \"data/web-worker/store/ontology/selectors\", \"react-redux\", \"data/web-worker/store/selection/actions\", \"data/web-worker/store/product/actions\", \"data/web-worker/store/product/selectors\", \"data/web-worker/store/actions\", \"configuration/plugins/registry\", \"util/dnd\", \"components/DroppableHOC\", \"components/RegistryInjectorHOC\", \"product/toolbar/ProductToolbar\", \"util/deepObjectCache\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Map\"] = factory(require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false), require(false));\n\telse\n\t\troot[\"Map\"] = factory(root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined], root[undefined]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_6__, __WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_10__, __WEBPACK_EXTERNAL_MODULE_11__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_19__, __WEBPACK_EXTERNAL_MODULE_28__, __WEBPACK_EXTERNAL_MODULE_29__, __WEBPACK_EXTERNAL_MODULE_30__, __WEBPACK_EXTERNAL_MODULE_31__, __WEBPACK_EXTERNAL_MODULE_32__, __WEBPACK_EXTERNAL_MODULE_34__, __WEBPACK_EXTERNAL_MODULE_47__, __WEBPACK_EXTERNAL_MODULE_65__, __WEBPACK_EXTERNAL_MODULE_66__, __WEBPACK_EXTERNAL_MODULE_68__, __WEBPACK_EXTERNAL_MODULE_70__, __WEBPACK_EXTERNAL_MODULE_72__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 64);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */,\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ }),\n/* 3 */,\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n/*\n * This file is part of the BigConnect project.\n *\n * Copyright (c) 2013-2020 MWARE SOLUTIONS SRL\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License version 3\n * as published by the Free Software Foundation with the addition of the\n * following permission added to Section 15 as permitted in Section 7(a):\n * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY\n * MWARE SOLUTIONS SRL, MWARE SOLUTIONS SRL DISCLAIMS THE WARRANTY OF\n * NON INFRINGEMENT OF THIRD PARTY RIGHTS\n *\n * This program is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE.\n * See the GNU Affero General Public License for more details.\n * You should have received a copy of the GNU Affero General Public License\n * along with this program; if not, see http://www.gnu.org/licenses or write to\n * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n * Boston, MA, 02110-1301 USA, or download the license from the following URL:\n * https://www.gnu.org/licenses/agpl-3.0.txt\n *\n * The interactive user interfaces in modified source and object code versions\n * of this program must display Appropriate Legal Notices, as required under\n * Section 5 of the GNU Affero General Public License.\n *\n * You can be released from the requirements of the license by purchasing\n * a commercial license. Buying such a license is mandatory as soon as you\n * develop commercial activities involving the BigConnect software without\n * disclosing the source code of your own applications.\n *\n * These activities include: offering paid services to customers as an ASP,\n * embedding the product in a web application, shipping BigConnect with a\n * closed source product.\n */\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0), __webpack_require__(9), __webpack_require__(10), __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (ol, MultiPointCluster, withDataRequest, cache) {\n 'use strict';\n\n var FEATURE_CLUSTER_RADIUS = 12;\n var FEATURE_CLUSTER_RADIUS_MAX = 20;\n var VECTOR_FEATURE_SELECTION_OVERLAY = 'org-bigconnect-map-vector-selected-overlay';\n\n var DEFAULT_LAYER_CONFIG = {\n sortable: true,\n toggleable: true\n };\n\n var layers = {\n tile: {\n configure: function configure(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var source = options.source,\n _options$sourceOption = options.sourceOptions,\n sourceOptions = _options$sourceOption === undefined ? {} : _options$sourceOption,\n config = _objectWithoutProperties(options, ['source', 'sourceOptions']);\n\n var baseLayerSource = void 0;\n\n if (source in ol.source && _.isFunction(ol.source[source])) {\n baseLayerSource = new ol.source[source](_extends({\n crossOrigin: 'anonymous'\n }, sourceOptions));\n } else {\n console.error('Unknown map provider type: ', source);\n throw new Error('map.provider is invalid');\n }\n\n var layer = new ol.layer.Tile(_extends({}, DEFAULT_LAYER_CONFIG, {\n id: id,\n label: 'Base',\n type: 'tile',\n sortable: false,\n source: baseLayerSource\n }, config));\n\n return { source: baseLayerSource, layer: layer };\n },\n addEvents: function addEvents(map, _ref, handlers) {\n var source = _ref.source;\n\n return [source.on('tileloaderror', function (event) {\n var MaxRetry = 3;\n var tile = event.tile;\n\n\n if (tile) {\n tile._retryCount = (tile._retryCount || 0) + 1;\n if (tile._retryCount <= MaxRetry) {\n console.warn('Tile error retry: ' + tile._retryCount + ' of ' + MaxRetry, tile.src_);\n _.defer(function () {\n tile.load();\n });\n }\n }\n })];\n }\n },\n\n cluster: {\n configure: function configure(id) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var source = new ol.source.Vector({ features: [] });\n var clusterSource = new MultiPointCluster({ source: source });\n var layer = new ol.layer.Vector(_extends({}, DEFAULT_LAYER_CONFIG, {\n id: id,\n label: 'Cluster',\n type: 'cluster',\n style: function style(cluster) {\n return _this.style(cluster, { source: source });\n },\n source: clusterSource\n }, options));\n var heatmap = new ol.layer.Heatmap(_extends({}, DEFAULT_LAYER_CONFIG, options, {\n visible: false,\n id: 'heatmap_cluster',\n label: 'Heatmap',\n type: 'cluster_heatmap',\n source: source\n }));\n\n cache.clear();\n\n return { source: source, clusterSource: clusterSource, layers: [heatmap, layer] };\n },\n style: function style(cluster) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n source = _ref2.source,\n _ref2$selected = _ref2.selected,\n selected = _ref2$selected === undefined ? false : _ref2$selected;\n\n var count = cluster.get('count');\n var selectionState = cluster.get('selectionState') || 'none';\n var isSelected = selected || selectionState !== 'none';\n\n if (count > 1) {\n return styles.cluster(cluster, { selected: isSelected, source: source });\n } else {\n return styles.feature(cluster.get('features')[0], { selected: isSelected });\n }\n },\n addEvents: function addEvents(map, _ref3, handlers) {\n var _this2 = this;\n\n var source = _ref3.source,\n clusterSource = _ref3.clusterSource,\n layers = _ref3.layers;\n\n var _layers = _slicedToArray(layers, 2),\n heatmapLayer = _layers[0],\n vectorLayer = _layers[1];\n\n var addToElements = function addToElements(list) {\n return function (feature) {\n var el = feature.get('element');\n var key = el.type === 'vertex' ? 'vertices' : 'edges';\n list[key].push(el.id);\n };\n };\n var isPartiallySelected = function isPartiallySelected(cluster) {\n if (cluster.get('count') < 2) return false;\n\n var features = cluster.get('features');\n var selected = features.filter(function (f) {\n return f.get('selected');\n });\n return 0 < selected.length && selected.length < features.length;\n };\n var getClusterFromEvent = function getClusterFromEvent(_ref4) {\n var pixel = _ref4.pixel;\n\n var pixelFeatures = map.getFeaturesAtPixel(pixel, {\n layerFilter: function layerFilter(layer) {\n return layer === vectorLayer;\n }\n });\n return pixelFeatures && pixelFeatures[0];\n };\n\n // For heatmap selections\n var onHeatmapClick = map.on('click', function (_ref5) {\n var pixel = _ref5.pixel;\n\n var elements = { vertices: [], edges: [] };\n map.forEachFeatureAtPixel(pixel, addToElements(elements), {\n layerFilter: function layerFilter(layer) {\n return layer === heatmapLayer;\n }\n });\n\n if (elements.vertices.length || elements.edges.length) {\n handlers.onSelectElements(elements);\n }\n });\n\n // For partial cluster selections\n var onClusterClick = map.on('click', function (event) {\n var targetFeature = getClusterFromEvent(event);\n\n if (targetFeature && isPartiallySelected(targetFeature)) {\n var elements = { vertices: [], edges: [] };\n var clusterIterator = addToElements(elements);\n\n targetFeature.get('features').forEach(clusterIterator);\n handlers.onAddSelection(elements);\n }\n });\n\n //this does not support ol.interaction.Select.multi because of partial cluster selection\n var selectInteraction = new ol.interaction.Select({\n addCondition: function addCondition(event) {\n if (event.originalEvent.shiftKey) {\n return true;\n } else {\n var targetFeature = getClusterFromEvent(event);\n return !!targetFeature && isPartiallySelected(targetFeature);\n }\n },\n condition: ol.events.condition.click,\n toggleCondition: ol.events.condition.platformModifierKeyOnly,\n layers: [vectorLayer],\n style: function style(cluster) {\n return _this2.style(cluster, { source: source, selected: true });\n }\n });\n\n map.addInteraction(selectInteraction);\n\n var onSelectCluster = selectInteraction.on('select', function (event) {\n var selected = event.selected,\n interaction = event.target;\n\n var clusters = interaction.getFeatures();\n var elements = { vertices: [], edges: [] };\n var clusterIterator = addToElements(elements);\n\n clusters.forEach(function (cluster) {\n var features = cluster.get('features');\n if (isPartiallySelected(cluster) && !selected.includes(cluster)) {\n features = features.filter(function (f) {\n return f.get('selected');\n });\n }\n features.forEach(clusterIterator);\n });\n\n handlers.onSelectElements(elements);\n });\n\n var onClusterSourceChange = clusterSource.on('change', _.debounce(function () {\n var selected = selectInteraction.getFeatures(),\n clusters = this.getFeatures(),\n newSelection = [],\n isSelected = function isSelected(feature) {\n return feature.get('selected');\n };\n\n clusters.forEach(function (cluster) {\n var innerFeatures = cluster.get('features');\n var all = true,\n some = false,\n count = 0;\n innerFeatures.forEach(function (feature) {\n var selected = isSelected(feature);\n all = all && selected;\n some = some || selected;\n count += selected ? 1 : 0;\n });\n\n if (some) {\n newSelection.push(cluster);\n cluster.set('selectionState', all ? 'all' : 'some');\n cluster.set('selectionCount', count);\n } else {\n cluster.unset('selectionState');\n cluster.unset('selectionCount');\n }\n });\n\n selected.clear();\n if (newSelection.length) {\n selected.extend(newSelection);\n }\n }, 100));\n\n return [onHeatmapClick, onClusterClick, onSelectCluster, onClusterSourceChange];\n },\n\n\n update: syncFeatures\n },\n\n ancillary: {\n configure: function configure(id) {\n var _this3 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var map = arguments[2];\n\n var source = new ol.source.Vector({\n features: [],\n wrapX: false\n });\n if (options.getExtent) {\n var _superExtent = source.getExtent;\n source.getExtent = function () {\n var extent = _superExtent && _superExtent.apply(this, arguments);\n var customExtent = options.getExtent(map, source, extent);\n if (ol.extent.isEmpty(customExtent)) {\n return extent || ol.extent.createEmpty();\n }\n return customExtent || extent || ol.extent.createEmpty();\n };\n }\n var layer = new ol.layer.Vector(_extends({}, DEFAULT_LAYER_CONFIG, {\n id: id,\n type: 'ancillary',\n sortable: false,\n toggleable: false,\n source: source,\n renderBuffer: 500,\n updateWhileInteracting: true,\n updateWhileAnimating: true,\n style: function style(ancillary) {\n return _this3.style(ancillary);\n }\n }, options));\n\n return { source: source, layer: layer };\n },\n style: function style(ancillary) {\n var extensionStyles = ancillary.get('styles');\n if (extensionStyles) {\n var normal = extensionStyles.normal;\n\n if (normal.length) {\n return normal;\n }\n }\n },\n\n\n update: syncFeatures\n },\n\n vectorXhr: {\n configure: function configure(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$sourceOption2 = options.sourceOptions,\n sourceOptions = _options$sourceOption2 === undefined ? {} : _options$sourceOption2,\n layerOptions = _objectWithoutProperties(options, ['sourceOptions']);\n\n var source = new ol.source.Vector(sourceOptions);\n var layer = new ol.layer.Vector(_extends({}, DEFAULT_LAYER_CONFIG, {\n id: id,\n type: 'vectorXhr',\n source: source\n }, layerOptions));\n\n return { source: source, layer: layer };\n },\n addEvents: function addEvents(map, _ref6, handlers) {\n var olSource = _ref6.source,\n layer = _ref6.layer;\n\n var elements = { vertices: [], edges: [] };\n var element = layer.get('element');\n var key = element.type === 'vertex' ? 'vertices' : 'edges';\n var overlayId = getOverlayIdForLayer(layer);\n\n elements[key].push(element.id);\n\n var onGeoShapeClick = map.on('click', function (e) {\n var map = e.map,\n pixel = e.pixel;\n\n var featuresAtPixel = map.getFeaturesAtPixel(pixel);\n var sourceFeatures = olSource.getFeatures();\n\n if (featuresAtPixel) {\n if (featuresAtPixel.length === 1 && featuresAtPixel[0].getId() === overlayId && olSource.getFeatureById(overlayId)) {\n handlers.onSelectElements({ vertices: [], edges: [] });\n } else if (featuresAtPixel.every(function (feature) {\n return sourceFeatures.includes(feature);\n })) {\n handlers.onSelectElements(elements);\n }\n }\n });\n\n var onLayerFeaturesLoaded = olSource.on('propertyChange', function (e) {\n if (e.key === 'status' && e.target.get(e.key) === 'loaded') {\n var selectionOverlay = olSource.getFeatureById(overlayId);\n\n if (selectionOverlay) {\n var extent = void 0;\n\n olSource.forEachFeature(function (feature) {\n var geom = feature.getGeometry();\n var featureExtent = geom.getExtent();\n\n if (feature.getId() !== overlayId) {\n if (extent) {\n ol.extent.extend(extent, featureExtent);\n } else {\n extent = featureExtent;\n }\n }\n });\n\n var geometry = ol.geom.Polygon.fromExtent(extent);\n selectionOverlay.setGeometry(geometry);\n }\n }\n });\n\n return [onGeoShapeClick, onLayerFeaturesLoaded];\n },\n update: function update(source, _ref7) {\n var olSource = _ref7.source,\n layer = _ref7.layer;\n var element = source.element,\n features = source.features,\n selected = source.selected;\n\n var layerStatus = layer.get('status');\n var nextFeatures = [];\n var changed = false;\n var fitFeatures = void 0;\n\n if (element !== layer.get('element')) {\n olSource.set('element', element);\n changed = true;\n }\n\n if (!layerStatus) {\n this.loadFeatures(olSource, layer).then(function (features) {\n if (features) {\n olSource.clear(true);\n olSource.addFeatures(features);\n layer.set('status', 'loaded');\n }\n });\n } else if (selected !== olSource.get('selected')) {\n var overlayId = getOverlayIdForLayer(layer);\n olSource.set('selected', selected);\n changed = true;\n\n if (selected && layerStatus === 'loaded') {\n var extent = void 0;\n olSource.forEachFeature(function (feature) {\n var geom = feature.getGeometry();\n var featureExtent = geom.getExtent();\n\n if (feature.getId() !== overlayId) {\n if (extent) {\n ol.extent.extend(extent, featureExtent);\n } else {\n extent = featureExtent;\n }\n }\n });\n\n var selectedOverlay = new ol.Feature(ol.geom.Polygon.fromExtent(extent || [0, 0, 0, 0]));\n selectedOverlay.setStyle(new ol.style.Style({\n fill: new ol.style.Fill({ color: [0, 136, 204, 0.3] }),\n stroke: new ol.style.Stroke({ color: [0, 136, 204, 0.4], width: 1 })\n }));\n selectedOverlay.setId(overlayId);\n\n olSource.addFeature(selectedOverlay);\n } else {\n var _selectedOverlay = olSource.getFeatureById(overlayId);\n if (_selectedOverlay) {\n olSource.removeFeature(_selectedOverlay);\n }\n }\n }\n\n return { changed: changed };\n },\n loadFeatures: function loadFeatures(olSource, layer) {\n var _layer$getProperties = layer.getProperties(),\n id = _layer$getProperties.id,\n element = _layer$getProperties.element,\n propName = _layer$getProperties.propName,\n propKey = _layer$getProperties.propKey,\n mimeType = _layer$getProperties.mimeType;\n\n layer.set('status', 'loading');\n\n return withDataRequest.dataRequest('vertex', 'propertyValue', id, propName, propKey).then(function (source) {\n var format = getFormatForMimeType(mimeType);\n var dataProjection = format.readProjection(source);\n\n if (!dataProjection || !ol.proj.get(dataProjection.getCode())) {\n throw new Error('unhandledDataProjection');\n } else {\n var features = format.readFeatures(source, {\n dataProjection: dataProjection,\n featureProjection: 'EPSG:3857'\n });\n\n return features;\n }\n }).then(function (features) {\n return features.map(function (feature, i) {\n feature.setId(layer.get('id') + ':' + i);\n feature.set('element', element);\n\n return feature;\n });\n }).catch(function (e) {\n var message = e.message === 'unhandledDataProjection' ? i18n('org.bigconnect.web.product.map.MapWorkProduct.layer.error.data.format') : i18n('org.bigconnect.web.product.map.MapWorkProduct.layer.error');\n\n layer.set('status', { type: 'error', message: message });\n });\n }\n }\n };\n\n var styles = {\n feature: function feature(_feature) {\n var _ref8 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref8$selected = _ref8.selected,\n selected = _ref8$selected === undefined ? false : _ref8$selected;\n\n var _feature$getPropertie = _feature.getProperties(),\n focused = _feature$getPropertie.focused,\n focusedDim = _feature$getPropertie.focusedDim,\n extensionStyles = _feature$getPropertie.styles,\n featureSelected = _feature$getPropertie.selected,\n radius = _feature$getPropertie._nodeRadius;\n\n var isSelected = selected || featureSelected;\n var needSelectedStyle = true;\n var needFocusStyle = true;\n var styleList = void 0;\n\n if (extensionStyles) {\n var normalStyle = extensionStyles.normal,\n selectedStyle = extensionStyles.selected;\n\n var style = void 0;\n if (normalStyle.length && (!isSelected || !selectedStyle.length)) {\n style = normalStyle;\n } else if (selectedStyle.length && isSelected) {\n style = selectedStyle;\n }\n\n if (style) {\n styleList = _.isArray(style) ? style : [style];\n }\n } else {\n needSelectedStyle = false;\n needFocusStyle = false;\n styleList = cache.getOrCreateFeature({\n src: _feature.get(isSelected ? 'iconUrlSelected' : 'iconUrl'),\n imgSize: _feature.get('iconSize'),\n scale: 1 / _feature.get('pixelRatio'),\n anchor: _feature.get('iconAnchor')\n }, focused);\n }\n\n if (_.isEmpty(styleList)) {\n console.warn('No styles for feature, ignoring.', _feature);\n return [];\n }\n\n if (needFocusStyle && focused) {\n return cache.addFocus(radius, cache.reset(radius, styleList));\n }\n if (focusedDim) {\n return cache.addDim(radius, styleList);\n }\n\n return cache.reset(radius, styleList);\n },\n cluster: function cluster(_cluster) {\n var _ref9 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref9$selected = _ref9.selected,\n selected = _ref9$selected === undefined ? false : _ref9$selected,\n source = _ref9.source,\n clusterSource = _ref9.clusterSource;\n\n var count = _cluster.get('count'),\n focusStats = _cluster.get('focusStats'),\n selectionState = _cluster.get('selectionState') || 'none',\n selectionCount = _cluster.get('selectionCount') || 0,\n _source$countStats = source.countStats,\n min = _source$countStats.min,\n max = _source$countStats.max,\n value = Math.min(max, Math.max(min, count)),\n radius = min === max ? FEATURE_CLUSTER_RADIUS : interpolate(value, min, max, FEATURE_CLUSTER_RADIUS, FEATURE_CLUSTER_RADIUS_MAX);\n\n\n return cache.getOrCreateCluster({\n count: count, radius: radius, selected: selected, selectionState: selectionState, selectionCount: selectionCount, focusStats: focusStats\n });\n }\n };\n\n function interpolate(v, x0, x1, y0, y1) {\n return (y0 * (x1 - v) + y1 * (v - x0)) / (x1 - x0);\n }\n\n function setLayerConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var layer = arguments[1];\n\n var _config$visible = config.visible,\n visible = _config$visible === undefined ? true : _config$visible,\n _config$opacity = config.opacity,\n opacity = _config$opacity === undefined ? 1 : _config$opacity,\n _config$zIndex = config.zIndex,\n zIndex = _config$zIndex === undefined ? 0 : _config$zIndex,\n properties = _objectWithoutProperties(config, ['visible', 'opacity', 'zIndex']);\n\n _.mapObject(properties, function (value, key) {\n if (value === null) {\n layer.unset(key);\n } else {\n layer.set(key, value);\n }\n });\n\n layer.setVisible(visible);\n layer.setOpacity(opacity);\n layer.setZIndex(zIndex);\n }\n\n function syncFeatures(_ref10, _ref11, focused) {\n var features = _ref10.features;\n var source = _ref11.source;\n\n var existingFeatures = _.indexBy(source.getFeatures(), function (f) {\n return f.getId();\n });\n var newFeatures = [];\n var changed = false;\n\n if (features) {\n for (var featureIndex = 0; featureIndex < features.length; featureIndex++) {\n var data = features[featureIndex];\n\n var id = data.id,\n _styles = data.styles,\n geometryOverride = data.geometry,\n geoLocations = data.geoLocations,\n element = data.element,\n rest = _objectWithoutProperties(data, ['id', 'styles', 'geometry', 'geoLocations', 'element']);\n\n var geometry = null;\n\n if (geometryOverride) {\n geometry = geometryOverride;\n } else if (geoLocations) {\n geometry = cache.getOrCreateGeometry(id, geoLocations);\n }\n\n if (geometry) {\n var feature;\n\n (function () {\n var featureValues = _extends({}, rest, {\n element: element,\n geoLocations: geoLocations,\n geometry: geometry\n });\n\n if (_styles) {\n var normal = _styles.normal,\n selected = _styles.selected;\n\n if (normal && normal.length) {\n var radius = getRadiusFromStyles(normal);\n var normalImage = _.isFunction(normal[0].getImage) && normal[0].getImage();\n\n featureValues._nodeRadius = radius;\n\n if (selected.length === 0 && !geometryOverride && normalImage && _.isFunction(normalImage.getStroke)) {\n var newSelected = normal[0].clone();\n var prevStroke = normal[0].getImage().getStroke();\n var newStroke = new ol.style.Stroke({\n color: '#0088cc',\n width: prevStroke && prevStroke.getWidth() || 1\n });\n\n newSelected.image_ = normal[0].getImage().clone({\n stroke: newStroke,\n opacity: 1\n });\n\n featureValues.styles = {\n normal: normal,\n selected: [newSelected]\n };\n } else {\n featureValues.styles = _styles;\n }\n }\n }\n\n if (focused && focused.isFocusing) {\n if (element.id in focused[element.type === 'vertex' ? 'vertices' : 'edges']) {\n featureValues.focused = true;\n featureValues.focusedDim = false;\n } else {\n featureValues.focused = false;\n featureValues.focusedDim = true;\n }\n } else {\n featureValues.focused = false;\n featureValues.focusedDim = false;\n }\n\n if (id in existingFeatures) {\n var existingFeature = existingFeatures[id];\n var diff = _.any(existingFeature.getProperties(), function (val, name) {\n switch (name) {\n case 'styles':\n case 'interacting':\n return false;\n case 'geoLocations':\n return !_.isEqual(val, featureValues[name]);\n default:\n return val !== featureValues[name];\n }\n });\n\n if (diff) {\n changed = true;\n if (existingFeature.get('interacting')) {\n delete featureValues.geometry;\n }\n existingFeature.setProperties(featureValues);\n }\n delete existingFeatures[id];\n } else {\n feature = new ol.Feature(featureValues);\n\n feature.setId(data.id);\n newFeatures.push(feature);\n }\n })();\n }\n }\n }\n\n var fitFeatures = void 0;\n if (newFeatures.length) {\n changed = true;\n source.addFeatures(newFeatures);\n fitFeatures = newFeatures;\n }\n if (!_.isEmpty(existingFeatures)) {\n changed = true;\n _.forEach(existingFeatures, function (feature) {\n return source.removeFeature(feature);\n });\n }\n return { changed: changed, fitFeatures: fitFeatures };\n }\n\n function getFormatForMimeType(mimeType) {\n switch (mimeType) {\n case 'application/vnd.geo+json':\n return new ol.format.GeoJSON();\n case 'application/vnd.google-earth.kml+xml':\n return new ol.format.KML();\n }\n }\n\n function getOverlayIdForLayer(layer) {\n return layer.get('id') + '|' + VECTOR_FEATURE_SELECTION_OVERLAY;\n }\n\n function getRadiusFromStyles(styles) {\n for (var i = styles.length - 1; i >= 0; i--) {\n if (_.isFunction(styles[i].getImage)) {\n var image = styles[i].getImage();\n var radius = image && _.isFunction(image.getRadius) && image.getRadius();\n\n if (radius) {\n var nodeRadius = radius / devicePixelRatio;\n return nodeRadius;\n }\n }\n }\n }\n\n return {\n byType: layers,\n styles: styles,\n setLayerConfig: setLayerConfig\n };\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 5 */,\n/* 6 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/*\n * This file is part of the BigConnect project.\n *\n * Copyright (c) 2013-2020 MWARE SOLUTIONS SRL\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License version 3\n * as published by the Free Software Foundation with the addition of the\n * following permission added to Section 15 as permitted in Section 7(a):\n * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY\n * MWARE SOLUTIONS SRL, MWARE SOLUTIONS SRL DISCLAIMS THE WARRANTY OF\n * NON INFRINGEMENT OF THIRD PARTY RIGHTS\n *\n * This program is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE.\n * See the GNU Affero General Public License for more details.\n * You should have received a copy of the GNU Affero General Public License\n * along with this program; if not, see http://www.gnu.org/licenses or write to\n * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n * Boston, MA, 02110-1301 USA, or download the license from the following URL:\n * https://www.gnu.org/licenses/agpl-3.0.txt\n *\n * The interactive user interfaces in modified source and object code versions\n * of this program must display Appropriate Legal Notices, as required under\n * Section 5 of the GNU Affero General Public License.\n *\n * You can be released from the requirements of the license by purchasing\n * a commercial license. Buying such a license is mandatory as soon as you\n * develop commercial activities involving the BigConnect software without\n * disclosing the source code of your own applications.\n *\n * These activities include: offering paid services to customers as an ASP,\n * embedding the product in a web application, shipping BigConnect with a\n * closed source product.\n */\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0), __webpack_require__(11)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (ol, Cache) {\n\n var MAX_CACHE_ITEMS = 1000;\n var EXPIRATION_MINUTES = 5;\n var DEBUG = false;\n var SELECTED_COLOR = '#0088cc';\n\n var cache = new Cache(MAX_CACHE_ITEMS, DEBUG);\n var geoCache = new Cache(MAX_CACHE_ITEMS, DEBUG);\n var cacheOptions = {\n expirationSliding: EXPIRATION_MINUTES * 60\n };\n var FocusPadding = 3;\n var FocusCirclePadding = 6;\n var FocusRadius = 5;\n var FocusFill = new ol.style.Fill({ color: SELECTED_COLOR });\n var FocusStroke = new ol.style.Stroke({ color: '#ffffff', width: 1 });\n\n return {\n clear: function clear() {\n cache.clear();\n geoCache.clear();\n },\n getOrCreateGeometry: function getOrCreateGeometry(id, geoLocations) {\n var hash = ['geo', id].concat(_toConsumableArray(geoLocations.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n latitude = _ref2[0],\n longitude = _ref2[1];\n\n return latitude + ',' + longitude;\n }))).join(',');\n var geo = geoCache.getItem(hash);\n if (!geo) {\n geo = new ol.geom.MultiPoint(geoLocations.map(function (geo) {\n return ol.proj.fromLonLat(geo);\n }));\n geoCache.setItem(hash, geo, cacheOptions);\n }\n return geo;\n },\n getOrCreateFeature: function getOrCreateFeature(options, focused) {\n var key = hash(options, focused);\n var cached = cache.getItem(key);\n if (cached) {\n return cached;\n }\n\n var style = [new ol.style.Style({ image: new ol.style.Icon(options), zIndex: 1 })];\n if (focused) {\n var imgSize = options.imgSize,\n _options$anchor = options.anchor,\n anchor = _options$anchor === undefined ? [0.5, 0.5] : _options$anchor;\n\n style.splice(0, 0, new ol.style.Style({\n renderer: function renderer(point, _ref3) {\n var context = _ref3.context,\n feature = _ref3.feature,\n geometry = _ref3.geometry,\n pixelRatio = _ref3.pixelRatio,\n resolution = _ref3.resolution,\n rotation = _ref3.rotation;\n\n context.setTransform(1, 0, 0, 1, 0, 0);\n var x = point[0] - imgSize[0] * anchor[0] - FocusPadding * pixelRatio;\n var y = point[1] - imgSize[1] * anchor[1] - FocusPadding * pixelRatio;\n var w = imgSize[0] + FocusPadding * 2 * pixelRatio;\n var h = imgSize[1] + FocusPadding * 2 * pixelRatio;\n var radius = FocusRadius * pixelRatio;\n\n context.save();\n context.globalAlpha = 0.2;\n context.beginPath();\n context.moveTo(x + radius, y);\n context.lineTo(x + w - radius, y);\n context.quadraticCurveTo(x + w, y, x + w, y + radius);\n context.lineTo(x + w, y + h - radius);\n context.quadraticCurveTo(x + w, y + h, x + w - radius, y + h);\n context.lineTo(x + radius, y + h);\n context.quadraticCurveTo(x, y + h, x, y + h - radius);\n context.lineTo(x, y + radius);\n context.quadraticCurveTo(x, y, x + radius, y);\n context.closePath();\n context.fillStyle = SELECTED_COLOR;\n context.shadowBlur = radius / 2;\n context.shadowColor = 'white';\n context.shadowOffsetX = 0;\n context.shadowOffsetY = 0;\n context.fill();\n\n context.restore();\n },\n\n zIndex: 0\n }));\n }\n cache.setItem(key, style, cacheOptions);\n\n return style;\n },\n getOrCreateCluster: function getOrCreateCluster(_ref4) {\n var count = _ref4.count,\n r = _ref4.radius,\n selected = _ref4.selected,\n selectionState = _ref4.selectionState,\n selectionCount = _ref4.selectionCount,\n _ref4$focusStats = _ref4.focusStats,\n all = _ref4$focusStats.all,\n some = _ref4$focusStats.some,\n dim = _ref4$focusStats.dim;\n\n var key = ['cluster', count, r, selected, selectionState, selectionCount, all, some, dim].join('|');\n\n var style = cache.getItem(key);\n if (style) {\n return style;\n }\n\n style = [new ol.style.Style({\n image: new ol.style.Circle({\n radius: r * devicePixelRatio,\n fill: new ol.style.Fill({ color: 'rgba(255,255,255,0.01)' })\n })\n }), new ol.style.Style({\n renderer: function renderer(_ref5, _ref6) {\n var _ref7 = _slicedToArray(_ref5, 2),\n x = _ref7[0],\n y = _ref7[1];\n\n var context = _ref6.context,\n pixelRatio = _ref6.pixelRatio;\n\n var radius = r * pixelRatio;\n var unselectedFill = 'rgba(241,59,60,0.8)',\n selectedFill = 'rgba(0,112,195,0.8)',\n selectedFillNoAlpha = 'rgb(0,112,195)',\n unselectedStroke = '#AD2E2E',\n stroke = selected ? '#08538B' : unselectedStroke,\n lineWidth = 2 * pixelRatio,\n textStroke = stroke,\n fill = selected ? selectedFill : unselectedFill;\n\n if (selected && selectionState === 'some') {\n fill = unselectedFill;\n textStroke = unselectedStroke;\n stroke = unselectedStroke;\n }\n\n context.save();\n if (dim && !some) {\n context.globalAlpha = 0.4;\n }\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.translate(x, y);\n\n if (some) {\n context.beginPath();\n context.arc(0, 0, radius + FocusCirclePadding * pixelRatio, 0, 2 * Math.PI, true);\n context.fillStyle = 'rgba(0, 136, 204, 0.2)';\n context.fill();\n context.closePath();\n }\n\n context.beginPath();\n context.arc(0, 0, radius, 0, 2 * Math.PI, true);\n context.fillStyle = fill;\n context.fill();\n\n if (selectionState === 'some') {\n context.strokeStyle = stroke;\n context.lineWidth = Math.max(4 * pixelRatio, lineWidth);\n context.stroke();\n context.closePath();\n var portion = Math.max(0.1, Math.min(0.9, selectionCount / count));\n context.beginPath();\n context.arc(0, 0, radius, Math.PI / -2, Math.PI * 2 * portion - Math.PI / 2, false);\n context.strokeStyle = selectedFillNoAlpha;\n context.stroke();\n context.closePath();\n } else {\n context.strokeStyle = stroke;\n context.lineWidth = lineWidth;\n context.stroke();\n context.closePath();\n }\n\n context.font = 'bold condensed ' + radius + 'px sans-serif';\n context.textAlign = 'center';\n context.fillStyle = 'white';\n context.textBaseline = 'middle';\n context.strokeStyle = textStroke;\n context.lineWidth = pixelRatio;\n\n if (some && some !== count) {\n var text = some.toString();\n context.strokeText(text, 0, radius * -0.4);\n context.fillText(text, 0, radius * -0.4);\n\n context.font = 'bold condensed ' + radius * 0.7 + 'px sans-serif';\n context.fillStyle = 'rgba(255,255,255,0.8)';\n context.strokeText(count.toString(), 0, radius * 0.55);\n context.fillText(count.toString(), 0, radius * 0.55);\n\n context.beginPath();\n context.moveTo(radius * -0.5, radius * 0.1);\n context.lineTo(radius * 0.5, radius * 0.1);\n context.strokeStyle = 'rgba(255,255,255,0.3)';\n context.stroke();\n context.closePath();\n } else {\n var _text = count.toString();\n context.strokeText(_text, 0, 0);\n context.fillText(_text, 0, 0);\n }\n\n context.restore();\n }\n })];\n\n cache.setItem(key, style, cacheOptions);\n return style;\n },\n addFocus: function addFocus(radius, list) {\n var key = 'focus' + radius;\n var focusStyle = cache.getItem(key);\n if (!focusStyle) {\n focusStyle = new ol.style.Style({\n image: new ol.style.Circle({\n radius: radius + 5,\n fill: FocusFill,\n stroke: FocusStroke\n }),\n zIndex: 0\n });\n focusStyle.getImage().setOpacity(0.2);\n cache.setItem(key, focusStyle, cacheOptions);\n }\n\n return [focusStyle].concat(_toConsumableArray(list));\n },\n addDim: function addDim(radius, list) {\n var image = list.length && list[0].getImage();\n if (image) {\n image.setOpacity(0.4);\n }\n return list;\n },\n reset: function reset(radius, list) {\n var image = list.length && list[0].getImage();\n if (image && image.getOpacity() < 1) {\n image.setOpacity(1);\n }\n return list;\n }\n };\n\n function hash(_ref8, focused) {\n var src = _ref8.src,\n imgSize = _ref8.imgSize,\n scale = _ref8.scale,\n anchor = _ref8.anchor;\n\n return [focused, src, imgSize[0] + ',' + imgSize[1], scale, anchor[0] + ',' + anchor[1]].join('|');\n }\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n * This file is part of the BigConnect project.\n *\n * Copyright (c) 2013-2020 MWARE SOLUTIONS SRL\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License version 3\n * as published by the Free Software Foundation with the addition of the\n * following permission added to Section 15 as permitted in Section 7(a):\n * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY\n * MWARE SOLUTIONS SRL, MWARE SOLUTIONS SRL DISCLAIMS THE WARRANTY OF\n * NON INFRINGEMENT OF THIRD PARTY RIGHTS\n *\n * This program is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE.\n * See the GNU Affero General Public License for more details.\n * You should have received a copy of the GNU Affero General Public License\n * along with this program; if not, see http://www.gnu.org/licenses or write to\n * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n * Boston, MA, 02110-1301 USA, or download the license from the following URL:\n * https://www.gnu.org/licenses/agpl-3.0.txt\n *\n * The interactive user interfaces in modified source and object code versions\n * of this program must display Appropriate Legal Notices, as required under\n * Section 5 of the GNU Affero General Public License.\n *\n * You can be released from the requirements of the license by purchasing\n * a commercial license. Buying such a license is mandatory as soon as you\n * develop commercial activities involving the BigConnect software without\n * disclosing the source code of your own applications.\n *\n * These activities include: offering paid services to customers as an ASP,\n * embedding the product in a web application, shipping BigConnect with a\n * closed source product.\n */\n\n/**\n * This file is a fork of http://openlayers.org/en/master/apidoc/ol.source.Cluster.html\n * with support for multi-point clusters.\n */\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (ol) {\n 'use strict';\n\n var MultiPointCluster = function MultiPointCluster(options) {\n ol.source.Vector.call(this, {\n attributions: options.attributions,\n extent: options.extent,\n logo: options.logo,\n projection: options.projection,\n wrapX: options.wrapX\n });\n\n this.resolution = undefined;\n this.distance = 20 * devicePixelRatio;\n this.features = [];\n this.geometryFunction = options.geometryFunction || function (feature) {\n return feature.getGeometry();\n };\n this.source = options.source;\n this.refresh = _.debounce(this.refresh.bind(this), 100);\n this.source.on('change', this.refresh);\n };\n\n ol.inherits(MultiPointCluster, ol.source.Vector);\n\n MultiPointCluster.prototype.refresh = function () {\n this.clear();\n this.cluster();\n this.addFeatures(this.features);\n this.changed();\n };\n\n MultiPointCluster.prototype.getSource = function () {\n return this.source;\n };\n\n MultiPointCluster.prototype.loadFeatures = function (extent, resolution, projection) {\n this.source.loadFeatures(extent, resolution, projection);\n this.updateResolution(resolution);\n };\n\n MultiPointCluster.prototype.updateResolution = function (resolution) {\n if (resolution !== this.resolution) {\n this.clear();\n this.resolution = resolution;\n this.cluster();\n this.addFeatures(this.features);\n }\n };\n\n MultiPointCluster.prototype.setDistance = function (distance) {\n this.distance = distance;\n this.refresh();\n };\n\n MultiPointCluster.prototype.cluster = function () {\n var self = this;\n if (this.resolution === undefined) {\n return;\n }\n var resolution = this.resolution;\n var distance = this.distance;\n this.features.length = 0;\n var source = this.source;\n var features = source.getFeatures();\n var clustered = {};\n\n var getRadius = function getRadius(feature) {\n var radius = feature.get('_nodeRadius') * devicePixelRatio;\n return radius || distance;\n };\n var maxRadius = features.reduce(function (max, f) {\n var radius = getRadius(f);\n return Math.max(max, radius);\n }, 0);\n var countStats = { max: 0, min: Number.MAX_VALUE };\n this.source.countStats = countStats;\n\n for (var i = 0; i < features.length; i++) {\n clusterFeature(features[i]);\n }\n\n function clusterFeature(feature) {\n var radius = getRadius(feature);\n var mapDistanceSearch = (radius + maxRadius) * resolution;\n var mapDistance = radius * resolution;\n var geometry = self.geometryFunction(feature);\n if (geometry) {\n var coordinates = geometry.getCoordinates();\n for (var _i = 0; _i < coordinates.length; _i++) {\n clusterCoordinate(coordinates[_i], _i);\n }\n }\n\n function clusterCoordinate(coordinate, coordinateIndex) {\n if (!(feature.getId().toString() + '_' + coordinateIndex in clustered)) {\n\n // Search radius is this feature box + max size\n var extentSearch = ol.extent.boundingExtent([coordinate]);\n ol.extent.buffer(extentSearch, mapDistanceSearch, extentSearch);\n\n // Exact bounds to further match for collision\n var extent1 = ol.extent.boundingExtent([coordinate]);\n ol.extent.buffer(extent1, mapDistance, extent1);\n\n var neighbors = source.getFeaturesInExtent(extentSearch),\n coords = [],\n count = 0;\n\n var featuresToCluster = neighbors.filter(function (neighbor) {\n var neighborGeometry = self.geometryFunction(neighbor);\n var neighborCoordinates = neighborGeometry.getCoordinates();\n var neighborUid = neighbor.getId().toString() + '_';\n\n var coordsInCluster = neighborCoordinates.filter(function (coordinate, coordinateIndex) {\n var uid = neighborUid + coordinateIndex;\n\n var extent2 = ol.extent.boundingExtent([coordinate]);\n ol.extent.buffer(extent2, getRadius(neighbor) * resolution, extent2);\n\n if (ol.extent.intersects(extent1, extent2)) {\n if (!(uid in clustered)) {\n coords.push(coordinate);\n clustered[uid] = true;\n return true;\n }\n }\n return false;\n }).length;\n count += coordsInCluster;\n return coordsInCluster > 0;\n });\n\n countStats.max = Math.max(count, countStats.max);\n countStats.min = Math.min(count, countStats.min);\n self.features.push(self.createCluster(featuresToCluster, coords, count));\n }\n }\n }\n };\n\n MultiPointCluster.prototype.createCluster = function (features, coordinates, count) {\n var focusStats = { some: 0, all: false, dim: false };\n features.forEach(function (feature) {\n var focused = feature.get('focused');\n focusStats.some += focused ? 1 : 0;\n focusStats.all = focusStats.all && focused;\n focusStats.dim = focusStats.dim || feature.get('focusedDim');\n });\n var centers = coordinates.reduce(function (sums, c) {\n return sums.map(function (s, i) {\n return s + c[i];\n });\n }, [0, 0]);\n var average = centers.map(function (val) {\n return val / coordinates.length;\n });\n var geometry = new ol.geom.Point(average);\n\n return new ol.Feature({ geometry: geometry, features: features, coordinates: coordinates, count: count, focusStats: focusStats });\n };\n\n return MultiPointCluster;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_10__;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_11__;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_12__;\n\n/***/ }),\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_19__;\n\n/***/ }),\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_28__;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_30__;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_31__;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_32__;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n * This file is part of the BigConnect project.\n *\n * Copyright (c) 2013-2020 MWARE SOLUTIONS SRL\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License version 3\n * as published by the Free Software Foundation with the addition of the\n * following permission added to Section 15 as permitted in Section 7(a):\n * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY\n * MWARE SOLUTIONS SRL, MWARE SOLUTIONS SRL DISCLAIMS THE WARRANTY OF\n * NON INFRINGEMENT OF THIRD PARTY RIGHTS\n *\n * This program is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE.\n * See the GNU Affero General Public License for more details.\n * You should have received a copy of the GNU Affero General Public License\n * along with this program; if not, see http://www.gnu.org/licenses or write to\n * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n * Boston, MA, 02110-1301 USA, or download the license from the following URL:\n * https://www.gnu.org/licenses/agpl-3.0.txt\n *\n * The interactive user interfaces in modified source and object code versions\n * of this program must display Appropriate Legal Notices, as required under\n * Section 5 of the GNU Affero General Public License.\n *\n * You can be released from the requirements of the license by purchasing\n * a commercial license. Buying such a license is mandatory as soon as you\n * develop commercial activities involving the BigConnect software without\n * disclosing the source code of your own applications.\n *\n * These activities include: offering paid services to customers as an ASP,\n * embedding the product in a web application, shipping BigConnect with a\n * closed source product.\n */\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(34)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (actions) {\n actions.protectFromWorker();\n\n return actions.createActions({\n workerImpl: 'com/mware/web/product/map/dist/actions-impl',\n actions: {\n dropElements: function dropElements(productId, elements, _ref) {\n var undoable = _ref.undoable;\n return { productId: productId, elements: elements, undoable: undoable };\n },\n removeElements: function removeElements(productId, elements, _ref2) {\n var undoable = _ref2.undoable;\n return { productId: productId, elements: elements, undoable: undoable };\n },\n\n setLayerOrder: function setLayerOrder(productId, layerOrder) {\n return { productId: productId, layerOrder: layerOrder };\n }\n }\n });\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_34__;\n\n/***/ }),\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_47__;\n\n/***/ }),\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/*\n * This file is part of the BigConnect project.\n *\n * Copyright (c) 2013-2020 MWARE SOLUTIONS SRL\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License version 3\n * as published by the Free Software Foundation with the addition of the\n * following permission added to Section 15 as permitted in Section 7(a):\n * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY\n * MWARE SOLUTIONS SRL, MWARE SOLUTIONS SRL DISCLAIMS THE WARRANTY OF\n * NON INFRINGEMENT OF THIRD PARTY RIGHTS\n *\n * This program is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE.\n * See the GNU Affero General Public License for more details.\n * You should have received a copy of the GNU Affero General Public License\n * along with this program; if not, see http://www.gnu.org/licenses or write to\n * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n * Boston, MA, 02110-1301 USA, or download the license from the following URL:\n * https://www.gnu.org/licenses/agpl-3.0.txt\n *\n * The interactive user interfaces in modified source and object code versions\n * of this program must display Appropriate Legal Notices, as required under\n * Section 5 of the GNU Affero General Public License.\n *\n * You can be released from the requirements of the license by purchasing\n * a commercial license. Buying such a license is mandatory as soon as you\n * develop commercial activities involving the BigConnect software without\n * disclosing the source code of your own applications.\n *\n * These activities include: offering paid services to customers as an ASP,\n * embedding the product in a web application, shipping BigConnect with a\n * closed source product.\n */\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(29), __webpack_require__(8), __webpack_require__(47), __webpack_require__(30), __webpack_require__(31), __webpack_require__(32), __webpack_require__(28), __webpack_require__(65), __webpack_require__(33), __webpack_require__(66), __webpack_require__(67), __webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (redux, ReactDom, registry, selectionActions, productActions, productSelectors, ontologySelectors, dnd, mapActions, DroppableHOC, Map, layerHelpers) {\n 'use strict';\n\n registry.registerExtension('org.bigconnect.product.toolbar.item', {\n identifier: 'org-bigconnect-map-layers',\n itemComponentPath: 'com/mware/web/product/map/dist/MapLayersContainer',\n placementHint: 'popover',\n label: i18n('org.bigconnect.web.product.map.MapWorkProduct.layers.toolbar.item.label'),\n canHandle: function canHandle(product) {\n return product.kind === 'org.bigconnect.web.product.map.MapWorkProduct';\n }\n });\n\n var mimeTypes = [BC_MIMETYPES.ELEMENTS];\n\n return redux.connect(function (state, props) {\n var product = productSelectors.getProduct(state);\n var layerConfig = product.extendedData && product.extendedData['org-bigconnect-map-layers'] && product.extendedData['org-bigconnect-map-layers'].config;\n\n return _extends({}, props, {\n workspaceId: state.workspace.currentId,\n configProperties: state.configuration.properties,\n ontologyProperties: ontologySelectors.getProperties(state),\n panelPadding: { top: 0, left: 0, right: 0, bottom: 0 },\n selection: productSelectors.getSelectedElementsInProduct(state),\n viewport: productSelectors.getViewport(state),\n productElementIds: productSelectors.getElementIdsInProduct(state),\n product: productSelectors.getProduct(state),\n elements: productSelectors.getElementsInProduct(state),\n focused: productSelectors.getFocusedElementsInProduct(state),\n pixelRatio: state.screen.pixelRatio,\n mimeTypes: mimeTypes,\n style: { height: '100%' },\n layerConfig: layerConfig\n });\n }, function (dispatch, props) {\n return {\n onClearSelection: function onClearSelection() {\n return dispatch(selectionActions.clear());\n },\n onAddSelection: function onAddSelection(selection) {\n return dispatch(selectionActions.add(selection));\n },\n onSelectElements: function onSelectElements(selection) {\n return dispatch(selectionActions.set(selection));\n },\n onSelectAll: function onSelectAll(id) {\n return dispatch(productActions.selectAll(id));\n },\n\n onUpdatePreview: function onUpdatePreview(id, dataUrl) {\n return dispatch(productActions.updatePreview(id, dataUrl));\n },\n\n // TODO: these should be mapActions\n onUpdateViewport: function onUpdateViewport(id, _ref) {\n var pan = _ref.pan,\n zoom = _ref.zoom;\n return dispatch(productActions.updateViewport(id, { pan: pan, zoom: zoom }));\n },\n\n // For DroppableHOC\n onDrop: function onDrop(event) {\n var elements = dnd.getElementsFromDataTransfer(event.dataTransfer);\n if (elements) {\n event.preventDefault();\n event.stopPropagation();\n\n dispatch(mapActions.dropElements(props.product.id, elements, { undoable: true }));\n }\n },\n\n onDropElementIds: function onDropElementIds(elementIds) {\n dispatch(mapActions.dropElements(props.product.id, elementIds, { undoable: true }));\n },\n\n\n onRemoveElementIds: function onRemoveElementIds(elementIds) {\n dispatch(mapActions.removeElements(props.product.id, elementIds, { undoable: true }));\n },\n\n onVertexMenu: function onVertexMenu(element, vertexId, position) {\n $(element).trigger('showVertexContextMenu', { vertexId: vertexId, position: position });\n },\n\n setLayerOrder: function setLayerOrder(layerOrder) {\n return dispatch(mapActions.setLayerOrder(props.product.id, layerOrder));\n }\n };\n })(DroppableHOC(Map));\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_65__;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_66__;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n/*\n * This file is part of the BigConnect project.\n *\n * Copyright (c) 2013-2020 MWARE SOLUTIONS SRL\n *\n * This program is free software; you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License version 3\n * as published by the Free Software Foundation with the addition of the\n * following permission added to Section 15 as permitted in Section 7(a):\n * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY\n * MWARE SOLUTIONS SRL, MWARE SOLUTIONS SRL DISCLAIMS THE WARRANTY OF\n * NON INFRINGEMENT OF THIRD PARTY RIGHTS\n *\n * This program is distributed in the hope that it will be useful, but\n * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n * or FITNESS FOR A PARTICULAR PURPOSE.\n * See the GNU Affero General Public License for more details.\n * You should have received a copy of the GNU Affero General Public License\n * along with this program; if not, see http://www.gnu.org/licenses or write to\n * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n * Boston, MA, 02110-1301 USA, or download the license from the following URL:\n * https://www.gnu.org/licenses/agpl-3.0.txt\n *\n * The interactive user interfaces in modified source and object code versions\n * of this program must display Appropriate Legal Notices, as required under\n * Section 5 of the GNU Affero General Public License.\n *\n * You can be released from the requirements of the license by purchasing\n * a commercial license. Buying such a license is mandatory as soon as you\n * develop commercial activities involving the BigConnect software without\n * disclosing the source code of your own applications.\n *\n * These activities include: offering paid services to customers as an ASP,\n * embedding the product in a web application, shipping BigConnect with a\n * closed source product.\n */\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6), __webpack_require__(2), __webpack_require__(69), __webpack_require__(71), __webpack_require__(4), __webpack_require__(47), __webpack_require__(68), __webpack_require__(12), __webpack_require__(72), __webpack_require__(19), __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (createReactClass, PropTypes, OpenLayers, clusterHover, layerHelpers, registry, RegistryInjectorHOC, F, DeepObjectCache, mapConfig, clusterCache) {\n 'use strict';\n\n var iconAnchor = [0.5, 1.0];\n var getIconSize = _.memoize(function (ratio) {\n return [22, 40].map(function (v) {\n return v * ratio;\n });\n });\n\n /**\n * @deprecated Use {@link org.bigconnect.product.toolbar.item} instead\n */\n registry.documentExtensionPoint('org.bigconnect.map.options', 'Add components to the map options toolbar', function (e) {\n return 'identifier' in e && 'optionComponentPath' in e;\n }, 'https://docs.bigconnect.io/developer-guide/plugin-development/web-plugins/extension-point-reference-1/map-options');\n\n registry.markUndocumentedExtensionPoint('org.bigconnect.map.style');\n\n registry.markUndocumentedExtensionPoint('org.bigconnect.map.geometry');\n\n registry.markUndocumentedExtensionPoint('org.bigconnect.map.layer');\n\n var REQUEST_UPDATE_DEBOUNCE = 300;\n var GEOSHAPE_MIMETYPES = ['application/vnd.geo+json', 'application/vnd.google-earth.kml+xml'];\n\n var Map = createReactClass({\n displayName: 'Map',\n\n\n propTypes: {\n configProperties: PropTypes.object.isRequired,\n onUpdateViewport: PropTypes.func.isRequired,\n onSelectElements: PropTypes.func.isRequired,\n onVertexMenu: PropTypes.func.isRequired,\n elements: PropTypes.shape({ vertices: PropTypes.object, edges: PropTypes.object })\n },\n\n getInitialState: function getInitialState() {\n return { viewport: this.props.viewport, generatePreview: true };\n },\n shouldComponentUpdate: function shouldComponentUpdate(nextProps) {\n var _this = this;\n\n var onlyViewportChanged = Object.keys(nextProps).every(function (key) {\n if (key === 'viewport') {\n return true;\n }\n return _this.props[key] === nextProps[key];\n });\n\n if (onlyViewportChanged) {\n return false;\n }\n return true;\n },\n componentWillMount: function componentWillMount() {\n this.caches = {\n styles: {\n canHandle: new DeepObjectCache(),\n style: new DeepObjectCache(),\n selectedStyle: new DeepObjectCache()\n },\n geometries: {\n canHandle: new DeepObjectCache(),\n geometry: new DeepObjectCache()\n }\n };\n this.requestUpdateDebounce = _.debounce(this.clearCaches, REQUEST_UPDATE_DEBOUNCE);\n },\n componentDidMount: function componentDidMount() {\n var _this2 = this;\n\n this.mounted = true;\n\n $(this.wrap).on('selectAll', function (event) {\n _this2.props.onSelectAll(_this2.props.product.id);\n });\n $(document).on('elementsCut.org-bigconnect-map', function (event, _ref) {\n var vertexIds = _ref.vertexIds;\n\n _this2.props.onRemoveElementIds({ vertexIds: vertexIds, edgeIds: [] });\n });\n $(document).on('elementsPasted.org-bigconnect-map', function (event, elementIds) {\n _this2.props.onDropElementIds(elementIds);\n });\n\n this.saveViewportDebounce = _.debounce(this.saveViewport, 250);\n\n this.legacyListeners({\n fileImportSuccess: { node: $('.products-full-pane.visible')[0], handler: function handler(event, _ref2) {\n var vertexIds = _ref2.vertexIds;\n\n _this2.props.onDropElementIds({ vertexIds: vertexIds });\n } }\n });\n },\n componentWillUnmount: function componentWillUnmount() {\n this.mounted = false;\n this.removeEvents.forEach(function (_ref3) {\n var node = _ref3.node,\n func = _ref3.func,\n events = _ref3.events;\n\n $(node).off(events, func);\n });\n\n $(this.wrap).off('selectAll');\n $(document).off('.org-bigconnect-map');\n this.saveViewport(this.props);\n },\n componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n if (nextProps.product.id === this.props.product.id) {\n this.setState({ viewport: {}, generatePreview: false });\n } else {\n this.saveViewport(this.props);\n this.setState({ viewport: nextProps.viewport || {}, generatePreview: true });\n }\n },\n render: function render() {\n var _this3 = this;\n\n var _state = this.state,\n viewport = _state.viewport,\n generatePreview = _state.generatePreview;\n var _props = this.props,\n product = _props.product,\n registry = _props.registry,\n panelPadding = _props.panelPadding,\n focused = _props.focused,\n layerConfig = _props.layerConfig,\n setLayerOrder = _props.setLayerOrder,\n onAddSelection = _props.onAddSelection,\n onSelectElements = _props.onSelectElements;\n\n var _mapConfig = mapConfig(),\n baseSource = _mapConfig.source,\n baseSourceOptions = _mapConfig.sourceOptions,\n config = _objectWithoutProperties(_mapConfig, ['source', 'sourceOptions']);\n\n var layerExtensions = _.indexBy(registry['org.bigconnect.map.layer'], 'id');\n\n return React.createElement(\n 'div',\n { className: 'org-bigconnect-map', style: { height: '100%', marginTop: '2px' }, ref: function ref(r) {\n _this3.wrap = r;\n } },\n React.createElement(OpenLayers, _extends({\n ref: function ref(c) {\n _this3._openlayers = c;\n },\n product: product,\n focused: focused,\n baseSource: baseSource,\n baseSourceOptions: baseSourceOptions,\n sourcesByLayerId: this.mapElementsToSources(),\n layerExtensions: layerExtensions,\n layerConfig: layerConfig,\n viewport: viewport,\n generatePreview: generatePreview,\n panelPadding: panelPadding,\n clearCaches: this.requestUpdateDebounce,\n setLayerOrder: setLayerOrder,\n onTap: this.onTap,\n onPan: this.onViewport,\n onZoom: this.onViewport,\n onContextTap: this.onContextTap,\n onAddSelection: onAddSelection,\n onSelectElements: onSelectElements,\n onMouseOver: this.onMouseOver,\n onMouseOut: this.onMouseOut,\n onUpdatePreview: this.onUpdatePreview\n }, config))\n );\n },\n onTap: function onTap(_ref4) {\n var map = _ref4.map,\n pixel = _ref4.pixel;\n\n if (!map.hasFeatureAtPixel(pixel)) {\n this.props.onClearSelection();\n }\n },\n onMouseOver: function onMouseOver(ol, map, features) {\n var cluster = features && features[0];\n var coordinates = cluster && cluster.get('coordinates');\n if (coordinates && coordinates.length > 1) {\n clusterHover.show(ol, map, cluster, layerHelpers.styles.feature);\n }\n },\n onMouseOut: function onMouseOut(ol, map, features) {\n clusterHover.hide(ol, map);\n },\n onContextTap: function onContextTap(ol, _ref5) {\n var map = _ref5.map,\n pixel = _ref5.pixel,\n originalEvent = _ref5.originalEvent;\n\n clusterHover.hide(ol, map);\n\n var productVertices = this.props.product.extendedData.vertices;\n var featuresAtPixel = map.getFeaturesAtPixel(pixel);\n var isValidVertex = function isValidVertex(element) {\n var isAncillary = element && productVertices[element.id] && productVertices[element.id].ancillary;\n return element && element.type === 'vertex' && !isAncillary;\n };\n var vertexId = void 0;\n\n if (featuresAtPixel && featuresAtPixel.length) {\n var _target = featuresAtPixel[0];\n var element = _target.get('element');\n\n if (isValidVertex(element)) {\n vertexId = element.id;\n } else {\n var clusteredFeatures = _target.get('features') || [];\n var clusteredFeature = clusteredFeatures.find(function (f) {\n var element = f.get('element');\n return isValidVertex(element);\n });\n vertexId = clusteredFeature && clusteredFeature.get('element').id;\n }\n }\n\n if (vertexId) {\n var pageX = originalEvent.pageX,\n pageY = originalEvent.pageY;\n\n this.props.onVertexMenu(originalEvent.target, vertexId, { x: pageX, y: pageY });\n }\n },\n onUpdatePreview: function onUpdatePreview() {\n var _props2 = this.props,\n onUpdatePreview = _props2.onUpdatePreview,\n product = _props2.product;\n\n\n onUpdatePreview(product.id);\n },\n onViewport: function onViewport(event) {\n var productId = this.props.product.id;\n\n var view = event.target;\n var zoom = view.getZoom();\n var pan = [].concat(_toConsumableArray(view.getCenter()));\n\n if (!this.currentViewport) {\n this.currentViewport = {};\n }\n this.currentViewport[productId] = { zoom: zoom, pan: pan };\n\n this.saveViewportDebounce(this.props);\n },\n saveViewport: function saveViewport(props) {\n if (this.mounted) {\n var productId = props.product.id;\n if (this.currentViewport && productId in this.currentViewport) {\n var viewport = this.currentViewport[productId];\n props.onUpdateViewport(productId, viewport);\n }\n }\n },\n getGeometry: function getGeometry(edgeInfo, element, ontology) {\n var _this4 = this;\n\n var registry = this.props.registry;\n\n var calculatedGeometry = registry['org.bigconnect.map.geometry'].reduce(function (geometries, _ref6) {\n var canHandle = _ref6.canHandle,\n geometry = _ref6.geometry,\n layer = _ref6.layer;\n\n /**\n * Decide which elements to apply geometry\n *\n * @function org.bigconnect.map.geometry~canHandle\n * @param {object} productEdgeInfo The edge info from product->vertex\n * @param {object} element The element\n * @param {Array.