{"version":3,"file":"js/5139-0acfd22e6a8da9d384b2.js","mappings":"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","sources":["webpack://Chouette/./node_modules/lodash/_arrayEach.js","webpack://Chouette/./node_modules/lodash/_baseAssign.js","webpack://Chouette/./node_modules/lodash/_baseAssignIn.js","webpack://Chouette/./node_modules/lodash/_baseClone.js","webpack://Chouette/./node_modules/lodash/_baseCreate.js","webpack://Chouette/./node_modules/lodash/_baseIsMap.js","webpack://Chouette/./node_modules/lodash/_baseIsSet.js","webpack://Chouette/./node_modules/lodash/_baseKeysIn.js","webpack://Chouette/./node_modules/lodash/_baseUnset.js","webpack://Chouette/./node_modules/lodash/_cloneArrayBuffer.js","webpack://Chouette/./node_modules/lodash/_cloneBuffer.js","webpack://Chouette/./node_modules/lodash/_cloneDataView.js","webpack://Chouette/./node_modules/lodash/_cloneRegExp.js","webpack://Chouette/./node_modules/lodash/_cloneSymbol.js","webpack://Chouette/./node_modules/lodash/_cloneTypedArray.js","webpack://Chouette/./node_modules/lodash/_copyArray.js","webpack://Chouette/./node_modules/lodash/_copySymbols.js","webpack://Chouette/./node_modules/lodash/_copySymbolsIn.js","webpack://Chouette/./node_modules/lodash/_customOmitClone.js","webpack://Chouette/./node_modules/lodash/_flatRest.js","webpack://Chouette/./node_modules/lodash/_getAllKeysIn.js","webpack://Chouette/./node_modules/lodash/_getPrototype.js","webpack://Chouette/./node_modules/lodash/_getSymbolsIn.js","webpack://Chouette/./node_modules/lodash/_initCloneArray.js","webpack://Chouette/./node_modules/lodash/_initCloneByTag.js","webpack://Chouette/./node_modules/lodash/_initCloneObject.js","webpack://Chouette/./node_modules/lodash/_nativeKeysIn.js","webpack://Chouette/./node_modules/lodash/_parent.js","webpack://Chouette/./node_modules/lodash/flatten.js","webpack://Chouette/./node_modules/lodash/isMap.js","webpack://Chouette/./node_modules/lodash/isPlainObject.js","webpack://Chouette/./node_modules/lodash/isSet.js","webpack://Chouette/./node_modules/lodash/keysIn.js","webpack://Chouette/./node_modules/lodash/last.js","webpack://Chouette/./node_modules/lodash/omit.js","webpack://Chouette/./node_modules/ol/interaction/Select.js"],"sourcesContent":["/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/Select\n */\nimport Collection from '../Collection.js';\nimport CollectionEventType from '../CollectionEventType.js';\nimport Event from '../events/Event.js';\nimport GeometryType from '../geom/GeometryType.js';\nimport Interaction from './Interaction.js';\nimport { TRUE } from '../functions.js';\nimport { clear } from '../obj.js';\nimport { createEditingStyle } from '../style/Style.js';\nimport { extend, includes } from '../array.js';\nimport { getUid } from '../util.js';\nimport { never, shiftKeyOnly, singleClick } from '../events/condition.js';\n/**\n * @enum {string}\n */\nvar SelectEventType = {\n /**\n * Triggered when feature(s) has been (de)selected.\n * @event SelectEvent#select\n * @api\n */\n SELECT: 'select',\n};\n/**\n * A function that takes an {@link module:ol/Feature} or\n * {@link module:ol/render/Feature} and an\n * {@link module:ol/layer/Layer} and returns `true` if the feature may be\n * selected or `false` otherwise.\n * @typedef {function(import(\"../Feature.js\").FeatureLike, import(\"../layer/Layer.js\").default):boolean} FilterFunction\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [addCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default, this is {@link module:ol/events/condition.never}. Use this if you\n * want to use different events for add and remove instead of `toggle`.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. This is the event\n * for the selected features as a whole. By default, this is\n * {@link module:ol/events/condition.singleClick}. Clicking on a feature selects that\n * feature and removes any that were in the selection. Clicking outside any\n * feature removes all from the selection.\n * See `toggle`, `add`, `remove` options for adding/removing extra features to/\n * from the selection.\n * @property {Array|function(import(\"../layer/Layer.js\").default): boolean} [layers]\n * A list of layers from which features should be selected. Alternatively, a\n * filter function can be provided. The function will be called for each layer\n * in the map and should return `true` for layers that you want to be\n * selectable. If the option is absent, all visible layers will be considered\n * selectable.\n * @property {import(\"../style/Style.js\").StyleLike|null} [style]\n * Style for the selected features. By default the default edit style is used\n * (see {@link module:ol/style}). Set to `null` if this interaction should not apply\n * any style changes for selected features.\n * If set to a falsey value, the selected feature's style will not change.\n * @property {import(\"../events/condition.js\").Condition} [removeCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default, this is {@link module:ol/events/condition.never}. Use this if you\n * want to use different events for add and remove instead of `toggle`.\n * @property {import(\"../events/condition.js\").Condition} [toggleCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. This is in addition\n * to the `condition` event. By default,\n * {@link module:ol/events/condition.shiftKeyOnly}, i.e. pressing `shift` as\n * well as the `condition` event, adds that feature to the current selection if\n * it is not currently selected, and removes it if it is. See `add` and `remove`\n * if you want to use different events instead of a toggle.\n * @property {boolean} [multi=false] A boolean that determines if the default\n * behaviour should select only single features or all (overlapping) features at\n * the clicked map position. The default of `false` means single select.\n * @property {import(\"../Collection.js\").default} [features]\n * Collection where the interaction will place selected features. Optional. If\n * not set the interaction will create a collection. In any case the collection\n * used by the interaction is returned by\n * {@link module:ol/interaction/Select~Select#getFeatures}.\n * @property {FilterFunction} [filter] A function\n * that takes an {@link module:ol/Feature} and an\n * {@link module:ol/layer/Layer} and returns `true` if the feature may be\n * selected or `false` otherwise.\n * @property {number} [hitTolerance=0] Hit-detection tolerance. Pixels inside\n * the radius around the given position will be checked for features.\n */\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Select~Select} instances are instances of\n * this type.\n */\nvar SelectEvent = /** @class */ (function (_super) {\n __extends(SelectEvent, _super);\n /**\n * @param {SelectEventType} type The event type.\n * @param {Array} selected Selected features.\n * @param {Array} deselected Deselected features.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Associated\n * {@link module:ol/MapBrowserEvent}.\n */\n function SelectEvent(type, selected, deselected, mapBrowserEvent) {\n var _this = _super.call(this, type) || this;\n /**\n * Selected features array.\n * @type {Array}\n * @api\n */\n _this.selected = selected;\n /**\n * Deselected features array.\n * @type {Array}\n * @api\n */\n _this.deselected = deselected;\n /**\n * Associated {@link module:ol/MapBrowserEvent}.\n * @type {import(\"../MapBrowserEvent.js\").default}\n * @api\n */\n _this.mapBrowserEvent = mapBrowserEvent;\n return _this;\n }\n return SelectEvent;\n}(Event));\nexport { SelectEvent };\n/**\n * Original feature styles to reset to when features are no longer selected.\n * @type {Object|import(\"../style/Style.js\").StyleFunction>}\n */\nvar originalFeatureStyles = {};\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'select', SelectEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} SelectOnSignature\n */\n/**\n * @classdesc\n * Interaction for selecting vector features. By default, selected features are\n * styled differently, so this interaction can be used for visual highlighting,\n * as well as selecting features for other actions, such as modification or\n * output. There are three ways of controlling which features are selected:\n * using the browser event as defined by the `condition` and optionally the\n * `toggle`, `add`/`remove`, and `multi` options; a `layers` filter; and a\n * further feature filter using the `filter` option.\n *\n * @fires SelectEvent\n * @api\n */\nvar Select = /** @class */ (function (_super) {\n __extends(Select, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function Select(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {SelectOnSignature}\n */\n _this.on;\n /***\n * @type {SelectOnSignature}\n */\n _this.once;\n /***\n * @type {SelectOnSignature}\n */\n _this.un;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n */\n _this.boundAddFeature_ = _this.addFeature_.bind(_this);\n /**\n * @private\n */\n _this.boundRemoveFeature_ = _this.removeFeature_.bind(_this);\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : singleClick;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.addCondition_ = options.addCondition ? options.addCondition : never;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.removeCondition_ = options.removeCondition\n ? options.removeCondition\n : never;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.toggleCondition_ = options.toggleCondition\n ? options.toggleCondition\n : shiftKeyOnly;\n /**\n * @private\n * @type {boolean}\n */\n _this.multi_ = options.multi ? options.multi : false;\n /**\n * @private\n * @type {FilterFunction}\n */\n _this.filter_ = options.filter ? options.filter : TRUE;\n /**\n * @private\n * @type {number}\n */\n _this.hitTolerance_ = options.hitTolerance ? options.hitTolerance : 0;\n /**\n * @private\n * @type {import(\"../style/Style.js\").default|Array|import(\"../style/Style.js\").StyleFunction|null}\n */\n _this.style_ =\n options.style !== undefined ? options.style : getDefaultStyleFunction();\n /**\n * @private\n * @type {import(\"../Collection.js\").default}\n */\n _this.features_ = options.features || new Collection();\n /** @type {function(import(\"../layer/Layer.js\").default): boolean} */\n var layerFilter;\n if (options.layers) {\n if (typeof options.layers === 'function') {\n layerFilter = options.layers;\n }\n else {\n var layers_1 = options.layers;\n layerFilter = function (layer) {\n return includes(layers_1, layer);\n };\n }\n }\n else {\n layerFilter = TRUE;\n }\n /**\n * @private\n * @type {function(import(\"../layer/Layer.js\").default): boolean}\n */\n _this.layerFilter_ = layerFilter;\n /**\n * An association between selected feature (key)\n * and layer (value)\n * @private\n * @type {Object}\n */\n _this.featureLayerAssociation_ = {};\n return _this;\n }\n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @private\n */\n Select.prototype.addFeatureLayerAssociation_ = function (feature, layer) {\n this.featureLayerAssociation_[getUid(feature)] = layer;\n };\n /**\n * Get the selected features.\n * @return {import(\"../Collection.js\").default} Features collection.\n * @api\n */\n Select.prototype.getFeatures = function () {\n return this.features_;\n };\n /**\n * Returns the Hit-detection tolerance.\n * @return {number} Hit tolerance in pixels.\n * @api\n */\n Select.prototype.getHitTolerance = function () {\n return this.hitTolerance_;\n };\n /**\n * Returns the associated {@link module:ol/layer/Vector~Vector vectorlayer} of\n * the (last) selected feature. Note that this will not work with any\n * programmatic method like pushing features to\n * {@link module:ol/interaction/Select~Select#getFeatures collection}.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature\n * @return {import('../layer/Vector.js').default} Layer.\n * @api\n */\n Select.prototype.getLayer = function (feature) {\n return /** @type {import('../layer/Vector.js').default} */ (this.featureLayerAssociation_[getUid(feature)]);\n };\n /**\n * Hit-detection tolerance. Pixels inside the radius around the given position\n * will be checked for features.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @api\n */\n Select.prototype.setHitTolerance = function (hitTolerance) {\n this.hitTolerance_ = hitTolerance;\n };\n /**\n * Remove the interaction from its current map, if any, and attach it to a new\n * map, if any. Pass `null` to just remove the interaction from the current map.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @api\n */\n Select.prototype.setMap = function (map) {\n var currentMap = this.getMap();\n if (currentMap && this.style_) {\n this.features_.forEach(this.restorePreviousStyle_.bind(this));\n }\n _super.prototype.setMap.call(this, map);\n if (map) {\n this.features_.addEventListener(CollectionEventType.ADD, this.boundAddFeature_);\n this.features_.addEventListener(CollectionEventType.REMOVE, this.boundRemoveFeature_);\n if (this.style_) {\n this.features_.forEach(this.applySelectedStyle_.bind(this));\n }\n }\n else {\n this.features_.removeEventListener(CollectionEventType.ADD, this.boundAddFeature_);\n this.features_.removeEventListener(CollectionEventType.REMOVE, this.boundRemoveFeature_);\n }\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n Select.prototype.addFeature_ = function (evt) {\n var feature = evt.element;\n if (this.style_) {\n this.applySelectedStyle_(feature);\n }\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n Select.prototype.removeFeature_ = function (evt) {\n var feature = evt.element;\n if (this.style_) {\n this.restorePreviousStyle_(feature);\n }\n };\n /**\n * @return {import(\"../style/Style.js\").StyleLike|null} Select style.\n */\n Select.prototype.getStyle = function () {\n return this.style_;\n };\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n Select.prototype.applySelectedStyle_ = function (feature) {\n var key = getUid(feature);\n if (!(key in originalFeatureStyles)) {\n originalFeatureStyles[key] = feature.getStyle();\n }\n feature.setStyle(this.style_);\n };\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n Select.prototype.restorePreviousStyle_ = function (feature) {\n var interactions = this.getMap().getInteractions().getArray();\n for (var i = interactions.length - 1; i >= 0; --i) {\n var interaction = interactions[i];\n if (interaction !== this &&\n interaction instanceof Select &&\n interaction.getStyle() &&\n interaction.getFeatures().getArray().lastIndexOf(feature) !== -1) {\n feature.setStyle(interaction.getStyle());\n return;\n }\n }\n var key = getUid(feature);\n feature.setStyle(originalFeatureStyles[key]);\n delete originalFeatureStyles[key];\n };\n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @private\n */\n Select.prototype.removeFeatureLayerAssociation_ = function (feature) {\n delete this.featureLayerAssociation_[getUid(feature)];\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent map browser event} and may change the\n * selected state of features.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {Select}\n */\n Select.prototype.handleEvent = function (mapBrowserEvent) {\n if (!this.condition_(mapBrowserEvent)) {\n return true;\n }\n var add = this.addCondition_(mapBrowserEvent);\n var remove = this.removeCondition_(mapBrowserEvent);\n var toggle = this.toggleCondition_(mapBrowserEvent);\n var set = !add && !remove && !toggle;\n var map = mapBrowserEvent.map;\n var features = this.getFeatures();\n var deselected = [];\n var selected = [];\n if (set) {\n // Replace the currently selected feature(s) with the feature(s) at the\n // pixel, or clear the selected feature(s) if there is no feature at\n // the pixel.\n clear(this.featureLayerAssociation_);\n map.forEachFeatureAtPixel(mapBrowserEvent.pixel, \n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @return {boolean|undefined} Continue to iterate over the features.\n */\n function (feature, layer) {\n if (this.filter_(feature, layer)) {\n selected.push(feature);\n this.addFeatureLayerAssociation_(feature, layer);\n return !this.multi_;\n }\n }.bind(this), {\n layerFilter: this.layerFilter_,\n hitTolerance: this.hitTolerance_,\n });\n for (var i = features.getLength() - 1; i >= 0; --i) {\n var feature = features.item(i);\n var index = selected.indexOf(feature);\n if (index > -1) {\n // feature is already selected\n selected.splice(index, 1);\n }\n else {\n features.remove(feature);\n deselected.push(feature);\n }\n }\n if (selected.length !== 0) {\n features.extend(selected);\n }\n }\n else {\n // Modify the currently selected feature(s).\n map.forEachFeatureAtPixel(mapBrowserEvent.pixel, \n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @return {boolean|undefined} Continue to iterate over the features.\n */\n function (feature, layer) {\n if (this.filter_(feature, layer)) {\n if ((add || toggle) && !includes(features.getArray(), feature)) {\n selected.push(feature);\n this.addFeatureLayerAssociation_(feature, layer);\n }\n else if ((remove || toggle) &&\n includes(features.getArray(), feature)) {\n deselected.push(feature);\n this.removeFeatureLayerAssociation_(feature);\n }\n return !this.multi_;\n }\n }.bind(this), {\n layerFilter: this.layerFilter_,\n hitTolerance: this.hitTolerance_,\n });\n for (var j = deselected.length - 1; j >= 0; --j) {\n features.remove(deselected[j]);\n }\n features.extend(selected);\n }\n if (selected.length > 0 || deselected.length > 0) {\n this.dispatchEvent(new SelectEvent(SelectEventType.SELECT, selected, deselected, mapBrowserEvent));\n }\n return true;\n };\n return Select;\n}(Interaction));\n/**\n * @return {import(\"../style/Style.js\").StyleFunction} Styles.\n */\nfunction getDefaultStyleFunction() {\n var styles = createEditingStyle();\n extend(styles[GeometryType.POLYGON], styles[GeometryType.LINE_STRING]);\n extend(styles[GeometryType.GEOMETRY_COLLECTION], styles[GeometryType.LINE_STRING]);\n return function (feature) {\n if (!feature.getGeometry()) {\n return null;\n }\n return styles[feature.getGeometry().getType()];\n };\n}\nexport default Select;\n//# sourceMappingURL=Select.js.map"],"names":["module","exports","array","iteratee","index","length","copyObject","keys","object","source","keysIn","Stack","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isArray","isBuffer","isMap","isObject","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","value","bitmask","customizer","key","stack","result","isDeep","isFlat","isFull","undefined","isArr","tag","isFunc","stacked","get","set","forEach","subValue","add","props","objectCreate","Object","create","baseCreate","proto","prototype","isObjectLike","isPrototype","nativeKeysIn","hasOwnProperty","isProto","call","push","castPath","last","parent","toKey","path","Uint8Array","arrayBuffer","constructor","byteLength","root","freeExports","nodeType","freeModule","Buffer","allocUnsafe","buffer","slice","copy","cloneArrayBuffer","dataView","byteOffset","reFlags","regexp","exec","lastIndex","Symbol","symbolProto","symbolValueOf","valueOf","symbol","typedArray","Array","getSymbols","getSymbolsIn","isPlainObject","flatten","overRest","setToString","func","baseGetAllKeys","getPrototype","overArg","getPrototypeOf","arrayPush","stubArray","getOwnPropertySymbols","input","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","Ctor","baseGet","baseSlice","baseFlatten","baseIsMap","baseUnary","nodeUtil","nodeIsMap","baseGetTag","funcProto","Function","objectProto","funcToString","toString","objectCtorString","baseIsSet","nodeIsSet","arrayLikeKeys","baseKeysIn","isArrayLike","arrayMap","baseUnset","customOmitClone","flatRest","omit","paths","CLONE_DEEP_FLAG","extendStatics","__extends","d","b","setPrototypeOf","__proto__","p","TypeError","String","__","this","SelectEventType","SelectEvent","_super","type","selected","deselected","mapBrowserEvent","_this","originalFeatureStyles","Select","opt_options","on","once","un","styles","layerFilter","options","boundAddFeature_","addFeature_","bind","boundRemoveFeature_","removeFeature_","condition_","condition","addCondition_","addCondition","removeCondition_","removeCondition","toggleCondition_","toggleCondition","multi_","multi","filter_","filter","hitTolerance_","hitTolerance","style_","style","feature","getGeometry","getType","features_","features","layers","layers_1","layer","layerFilter_","featureLayerAssociation_","addFeatureLayerAssociation_","getFeatures","getHitTolerance","getLayer","setHitTolerance","setMap","map","getMap","restorePreviousStyle_","addEventListener","applySelectedStyle_","removeEventListener","evt","element","getStyle","setStyle","interactions","getInteractions","getArray","i","interaction","lastIndexOf","removeFeatureLayerAssociation_","handleEvent","remove","toggle","forEachFeatureAtPixel","pixel","getLength","item","indexOf","splice","extend","j","dispatchEvent"],"sourceRoot":""}