{"version":3,"file":"js/1894-4f14c841d6b3b308633c.js","mappings":"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","sources":["webpack://app/../usr/local/bundle/gems/decidim-core-0.27.5/app/packs/src/decidim/map/controller_registry.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.5/app/packs/src/decidim/map/controller.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.5/app/packs/src/decidim/map/controller/markers.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.5/app/packs/src/decidim/vendor/jquery-tmpl.js"],"sourcesContent":["const CONTROLLER_REGISTRY = {};\n\nexport default class MapControllerRegistry {\n  static getController(mapId) {\n    return CONTROLLER_REGISTRY[mapId];\n  }\n\n  static setController(mapId, map) {\n    CONTROLLER_REGISTRY[mapId] = map;\n  }\n\n  static findByMap(map) {\n    return Object.values(CONTROLLER_REGISTRY).find((ctrl) => {\n      return ctrl.getMap() === map;\n    });\n  }\n}\n","import MapControllerRegistry from \"src/decidim/map/controller_registry\"\n\nexport default class MapController {\n  constructor(mapId, config) {\n    // Remove the old map if there is already one with the same ID.\n    const old = MapControllerRegistry.getController(mapId);\n    if (old) {\n      old.remove();\n    }\n\n    this.mapId = mapId;\n    this.config = $.extend({\n      popupTemplateId: \"marker-popup\",\n      markerColor: \"#ef604d\"\n    }, config);\n\n    this.map = null;\n    this.eventHandlers = {};\n\n    MapControllerRegistry.setController(mapId, this);\n  }\n\n  getConfig() {\n    return this.config;\n  }\n\n  getMap() {\n    return this.map;\n  }\n\n  load() {\n    this.map = L.map(this.mapId);\n\n    this.map.scrollWheelZoom.disable();\n\n    // Fix the keyboard navigation on the map\n    this.map.on(\"popupopen\", (ev) => {\n      const $popup = $(ev.popup.getElement());\n      $popup.attr(\"tabindex\", 0).focus();\n    });\n    this.map.on(\"popupclose\", (ev) => {\n      $(ev.popup._source._icon).focus();\n    });\n\n    return this.map;\n  }\n\n  // Override this in the specific map controllers.\n  start() {}\n\n  remove() {\n    if (this.map) {\n      this.map.remove();\n      this.map = null;\n    }\n  }\n\n  createIcon() {\n    return new L.DivIcon.SVGIcon.DecidimIcon({\n      fillColor: this.config.markerColor,\n      iconSize: L.point(28, 36)\n    });\n  }\n\n  setEventHandler(name, callback) {\n    this.eventHandlers[name] = callback;\n  }\n\n  triggerEvent(eventName, payload) {\n    const handler = this.eventHandlers[eventName];\n    if (typeof handler === \"function\") {\n      return Reflect.apply(handler, this, payload);\n    }\n    return null;\n  }\n}\n","import \"src/decidim/vendor/jquery-tmpl\"\nimport MapController from \"src/decidim/map/controller\"\nimport \"leaflet.markercluster\";\n\nexport default class MapMarkersController extends MapController {\n  start() {\n    this.markerClusters = null;\n\n    if (Array.isArray(this.config.markers) && this.config.markers.length > 0) {\n      this.addMarkers(this.config.markers);\n    } else {\n      this.map.fitWorld();\n    }\n  }\n\n  addMarkers(markersData) {\n    if (this.markerClusters === null) {\n      this.markerClusters = new L.MarkerClusterGroup();\n      this.map.addLayer(this.markerClusters);\n    }\n\n    // Pre-compiles the template\n    $.template(\n      this.config.popupTemplateId,\n      $(`#${this.config.popupTemplateId}`).html()\n    );\n\n    const bounds = new L.LatLngBounds(\n      markersData.map(\n        (markerData) => [markerData.latitude, markerData.longitude]\n      )\n    );\n\n    markersData.forEach((markerData) => {\n      let marker = new L.Marker([markerData.latitude, markerData.longitude], {\n        icon: this.createIcon(),\n        keyboard: true,\n        title: markerData.title\n      });\n\n      let node = document.createElement(\"div\");\n\n      $.tmpl(this.config.popupTemplateId, markerData).appendTo(node);\n      marker.bindPopup(node, {\n        maxwidth: 640,\n        minWidth: 500,\n        keepInView: true,\n        className: \"map-info\"\n      }).openPopup();\n\n      this.markerClusters.addLayer(marker);\n    });\n\n    // Make sure there is enough space in the map for the padding to be\n    // applied. Otherwise the map will automatically zoom out (test it on\n    // mobile). Make sure there is at least the same amount of width and\n    // height available on both sides + the padding (i.e. 4x padding in\n    // total).\n    const size = this.map.getSize();\n    if (size.y >= 400 && size.x >= 400) {\n      this.map.fitBounds(bounds, { padding: [100, 100] });\n    } else if (size.y >= 120 && size.x >= 120) {\n      this.map.fitBounds(bounds, { padding: [30, 30] });\n    } else {\n      this.map.fitBounds(bounds);\n    }\n  }\n\n  clearMarkers() {\n    this.map.removeLayer(this.markerClusters);\n    this.markerClusters = new L.MarkerClusterGroup();\n    this.map.addLayer(this.markerClusters);\n  }\n}\n","/* eslint-disable */\n\n/*\n * jQuery Templating Plugin\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n */\n;(function( jQuery, undefined ){\n    var oldManip = jQuery.fn.domManip, tmplItmAtt = \"_tmplitem\", htmlExpr = /^[^<]*(<[\\w\\W]+>)[^>]*$|\\{\\{\\! /,\n        newTmplItems = {}, wrappedItems = {}, appendToTmplItems, topTmplItem = { key: 0, data: {} }, itemKey = 0, cloneIndex = 0, stack = [];\n\n    function newTmplItem( options, parentItem, fn, data ) {\n        // Returns a template item data structure for a new rendered instance of a template (a 'template item').\n        // The content field is a hierarchical array of strings and nested items (to be\n        // removed and replaced by nodes field of dom elements, once inserted in DOM).\n        var newItem = {\n            data: data || (parentItem ? parentItem.data : {}),\n            _wrap: parentItem ? parentItem._wrap : null,\n            tmpl: null,\n            parent: parentItem || null,\n            nodes: [],\n            calls: tiCalls,\n            nest: tiNest,\n            wrap: tiWrap,\n            html: tiHtml,\n            update: tiUpdate\n        };\n        if ( options ) {\n            jQuery.extend( newItem, options, { nodes: [], parent: parentItem } );\n        }\n        if ( fn ) {\n            // Build the hierarchical content to be used during insertion into DOM\n            newItem.tmpl = fn;\n            newItem._ctnt = newItem._ctnt || newItem.tmpl( jQuery, newItem );\n            newItem.key = ++itemKey;\n            // Keep track of new template item, until it is stored as jQuery Data on DOM element\n            (stack.length ? wrappedItems : newTmplItems)[itemKey] = newItem;\n        }\n        return newItem;\n    }\n\n    // Override appendTo etc., in order to provide support for targeting multiple elements. (This code would disappear if integrated in jquery core).\n    jQuery.each({\n        appendTo: \"append\",\n        prependTo: \"prepend\",\n        insertBefore: \"before\",\n        insertAfter: \"after\",\n        replaceAll: \"replaceWith\"\n    }, function( name, original ) {\n        jQuery.fn[ name ] = function( selector ) {\n            var ret = [], insert = jQuery( selector ), elems, i, l, tmplItems,\n                parent = this.length === 1 && this[0].parentNode;\n\n            appendToTmplItems = newTmplItems || {};\n            if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {\n                insert[ original ]( this[0] );\n                ret = this;\n            } else {\n                for ( i = 0, l = insert.length; i < l; i++ ) {\n                    cloneIndex = i;\n                    elems = (i > 0 ? this.clone(true) : this).get();\n                    jQuery.fn[ original ].apply( jQuery(insert[i]), elems );\n                    ret = ret.concat( elems );\n                }\n                cloneIndex = 0;\n                ret = this.pushStack( ret, name, insert.selector );\n            }\n            tmplItems = appendToTmplItems;\n            appendToTmplItems = null;\n            jQuery.tmpl.complete( tmplItems );\n            return ret;\n        };\n    });\n\n    jQuery.fn.extend({\n        // Use first wrapped element as template markup.\n        // Return wrapped set of template items, obtained by rendering template against data.\n        tmpl: function( data, options, parentItem ) {\n            return jQuery.tmpl( this[0], data, options, parentItem );\n        },\n\n        // Find which rendered template item the first wrapped DOM element belongs to\n        tmplItem: function() {\n            return jQuery.tmplItem( this[0] );\n        },\n\n        // Consider the first wrapped element as a template declaration, and get the compiled template or store it as a named template.\n        template: function( name ) {\n            return jQuery.template( name, this[0] );\n        },\n\n        domManip: function( args, table, callback, options ) {\n            // This appears to be a bug in the appendTo, etc. implementation\n            // it should be doing .call() instead of .apply(). See #6227\n            if ( args[0] && args[0].nodeType ) {\n                var dmArgs = jQuery.makeArray( arguments ), argsLength = args.length, i = 0, tmplItem;\n                while ( i < argsLength && !(tmplItem = jQuery.data( args[i++], \"tmplItem\" ))) {}\n                if ( argsLength > 1 ) {\n                    dmArgs[0] = [jQuery.makeArray( args )];\n                }\n                if ( tmplItem && cloneIndex ) {\n                    dmArgs[2] = function( fragClone ) {\n                        // Handler called by oldManip when rendered template has been inserted into DOM.\n                        jQuery.tmpl.afterManip( this, fragClone, callback );\n                    };\n                }\n                oldManip.apply( this, dmArgs );\n            } else {\n                oldManip.apply( this, arguments );\n            }\n            cloneIndex = 0;\n            if ( !appendToTmplItems ) {\n                jQuery.tmpl.complete( newTmplItems );\n            }\n            return this;\n        }\n    });\n\n    jQuery.extend({\n        // Return wrapped set of template items, obtained by rendering template against data.\n        tmpl: function( tmpl, data, options, parentItem ) {\n            var ret, topLevel = !parentItem;\n            if ( topLevel ) {\n                // This is a top-level tmpl call (not from a nested template using {{tmpl}})\n                parentItem = topTmplItem;\n                tmpl = jQuery.template[tmpl] || jQuery.template( null, tmpl );\n                wrappedItems = {}; // Any wrapped items will be rebuilt, since this is top level\n            } else if ( !tmpl ) {\n                // The template item is already associated with DOM - this is a refresh.\n                // Re-evaluate rendered template for the parentItem\n                tmpl = parentItem.tmpl;\n                newTmplItems[parentItem.key] = parentItem;\n                parentItem.nodes = [];\n                if ( parentItem.wrapped ) {\n                    updateWrapped( parentItem, parentItem.wrapped );\n                }\n                // Rebuild, without creating a new template item\n                return jQuery( build( parentItem, null, parentItem.tmpl( jQuery, parentItem ) ));\n            }\n            if ( !tmpl ) {\n                return []; // Could throw...\n            }\n            if ( typeof data === \"function\" ) {\n                data = data.call( parentItem || {} );\n            }\n            if ( options && options.wrapped ) {\n                updateWrapped( options, options.wrapped );\n            }\n            ret = jQuery.isArray( data ) ?\n                jQuery.map( data, function( dataItem ) {\n                    return dataItem ? newTmplItem( options, parentItem, tmpl, dataItem ) : null;\n                }) :\n                [ newTmplItem( options, parentItem, tmpl, data ) ];\n            return topLevel ? jQuery( build( parentItem, null, ret ) ) : ret;\n        },\n\n        // Return rendered template item for an element.\n        tmplItem: function( elem ) {\n            var tmplItem;\n            if ( elem instanceof jQuery ) {\n                elem = elem[0];\n            }\n            while ( elem && elem.nodeType === 1 && !(tmplItem = jQuery.data( elem, \"tmplItem\" )) && (elem = elem.parentNode) ) {}\n            return tmplItem || topTmplItem;\n        },\n\n        // Set:\n        // Use $.template( name, tmpl ) to cache a named template,\n        // where tmpl is a template string, a script element or a jQuery instance wrapping a script element, etc.\n        // Use $( \"selector\" ).template( name ) to provide access by name to a script block template declaration.\n\n        // Get:\n        // Use $.template( name ) to access a cached template.\n        // Also $( selectorToScriptBlock ).template(), or $.template( null, templateString )\n        // will return the compiled template, without adding a name reference.\n        // If templateString includes at least one HTML tag, $.template( templateString ) is equivalent\n        // to $.template( null, templateString )\n        template: function( name, tmpl ) {\n            if (tmpl) {\n                // Compile template and associate with name\n                if ( typeof tmpl === \"string\" ) {\n                    // This is an HTML string being passed directly in.\n                    tmpl = buildTmplFn( tmpl )\n                } else if ( tmpl instanceof jQuery ) {\n                    tmpl = tmpl[0] || {};\n                }\n                if ( tmpl.nodeType ) {\n                    // If this is a template block, use cached copy, or generate tmpl function and cache.\n                    tmpl = jQuery.data( tmpl, \"tmpl\" ) || jQuery.data( tmpl, \"tmpl\", buildTmplFn( tmpl.innerHTML ));\n                }\n                return typeof name === \"string\" ? (jQuery.template[name] = tmpl) : tmpl;\n            }\n            // Return named compiled template\n            return name ? (typeof name !== \"string\" ? jQuery.template( null, name ):\n                (jQuery.template[name] ||\n                    // If not in map, treat as a selector. (If integrated with core, use quickExpr.exec)\n                    jQuery.template( null, htmlExpr.test( name ) ? name : jQuery( name )))) : null;\n        },\n\n        encode: function( text ) {\n            // Do HTML encoding replacing < > & and ' and \" by corresponding entities.\n            return (\"\" + text).split(\"<\").join(\"&lt;\").split(\">\").join(\"&gt;\").split('\"').join(\"&#34;\").split(\"'\").join(\"&#39;\");\n        }\n    });\n\n    jQuery.extend( jQuery.tmpl, {\n        tag: {\n            \"tmpl\": {\n                _default: { $2: \"null\" },\n                open: \"if($notnull_1){_=_.concat($item.nest($1,$2));}\"\n                // tmpl target parameter can be of type function, so use $1, not $1a (so not auto detection of functions)\n                // This means that {{tmpl foo}} treats foo as a template (which IS a function).\n                // Explicit parens can be used if foo is a function that returns a template: {{tmpl foo()}}.\n            },\n            \"wrap\": {\n                _default: { $2: \"null\" },\n                open: \"$item.calls(_,$1,$2);_=[];\",\n                close: \"call=$item.calls();_=call._.concat($item.wrap(call,_));\"\n            },\n            \"each\": {\n                _default: { $2: \"$index, $value\" },\n                open: \"if($notnull_1){$.each($1a,function($2){with(this){\",\n                close: \"}});}\"\n            },\n            \"if\": {\n                open: \"if(($notnull_1) && $1a){\",\n                close: \"}\"\n            },\n            \"else\": {\n                _default: { $1: \"true\" },\n                open: \"}else if(($notnull_1) && $1a){\"\n            },\n            \"html\": {\n                // Unecoded expression evaluation.\n                open: \"if($notnull_1){_.push($1a);}\"\n            },\n            \"=\": {\n                // Encoded expression evaluation. Abbreviated form is ${}.\n                _default: { $1: \"$data\" },\n                open: \"if($notnull_1){_.push($.encode($1a));}\"\n            },\n            \"!\": {\n                // Comment tag. Skipped by parser\n                open: \"\"\n            }\n        },\n\n        // This stub can be overridden, e.g. in jquery.tmplPlus for providing rendered events\n        complete: function( items ) {\n            newTmplItems = {};\n        },\n\n        // Call this from code which overrides domManip, or equivalent\n        // Manage cloning/storing template items etc.\n        afterManip: function afterManip( elem, fragClone, callback ) {\n            // Provides cloned fragment ready for fixup prior to and after insertion into DOM\n            var content = fragClone.nodeType === 11 ?\n                jQuery.makeArray(fragClone.childNodes) :\n                fragClone.nodeType === 1 ? [fragClone] : [];\n\n            // Return fragment to original caller (e.g. append) for DOM insertion\n            callback.call( elem, fragClone );\n\n            // Fragment has been inserted:- Add inserted nodes to tmplItem data structure. Replace inserted element annotations by jQuery.data.\n            storeTmplItems( content );\n            cloneIndex++;\n        }\n    });\n\n    //========================== Private helper functions, used by code above ==========================\n\n    function build( tmplItem, nested, content ) {\n        // Convert hierarchical content into flat string array\n        // and finally return array of fragments ready for DOM insertion\n        var frag, ret = content ? jQuery.map( content, function( item ) {\n            return (typeof item === \"string\") ?\n                // Insert template item annotations, to be converted to jQuery.data( \"tmplItem\" ) when elems are inserted into DOM.\n                (tmplItem.key ? item.replace( /(<\\w+)(?=[\\s>])(?![^>]*_tmplitem)([^>]*)/g, \"$1 \" + tmplItmAtt + \"=\\\"\" + tmplItem.key + \"\\\" $2\" ) : item) :\n                // This is a child template item. Build nested template.\n                build( item, tmplItem, item._ctnt );\n        }) :\n        // If content is not defined, insert tmplItem directly. Not a template item. May be a string, or a string array, e.g. from {{html $item.html()}}.\n        tmplItem;\n        if ( nested ) {\n            return ret;\n        }\n\n        // top-level template\n        ret = ret.join(\"\");\n\n        // Support templates which have initial or final text nodes, or consist only of text\n        // Also support HTML entities within the HTML markup.\n        ret.replace( /^\\s*([^<\\s][^<]*)?(<[\\w\\W]+>)([^>]*[^>\\s])?\\s*$/, function( all, before, middle, after) {\n            frag = jQuery( middle ).get();\n\n            storeTmplItems( frag );\n            if ( before ) {\n                frag = unencode( before ).concat(frag);\n            }\n            if ( after ) {\n                frag = frag.concat(unencode( after ));\n            }\n        });\n        return frag ? frag : unencode( ret );\n    }\n\n    function unencode( text ) {\n        // Use createElement, since createTextNode will not render HTML entities correctly\n        var el = document.createElement( \"div\" );\n        el.innerHTML = text;\n        return jQuery.makeArray(el.childNodes);\n    }\n\n    // Generate a reusable function that will serve to render a template against data\n    function buildTmplFn( markup ) {\n        return new Function(\"jQuery\",\"$item\",\n            \"var $=jQuery,call,_=[],$data=$item.data;\" +\n\n            // Introduce the data as local variables using with(){}\n            \"with($data){_.push('\" +\n\n            // Convert the template into pure JavaScript\n            jQuery.trim(markup)\n                .replace( /([\\\\'])/g, \"\\\\$1\" )\n                .replace( /[\\r\\t\\n]/g, \" \" )\n                .replace( /\\$\\{([^\\}]*)\\}/g, \"{{= $1}}\" )\n                .replace( /\\{\\{(\\/?)(\\w+|.)(?:\\(((?:[^\\}]|\\}(?!\\}))*?)?\\))?(?:\\s+(.*?)?)?(\\(((?:[^\\}]|\\}(?!\\}))*?)\\))?\\s*\\}\\}/g,\n                function( all, slash, type, fnargs, target, parens, args ) {\n                    var tag = jQuery.tmpl.tag[ type ], def, expr, exprAutoFnDetect;\n                    if ( !tag ) {\n                        throw \"Template command not found: \" + type;\n                    }\n                    def = tag._default || [];\n                    if ( parens && !/\\w$/.test(target)) {\n                        target += parens;\n                        parens = \"\";\n                    }\n                    if ( target ) {\n                        target = unescape( target );\n                        args = args ? (\",\" + unescape( args ) + \")\") : (parens ? \")\" : \"\");\n                        // Support for target being things like a.toLowerCase();\n                        // In that case don't call with template item as 'this' pointer. Just evaluate...\n                        expr = parens ? (target.indexOf(\".\") > -1 ? target + parens : (\"(\" + target + \").call($item\" + args)) : target;\n                        exprAutoFnDetect = parens ? expr : \"(typeof(\" + target + \")==='function'?(\" + target + \").call($item):(\" + target + \"))\";\n                    } else {\n                        exprAutoFnDetect = expr = def.$1 || \"null\";\n                    }\n                    fnargs = unescape( fnargs );\n                    return \"');\" +\n                        tag[ slash ? \"close\" : \"open\" ]\n                            .split( \"$notnull_1\" ).join( target ? \"typeof(\" + target + \")!=='undefined' && (\" + target + \")!=null\" : \"true\" )\n                            .split( \"$1a\" ).join( exprAutoFnDetect )\n                            .split( \"$1\" ).join( expr )\n                            .split( \"$2\" ).join( fnargs ?\n                                fnargs.replace( /\\s*([^\\(]+)\\s*(\\((.*?)\\))?/g, function( all, name, parens, params ) {\n                                    params = params ? (\",\" + params + \")\") : (parens ? \")\" : \"\");\n                                    return params ? (\"(\" + name + \").call($item\" + params) : all;\n                                })\n                                : (def.$2||\"\")\n                            ) +\n                        \"_.push('\";\n                }) +\n            \"');}return _;\"\n        );\n    }\n    function updateWrapped( options, wrapped ) {\n        // Build the wrapped content.\n        options._wrap = build( options, true,\n            // Suport imperative scenario in which options.wrapped can be set to a selector or an HTML string.\n            jQuery.isArray( wrapped ) ? wrapped : [htmlExpr.test( wrapped ) ? wrapped : jQuery( wrapped ).html()]\n        ).join(\"\");\n    }\n\n    function unescape( args ) {\n        return args ? args.replace( /\\\\'/g, \"'\").replace(/\\\\\\\\/g, \"\\\\\" ) : null;\n    }\n    function outerHtml( elem ) {\n        var div = document.createElement(\"div\");\n        div.appendChild( elem.cloneNode(true) );\n        return div.innerHTML;\n    }\n\n    // Store template items in jQuery.data(), ensuring a unique tmplItem data data structure for each rendered template instance.\n    function storeTmplItems( content ) {\n        var keySuffix = \"_\" + cloneIndex, elem, elems, newClonedItems = {}, i, l, m;\n        for ( i = 0, l = content.length; i < l; i++ ) {\n            if ( (elem = content[i]).nodeType !== 1 ) {\n                continue;\n            }\n            elems = elem.getElementsByTagName(\"*\");\n            for ( m = elems.length - 1; m >= 0; m-- ) {\n                processItemKey( elems[m] );\n            }\n            processItemKey( elem );\n        }\n        function processItemKey( el ) {\n            var pntKey, pntNode = el, pntItem, tmplItem, key;\n            // Ensure that each rendered template inserted into the DOM has its own template item,\n            if ( (key = el.getAttribute( tmplItmAtt ))) {\n                while ( pntNode.parentNode && (pntNode = pntNode.parentNode).nodeType === 1 && !(pntKey = pntNode.getAttribute( tmplItmAtt ))) { }\n                if ( pntKey !== key ) {\n                    // The next ancestor with a _tmplitem expando is on a different key than this one.\n                    // So this is a top-level element within this template item\n                    // Set pntNode to the key of the parentNode, or to 0 if pntNode.parentNode is null, or pntNode is a fragment.\n                    pntNode = pntNode.parentNode ? (pntNode.nodeType === 11 ? 0 : (pntNode.getAttribute( tmplItmAtt ) || 0)) : 0;\n                    if ( !(tmplItem = newTmplItems[key]) ) {\n                        // The item is for wrapped content, and was copied from the temporary parent wrappedItem.\n                        tmplItem = wrappedItems[key];\n                        tmplItem = newTmplItem( tmplItem, newTmplItems[pntNode]||wrappedItems[pntNode], null, true );\n                        tmplItem.key = ++itemKey;\n                        newTmplItems[itemKey] = tmplItem;\n                    }\n                    if ( cloneIndex ) {\n                        cloneTmplItem( key );\n                    }\n                }\n                el.removeAttribute( tmplItmAtt );\n            } else if ( cloneIndex && (tmplItem = jQuery.data( el, \"tmplItem\" )) ) {\n                // This was a rendered element, cloned during append or appendTo etc.\n                // TmplItem stored in jQuery data has already been cloned in cloneCopyEvent. We must replace it with a fresh cloned tmplItem.\n                cloneTmplItem( tmplItem.key );\n                newTmplItems[tmplItem.key] = tmplItem;\n                pntNode = jQuery.data( el.parentNode, \"tmplItem\" );\n                pntNode = pntNode ? pntNode.key : 0;\n            }\n            if ( tmplItem ) {\n                pntItem = tmplItem;\n                // Find the template item of the parent element.\n                // (Using !=, not !==, since pntItem.key is number, and pntNode may be a string)\n                while ( pntItem && pntItem.key != pntNode ) {\n                    // Add this element as a top-level node for this rendered template item, as well as for any\n                    // ancestor items between this item and the item of its parent element\n                    pntItem.nodes.push( el );\n                    pntItem = pntItem.parent;\n                }\n                // Delete content built during rendering - reduce API surface area and memory use, and avoid exposing of stale data after rendering...\n                delete tmplItem._ctnt;\n                delete tmplItem._wrap;\n                // Store template item as jQuery data on the element\n                jQuery.data( el, \"tmplItem\", tmplItem );\n            }\n            function cloneTmplItem( key ) {\n                key = key + keySuffix;\n                tmplItem = newClonedItems[key] =\n                    (newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent, null, true ));\n            }\n        }\n    }\n\n    //---- Helper functions for template item ----\n\n    function tiCalls( content, tmpl, data, options ) {\n        if ( !content ) {\n            return stack.pop();\n        }\n        stack.push({ _: content, tmpl: tmpl, item:this, data: data, options: options });\n    }\n\n    function tiNest( tmpl, data, options ) {\n        // nested template, using {{tmpl}} tag\n        return jQuery.tmpl( jQuery.template( tmpl ), data, options, this );\n    }\n\n    function tiWrap( call, wrapped ) {\n        // nested template, using {{wrap}} tag\n        var options = call.options || {};\n        options.wrapped = wrapped;\n        // Apply the template, which may incorporate wrapped content,\n        return jQuery.tmpl( jQuery.template( call.tmpl ), call.data, options, call.item );\n    }\n\n    function tiHtml( filter, textOnly ) {\n        var wrapped = this._wrap;\n        return jQuery.map(\n            jQuery( jQuery.isArray( wrapped ) ? wrapped.join(\"\") : wrapped ).filter( filter || \"*\" ),\n            function(e) {\n                return textOnly ?\n                    e.innerText || e.textContent :\n                    e.outerHTML || outerHtml(e);\n            });\n    }\n\n    function tiUpdate() {\n        var coll = this.nodes;\n        jQuery.tmpl( null, null, null, this).insertBefore( coll[0] );\n        jQuery( coll ).remove();\n    }\n})( jQuery );\n"],"names":["CONTROLLER_REGISTRY","MapControllerRegistry","_classCallCheck","key","value","mapId","map","Object","values","find","ctrl","getMap","MapController","config","old","getController","remove","this","$","extend","popupTemplateId","markerColor","eventHandlers","setController","L","scrollWheelZoom","disable","on","ev","popup","getElement","attr","focus","_source","_icon","DivIcon","SVGIcon","DecidimIcon","fillColor","iconSize","point","name","callback","eventName","payload","handler","Reflect","apply","MapMarkersController","_MapController","_callSuper","arguments","_inherits","markerClusters","Array","isArray","markers","length","addMarkers","fitWorld","markersData","_this","MarkerClusterGroup","addLayer","template","concat","html","bounds","LatLngBounds","markerData","latitude","longitude","forEach","marker","Marker","icon","createIcon","keyboard","title","node","document","createElement","tmpl","appendTo","bindPopup","maxwidth","minWidth","keepInView","className","openPopup","size","getSize","y","x","fitBounds","padding","removeLayer","jQuery","undefined","appendToTmplItems","oldManip","fn","domManip","tmplItmAtt","htmlExpr","newTmplItems","wrappedItems","topTmplItem","data","itemKey","cloneIndex","stack","newTmplItem","options","parentItem","newItem","_wrap","parent","nodes","calls","tiCalls","nest","tiNest","wrap","tiWrap","tiHtml","update","tiUpdate","_ctnt","build","tmplItem","nested","content","frag","ret","item","replace","join","all","before","middle","after","storeTmplItems","get","unencode","text","el","innerHTML","makeArray","childNodes","buildTmplFn","markup","Function","trim","slash","type","fnargs","target","parens","args","def","expr","exprAutoFnDetect","tag","_default","test","unescape","indexOf","$1","split","params","$2","updateWrapped","wrapped","elem","elems","i","l","m","keySuffix","newClonedItems","nodeType","getElementsByTagName","processItemKey","pntKey","pntItem","pntNode","getAttribute","parentNode","cloneTmplItem","removeAttribute","push","pop","_","call","filter","textOnly","e","innerText","textContent","outerHTML","div","appendChild","cloneNode","coll","insertBefore","each","prependTo","insertAfter","replaceAll","original","selector","tmplItems","insert","clone","pushStack","complete","table","dmArgs","argsLength","fragClone","afterManip","_tmpl","topLevel","dataItem","encode","open","close","items"],"sourceRoot":""}