{"version":3,"file":"js/decidim_decidim_awesome_map-59e8c2a157c75d237542.js","mappings":"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","sources":["webpack://app/webpack/runtime/chunk loaded","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/map/icon.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/controls_ui.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/controller.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/api/api_fetcher.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/api/fetcher.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/api/proposals_fetcher.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/proposals_controller.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/api/meetings_fetcher.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/meetings_controller.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/awesome_map.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/decidim/decidim_awesome/awesome_map/load_map.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-21ce064a2683/app/packs/src/vendor/jquery.truncate.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/vendor/leaflet-tilelayer-here.js","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import * as L from \"leaflet\";\nimport { SVGIcon } from \"leaflet-svgicon\"\n\nL.DivIcon.SVGIcon = SVGIcon;\nL.DivIcon.SVGIcon.DecidimIcon = L.DivIcon.SVGIcon.extend({\n options: {\n fillColor: \"#ef604d\",\n opacity: 0\n },\n _createPathDescription: function() {\n return \"M14 1.17a11.685 11.685 0 0 0-11.685 11.685c0 11.25 10.23 20.61 10.665 21a1.5 1.5 0 0 0 2.025 0c0.435-.435 10.665-9.81 10.665-21A11.685 11.685 0 0 0 14 1.17Zm0 17.415A5.085 5.085 0 1 1 19.085 13.5 5.085 5.085 0 0 1 14 18.585Z\";\n },\n _createCircle: function() {\n return \"\"\n },\n // Improved version of the _createSVG, essentially the same as in later\n // versions of Leaflet. It adds the `px` values after the width and height\n // CSS making the focus borders work correctly across all browsers.\n _createSVG: function() {\n const path = this._createPath();\n const circle = this._createCircle();\n const text = this._createText();\n const className = `${this.options.className}-svg`;\n\n const style = `width:${this.options.iconSize.x}px; height:${this.options.iconSize.y}px;`;\n\n const svg = `${path}${circle}${text}`;\n\n return svg;\n }\n});\n","/* eslint-disable no-ternary, multiline-ternary */\n\nimport * as L from \"leaflet\";\n\nexport default class ControlsUI {\n constructor(awesomeMap) {\n this.awesomeMap = awesomeMap;\n\n this.main = L.control.layers(null, null, {\n position: \"topleft\",\n sortLayers: false,\n collapsed: this.awesomeMap.config.collapsedMenu\n // hideSingleBase: true\n });\n\n if (this.awesomeMap.config.hideControls) {\n $(this.main.getContainer()).hide();\n }\n\n this.$loading = $(\"#awesome-map .loading-spinner\");\n this.onHashtag = this._orderHashtags;\n\n this.awesomeMap.map.on(\"overlayadd\", () => {\n this.removeHiddenCategories();\n });\n }\n\n attach() {\n // legends\n this.main.addTo(this.awesomeMap.map);\n\n this.addSearchControls();\n if (this.awesomeMap.config.menu.categories) {\n this.addCategoriesControls();\n }\n\n // sub-layer hashtag title toggle\n $(\"#awesome-map\").on(\"click\", \".awesome_map-title-control\", (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n $(\"#awesome_map-categories-control\").toggleClass(\"active\");\n $(\"#awesome_map-hashtags-control\").toggleClass(\"active\");\n });\n\n // hashtag events\n $(\"#awesome-map\").on(\"change\", \".awesome_map-hashtags-selector\", (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n const tag = $(evt.target).closest(\"label\").data(\"layer\");\n // console.log(\"changed, layer\", tag, \"checked\", evt.target.checked, e);\n if (tag) {\n this.updateHashtagLayers();\n }\n });\n\n // select/deselect all tags\n $(\"#awesome-map\").on(\"click\", \".awesome_map-toggle_all_tags\", (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n $(\"#awesome-map .awesome_map-hashtags-selector\").prop(\"checked\", $(\"#awesome-map .awesome_map-hashtags-selector:checked\").length < $(\"#awesome-map .awesome_map-hashtags-selector\").length);\n this.updateHashtagLayers();\n });\n }\n\n addSearchControls() {\n $(this.main.getContainer()).contents(\"form\").append(`
${window.DecidimAwesome.texts.categories}
\n
${window.DecidimAwesome.texts.hashtags}
${window.DecidimAwesome.texts.select_deselect_all}
`);\n }\n\n addCategoriesControls() {\n this.awesomeMap.categories.forEach((category) => {\n // add control layer for this category\n const label = ` ${category.name}`;\n this.awesomeMap.layers[category.id] = {\n label: label,\n group: new L.FeatureGroup.SubGroup(this.awesomeMap.cluster)\n };\n this.awesomeMap.layers[category.id].group.addTo(this.awesomeMap.map);\n $(\"#awesome_map-categories-control .categories-container\").append(``);\n })\n\n // category events\n $(\"#awesome-map\").on(\"change\", \".awesome_map-categories-selector\", (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n\n const id = $(evt.target).closest(\"label\").data(\"layer\");\n const cat = this.awesomeMap.getCategory(id);\n // console.log(\"changed, layer\", id, \"cat\", cat, \"checked\", evt.target.checked, e);\n if (cat) {\n const layer = this.awesomeMap.layers[cat.id];\n if (evt.target.checked) {\n // show group of markers\n this.awesomeMap.map.addLayer(layer.group);\n } else {\n // hide group of markers\n this.awesomeMap.map.removeLayer(layer.group);\n // cat.children().forEach((c) => {\n // let $el = $(`.awesome_map-category-${c.id}`);\n // if($el.contents(\"input\").prop(\"checked\")) {\n // $el.click();\n // }\n // });\n }\n // if it's a children, put the parent to indeterminate\n this._indeterminateParentInput(cat);\n // sync tags\n this.updateHashtagLayers();\n }\n });\n }\n\n // Hashtags are collected directly from proposals (this is different than categories)\n addHashtagsControls(hashtags, marker) {\n // show hashtag layer\n if (hashtags && hashtags.length) {\n $(\"#awesome_map-hashtags-control\").show();\n hashtags.forEach((hashtag) => {\n // Add layer if not exists, otherwise just add the marker to the group\n if (!this.awesomeMap.layers[hashtag.tag]) {\n this.awesomeMap.layers[hashtag.tag] = {\n label: hashtag.name,\n group: new L.FeatureGroup.SubGroup(this.awesomeMap.cluster)\n };\n this.awesomeMap.map.addLayer(this.awesomeMap.layers[hashtag.tag].group);\n $(\"#awesome_map-hashtags-control .hashtags-container\").append(``);\n // Call a trigger, might be in service for customizations\n this.onHashtag(hashtag, $(\"#awesome_map-hashtags-control .hashtags-container\"));\n }\n this.awesomeMap.layers[hashtag.tag].group.addLayer(marker);\n\n const $label = $(`label.awesome_map-hashtag-${hashtag.tag}`);\n // update number of items\n $label.attr(\"title\", `${parseInt($label.attr(\"title\") || 0, 10) + 1} ${window.DecidimAwesome.texts.items}`);\n });\n }\n }\n\n showCategory(cat) {\n $(\"#awesome_map-categories-control\").show();\n // show category if hidden\n const $label = $(`label.awesome_map-category-${cat.id}`);\n const $parent = $(`label.awesome_map-category-${cat.parent}`);\n $label.show();\n // update number of items\n $label.attr(\"title\", `${parseInt($label.attr(\"title\") || 0, 10) + 1} ${window.DecidimAwesome.texts.items}`);\n // show parent if apply\n $parent.show();\n $parent.attr(\"title\", `${parseInt($parent.attr(\"title\") || 0, 10) + 1} ${window.DecidimAwesome.texts.items}`);\n }\n\n removeHiddenComponents() {\n $(\".awesome_map-component\").each((_idx, el) => {\n const layer = this.awesomeMap.layers[$(el).data(\"layer\")];\n const $input = $(el).closest(\"div\").find(\"input:not(:checked)\");\n if (layer && $input.length) {\n this.awesomeMap.map.addLayer(layer.group);\n this.awesomeMap.map.removeLayer(layer.group);\n }\n });\n }\n\n removeHiddenCategories() {\n $(\".awesome_map-categories-selector:not(:checked)\").each((_idx, el) => {\n const layer = this.awesomeMap.layers[$(el).closest(\"label\").data(\"layer\")];\n if (layer) {\n this.awesomeMap.map.addLayer(layer.group);\n this.awesomeMap.map.removeLayer(layer.group);\n }\n });\n }\n\n updateHashtagLayers() {\n // hide all\n $(\".awesome_map-hashtags-selector\").each((_idx, el) => {\n const layer = this.awesomeMap.layers[$(el).closest(\"label\").data(\"layer\")];\n if (layer) {\n this.awesomeMap.map.removeLayer(layer.group);\n }\n });\n // show selected only\n $(\".awesome_map-hashtags-selector:checked\").each((_idx, el) => {\n const layer = this.awesomeMap.layers[$(el).closest(\"label\").data(\"layer\")];\n if (layer) {\n this.awesomeMap.map.addLayer(layer.group);\n }\n });\n // hide non-selected categories\n this.removeHiddenComponents();\n this.removeHiddenCategories();\n }\n\n updateStats(uid, total) {\n // update component stats\n const $component = $(`#awesome_map-${uid}`);\n $component.attr(\"title\", `${total} ${window.DecidimAwesome.texts.items}`);\n }\n\n _indeterminateParentInput(cat) {\n if (cat.parent) {\n let $input = $(`.awesome_map-category-${cat.parent}`).contents(\"input\");\n let $subcats = $(`[class^=\"awesome_map-category-\"][data-parent=\"${cat.parent}\"]:visible`);\n let numChecked = $subcats.contents(\"input:checked\").length;\n $input.prop(\"indeterminate\", numChecked !== $subcats.length && numChecked !== 0);\n }\n }\n\n // order hashtags alphabetically\n _orderHashtags(_hashtag, $div) {\n let $last = $div.contents(\"label:last\");\n if ($last.prev(\"label\").length) {\n // move the label to order it alphabetically\n $div.contents(\"label\").each((_idx, el) => {\n if ($(el).text().localeCompare($last.text()) > 0) {\n $(el).before($last);\n }\n });\n }\n }\n}\n","import * as L from \"leaflet\";\n\nexport default class Controller {\n constructor(awesomeMap, component) {\n this.awesomeMap = awesomeMap;\n this.component = component;\n this.templateId = \"marker-meeting-popup\";\n this.controls = {\n label: this.getLabel(),\n group: new L.FeatureGroup.SubGroup(this.awesomeMap.cluster)\n };\n this.onFinished = () => {};\n this.allNodes = [];\n }\n\n getLabel() {\n let text = this.awesomeMap.config.menu.mergeComponents || this.component.name;\n if (!text) {\n text = window.DecidimAwesome.texts[this.component.type];\n }\n return `${text}`\n }\n\n setFetcher(Fetcher) {\n this.fetcher = new Fetcher(this);\n this.fetcher.onFinished = () => {\n // console.log(`all ${this.component.type} loaded`, this)\n this._onFinished();\n };\n this.fetcher.onCollection = (collection) => {\n if (collection && collection.edges) { \n // Add markers to the main cluster group\n const collectionEdges = collection.edges.filter((item) => item.node.coordinates && item.node.coordinates.latitude && item.node.coordinates.longitude);\n try {\n this.awesomeMap.cluster.addLayers(collectionEdges.map((item) => item.node.marker));\n } catch (evt) {\n console.error(\"Failed marker collection assignation\", collectionEdges, \"error\", evt);\n }\n // subgroups don't have th addLayers utility\n collectionEdges.forEach((item) => {\n this.awesomeMap.layers[this.component.type].group.addLayer(item.node.marker);\n this.addMarkerCategory(item.node.marker, item.node.category);\n this.addMarkerHashtags(item.node.marker, item.node.hashtags);\n });\n }\n };\n }\n\n addControls() {\n this.awesomeMap.controls.main.addOverlay(this.controls.group, this.controls.label);\n this.controls.group.addTo(this.awesomeMap.map);\n this.awesomeMap.layers[this.component.type] = this.controls;\n }\n\n loadNodes() {\n // to override\n }\n\n addMarker(marker, node) {\n\n /* \n theorically, this should be enough to create popups on markers but it looks that\n there is some bug in leaflet that sometimes prevents this to work\n */\n /*\n let dom = document.createElement(\"div\");\n // console.log(\"addMarker\", marker, \"dom\", dom)\n dom.innerHTML = $.templates(`#${this.templateId}`).render(node);\n marker.bindPopup(dom, {\n maxwidth: 640,\n minWidth: 500,\n keepInView: true,\n className: \"map-info\"\n }); //*/\n\n marker.on(\"click\", () => {\n let dom = document.createElement(\"div\");\n dom.innerHTML = $.templates(`#${this.templateId}`).render(node);\n\n let pop = L.popup({\n maxwidth: 640,\n minWidth: 500,\n keepInView: true,\n className: \"map-info\"\n\n }).setLatLng(marker.getLatLng()).setContent(dom);\n this.awesomeMap.map.addLayer(pop);\n });\n node.marker = marker;\n node.component = this.component;\n this.allNodes.push(node);\n }\n\n addMarkerCategory(marker, category) {\n // Add to category layer\n const cat = this.awesomeMap.getCategory(category);\n if (this.awesomeMap.layers[cat.id]) {\n try {\n this.awesomeMap.layers[cat.id].group.addLayer(marker);\n this.awesomeMap.controls.showCategory(cat);\n } catch (evt) {\n console.error(\"Failed category marker assignation\", marker, evt.message);\n }\n } \n }\n\n addMarkerHashtags(marker, hashtags) {\n // Add hashtag layer\n if (this.awesomeMap.config.menu.hashtags) {\n try {\n this.awesomeMap.controls.addHashtagsControls(hashtags, marker);\n } catch (evt) {\n console.error(\"Failed hashtags marker assignation\", marker, evt.message);\n }\n }\n }\n\n // Override if needed (call this.onFinished() at the end!)\n _onFinished() {\n this.awesomeMap.controls.updateStats(`component_${this.component.id}`, this.allNodes.length);\n this.onFinished();\n }\n\n createIcon(Builder, color) {\n return new Builder({\n color: \"#000000\",\n fillColor: color,\n circleFillColor: color,\n weight: 1,\n stroke: color,\n fillOpacity: 0.9\n });\n }\n}\n","export default class ApiFetcher { // eslint-disable-line no-unused-vars\n constructor(query, variables) {\n this.query = query;\n this.variables = variables;\n }\n\n fetch(callback) {\n $.ajax({\n method: \"POST\",\n url: \"/api\",\n contentType: \"application/json\",\n data: JSON.stringify({\n query: this.query,\n variables: this.variables\n })\n }).done(function(data) {\n callback(data.data);\n });\n }\n\n fetchAll (callback) {\n this.fetch(callback);\n }\n}\n","import ApiFetcher from \"src/decidim/decidim_awesome/awesome_map/api/api_fetcher\";\n\nexport default class Fetcher {\n constructor(controller) {\n this.controller = controller;\n this.config = {\n length: controller.awesomeMap.config.length || 255\n };\n this.onFinished = () => {};\n this.onNode = () => {};\n this.onCollection = () => {};\n this.hashtags = [];\n\n this.collection = this.controller.component.type;\n // override in specific components:\n this.query = `query ($id: ID!, $after: String!) {\n component(id: $id) {\n id\n __typename\n }\n }`;\n }\n\n fetch(after = \"\") {\n const variables = {\n \"id\": this.controller.component.id,\n \"after\": after\n };\n const api = new ApiFetcher(this.query, variables);\n api.fetchAll((result) => {\n if (result) {\n const collection = result.component[this.collection];\n // console.log(\"collection\",collection)\n \n collection.edges.forEach((element) => {\n let node = element.node;\n if (!node) {\n return;\n }\n \n if (node.coordinates && node.coordinates.latitude && node.coordinates.longitude) {\n this.decorateNode(node);\n this.onNode(node)\n }\n });\n\n this.onCollection(collection);\n\n if (collection.pageInfo.hasNextPage) {\n this.fetch(collection.pageInfo.endCursor);\n } else {\n this.onFinished();\n }\n }\n });\n }\n\n decorateNode(node) {\n const body = this.findTranslation(node.body.translations);\n const title = this.findTranslation(node.title.translations);\n node.hashtags = this.collectHashtags(title);\n node.hashtags = node.hashtags.concat(this.collectHashtags(body));\n // hashtags in the title look ugly, lets replace the gid:... structure with the tag #name\n node.title.translation = this.replaceHashtags(title, node.hashtags);\n node.body.translation = this.appendHtmlHashtags(this.truncate(this.removeHashtags(body)).replace(/\\n/g, \"
\"), node.hashtags);\n node.link = `${this.controller.component.url}/${this.collection}/${node.id}`;\n }\n\n findTranslation(translations) {\n let lang = document.querySelector(\"html\").getAttribute(\"lang\"),\n text = \"\";\n \n translations.forEach((txt) => {\n if (txt.text) {\n if (!text || txt.locale === lang) {\n text = txt.text\n }\n }\n });\n return text;\n }\n\n collectHashtags(text) {\n let tags = [];\n if (text) {\n const gids = text.match(/gid:\\/\\/[^\\s<&]+/g)\n if (gids) {\n tags = gids.filter((gid) => gid.indexOf(\"/Decidim::Hashtag/\") !== -1).map((gid) => {\n const parts = gid.split(\"/\");\n const fromSelector = parts[5].charAt(0) === \"_\";\n const tag = fromSelector ? parts[5].substr(1) : parts[5]; // eslint-disable-line no-ternary, multiline-ternary\n const name = `#${tag}`;\n const html = `${name}`;\n const hashtag = {\n color: getComputedStyle(document.documentElement).getPropertyValue(\"--secondary\"),\n gid: gid,\n id: parseInt(parts[4], 10),\n fromSelector: fromSelector,\n tag: tag,\n name: name,\n html: html\n }\n this.hashtags.push(hashtag)\n return hashtag;\n });\n }\n }\n return tags;\n }\n\n replaceHashtags(txt, hashtags) {\n let text = txt;\n hashtags.forEach((tag) => {\n text = text.replace(tag.gid, tag.name)\n });\n return text;\n }\n\n removeHashtags(text) {\n return text.replace(/gid:\\/\\/[^\\s<&]+/g, \"\");\n }\n\n appendHtmlHashtags(txt, tags) {\n let text = txt;\n tags.forEach((tag) => {\n text += ` ${tag.html}`;\n });\n return text;\n }\n\n truncate(html) {\n return $.truncate(html, this.config);\n }\n}\n","import Fetcher from \"src/decidim/decidim_awesome/awesome_map/api/fetcher\";\n\nexport default class ProposalsFetcher extends Fetcher {\n constructor(controller) {\n super(controller);\n this.query = `query ($id: ID!, $after: String!) {\n component(id: $id) {\n id\n __typename\n ... on Proposals {\n proposals(first: 50, after: $after){\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n id\n state\n title {\n translations {\n text\n locale\n }\n }\n body {\n translations {\n text\n locale\n }\n }\n address\n coordinates {\n latitude\n longitude\n }\n amendments {\n emendation {\n id\n }\n }\n category {\n id\n }\n }\n }\n }\n }\n }\n }`;\n }\n}\n","import * as L from \"leaflet\";\nimport Controller from \"src/decidim/decidim_awesome/awesome_map/controllers/controller\";\nimport ProposalsFetcher from \"src/decidim/decidim_awesome/awesome_map/api/proposals_fetcher\";\n\nconst ProposalIcon = L.DivIcon.SVGIcon.DecidimIcon.extend({\n options: {\n fillColor: \"#ef604d\",\n fillOpacity: 0.8,\n strokeWidth: 1,\n strokeOpcacity: 1\n }\n});\nexport default class ProposalsController extends Controller {\n constructor(awesomeMap, component) {\n super(awesomeMap, component)\n this.templateId = \"marker-proposal-popup\";\n this.amendments = {};\n this.setFetcher(ProposalsFetcher);\n }\n\n addControls() {\n super.addControls();\n\n // add control layer for amendments if any\n if (this.awesomeMap.config.menu.amendments && this.component.amendments && !this.awesomeMap.layers.amendments) {\n this.awesomeMap.layers.amendments = {\n label: `${window.DecidimAwesome.texts.amendments}`,\n group: new L.FeatureGroup.SubGroup(this.awesomeMap.cluster)\n }\n this.awesomeMap.controls.main.addOverlay(this.awesomeMap.layers.amendments.group, this.awesomeMap.layers.amendments.label);\n this.awesomeMap.layers.amendments.group.addTo(this.awesomeMap.map);\n }\n }\n\n loadNodes() {\n // for each proposal, create a marker with an associated popup\n this.fetcher.onNode = (proposal) => {\n let marker = new L.Marker([proposal.coordinates.latitude, proposal.coordinates.longitude], {\n icon: this.createIcon(ProposalIcon, this.awesomeMap.getCategory(proposal.category).color),\n title: proposal.title.translation\n });\n\n // Check if it has amendments, add it to a list\n // also assign parent's proposal categories to it\n if (proposal.amendments && proposal.amendments.length) {\n proposal.amendments.forEach((amendment) => {\n this.amendments[amendment.emendation.id] = proposal;\n });\n }\n\n // console.log(\"new proposal\", proposal, \"marker\", marker)\n this.addMarker(marker, proposal);\n };\n\n this.fetcher.fetch();\n }\n\n _onFinished() {\n const iterableAmendments = Object.entries(this.amendments);\n this.awesomeMap.controls.updateStats(`component_${this.component.id}`, this.allNodes.length - iterableAmendments.length);\n this.awesomeMap.controls.updateStats(`amendments_${this.component.id}`, iterableAmendments.length);\n\n // Process all amendments\n iterableAmendments.forEach((amendment) => {\n const marker = this.allNodes.find((node) => node.id === amendment[0]);\n const parent = amendment[1];\n // console.log(\"marker\", marker, \"parent proposal\", parent)\n // add marker to amendments layers and remove it from proposals\n if (marker) {\n try { \n marker.marker.removeFrom(this.controls.group) \n } catch (evt) { \n console.error(\"error removeFrom marker\", marker, \"layer\", this.controls.group, evt);\n }\n if (this.awesomeMap.config.menu.amendments) {\n marker.marker.addTo(this.awesomeMap.layers.amendments.group);\n // mimic parent category (amendments doesn't have categories)\n if (parent.category) {\n marker.marker.setIcon(this.createIcon(ProposalIcon, this.awesomeMap.getCategory(parent.category).color));\n this.addMarkerCategory(marker.marker, parent.category)\n }\n }\n }\n });\n\n this.onFinished();\n }\n}\n","import Fetcher from \"src/decidim/decidim_awesome/awesome_map/api/fetcher\";\n\nexport default class MeetingsFetcher extends Fetcher {\n constructor(controller) {\n super(controller);\n this.query = `query ($id: ID!, $after: String!) {\n component(id: $id) {\n id\n __typename\n ... on Meetings {\n meetings(first: 50, after: $after) {\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n id\n title {\n translations {\n text\n locale\n }\n }\n body: description {\n translations {\n text\n locale\n }\n }\n startTime\n location {\n translations {\n text\n locale\n }\n }\n address\n locationHints {\n translations {\n text\n locale\n }\n }\n coordinates {\n latitude\n longitude\n }\n category {\n id\n }\n }\n }\n }\n }\n }\n }`;\n }\n}\n","import * as L from \"leaflet\";\nimport Controller from \"src/decidim/decidim_awesome/awesome_map/controllers/controller\";\nimport MeetingsFetcher from \"src/decidim/decidim_awesome/awesome_map/api/meetings_fetcher\";\n\nconst MeetingIcon = L.DivIcon.SVGIcon.DecidimIcon.extend({\n _createPathDescription: function() {\n return \"M 15.991543,4 C 7.3956015,4 2.9250351,10.5 3.000951,16.999999 3.1063486,26.460968 12.747693,30.000004 15.991543,43 19.242091,30.000004 29,26.255134 29,16.999999 29,10.5 23.951131,4 15.996007,4 m -0.153508,2.6000001 a 2.1720294,2.1076698 0 0 1 2.330514,2.1124998 2.177008,2.1125006 0 0 1 -4.354016,0 2.1720294,2.1076698 0 0 1 2.023502,-2.1124998 m -2.651707,4.8056679 h 5.610202 l 3.935584,7.569899 -1.926038,0.934266 -2.009546,-3.859265 v 14.557403 h -2.484243 v -9.126003 h -0.642162 v 9.126003 H 13.190347 V 16.050568 l -2.009545,3.859265 -1.926036,-0.934266 3.935581,-7.569899\";\n }\n});\n\nexport default class MeetingsController extends Controller {\n constructor(awesomeMap, component) {\n super(awesomeMap, component)\n this.templateId = \"marker-meeting-popup\";\n this.setFetcher(MeetingsFetcher);\n }\n\n loadNodes() {\n // for each meeting, create a marker with an associated popup\n this.fetcher.onNode = (meeting) => {\n let marker = new L.Marker([meeting.coordinates.latitude, meeting.coordinates.longitude], {\n icon: this.createIcon(MeetingIcon, this.awesomeMap.getCategory(meeting.category).color),\n title: meeting.title.translation\n });\n // console.log(\"new meeting\", meeting, marker)\n this.addMarker(marker, meeting);\n };\n\n this.fetcher.fetch();\n }\n}\n","import * as L from \"leaflet\";\n// comes with Decidim\nimport \"src/decidim/map/icon.js\" \nimport \"src/decidim/vendor/leaflet-tilelayer-here\"\n// Comes with Decidim\nimport \"leaflet.markercluster\"; \n// included in this package.json\nimport \"leaflet.featuregroup.subgroup\" \nimport \"src/vendor/jquery.truncate\"\nimport \"jsrender\"\n\nimport ControlsUI from \"src/decidim/decidim_awesome/awesome_map/controls_ui\";\nimport ProposalsController from \"src/decidim/decidim_awesome/awesome_map/controllers/proposals_controller\";\nimport MeetingsController from \"src/decidim/decidim_awesome/awesome_map/controllers/meetings_controller\";\n\nexport default class AwesomeMap {\n constructor(map, config) {\n this.map = map;\n this.categories = window.AwesomeMap && window.AwesomeMap.categories || []\n this.config = $.extend({\n length: 255,\n center: null,\n zoom: 8,\n menu: {\n amendments: false,\n meetings: false,\n categories: true,\n hashtags: false,\n mergeComponents: false\n },\n show: {\n withdrawn: false,\n accepted: false,\n evaluating: false,\n notAnswered: false,\n rejected: false\n },\n hideControls: false,\n collapsedMenu: false,\n components: []\n }, config);\n this.layers = {};\n this.cluster = new L.MarkerClusterGroup();\n this.map.addLayer(this.cluster);\n this.controls = new ControlsUI(this);\n this.onFinished = () => {};\n this.controllers = {};\n this.loading = [];\n this._firstController = {};\n }\n\n // Queries the API and load all the markers\n loadControllers() {\n this.autoResize();\n this.controls.attach();\n\n this.config.components.forEach((component) => {\n const controller = this._getController(component);\n if (controller) {\n controller.loadNodes();\n this.loading.push(component.type);\n controller.onFinished = () => {\n this.loading.pop();\n this.autoResize();\n\n if (this.loading.length === 0) {\n this.controls.$loading.hide();\n // call trigger as all loads are finished\n this.onFinished();\n }\n };\n }\n });\n }\n\n autoResize() {\n // Setup center/zoom options if specified, otherwise fitbounds\n const bounds = this.cluster.getBounds()\n if (this.config.center && this.config.zoom) {\n this.map.setView(this.config.center, this.config.zoom);\n } else if (bounds.isValid()) {\n // this.map.fitBounds(bounds, { padding: [50, 50] }); // this doesn't work much of the time, probably some race condition\n this.map.fitBounds([[bounds.getNorth(), bounds.getEast()], [bounds.getSouth(), bounds.getWest()]], { padding: [50, 50] });\n }\n }\n\n getCategory(category) {\n let defaultCat = {\n color: getComputedStyle(document.documentElement).getPropertyValue(\"--primary\"),\n children: () => {},\n parent: null,\n name: null\n };\n\n if (category) {\n let id = category.id ? parseInt(category.id, 10) : parseInt(category, 10); // eslint-disable-line no-ternary, multiline-ternary\n let cat = this.categories.find((ct) => ct.id === id);\n if (cat) {\n cat.children = () => {\n return this.categories.filter((ct) => ct.parent === cat.id);\n }\n return cat;\n }\n }\n return defaultCat;\n }\n\n _getController(component) {\n let controller = null;\n\n if (component.type === \"proposals\") {\n controller = new ProposalsController(this, component);\n }\n if (component.type === \"meetings\" && this.config.menu.meetings) {\n controller = new MeetingsController(this, component);\n }\n\n if (controller) {\n // Agrupate layers for controlling components\n if (this._firstController[component.type] && this.config.menu.mergeComponents) {\n controller.controls = this._firstController[component.type].controls;\n } else {\n controller.addControls();\n }\n this._firstController[component.type] = this._firstController[component.type] || controller;\n this.controllers[component.type] = controller;\n return this.controllers[component.type]\n }\n return null;\n }\n}\n","import AwesomeMap from \"src/decidim/decidim_awesome/awesome_map/awesome_map\"\n\n$(() => {\n const sanitizeCenter = (string) => {\n if (string) {\n const parts = string.split(\",\")\n if (parts.length >= 2) {\n const lat = parseFloat(parts[0]);\n const lng = parseFloat(parts[1]);\n if (lat && lng) {\n return [lat, lng];\n }\n }\n }\n return null;\n };\n\n const config = {\n length: $(\"#awesome-map\").data(\"truncate\") || 254,\n center: sanitizeCenter($(\"#awesome-map\").data(\"map-center\")),\n zoom: $(\"#awesome-map\").data(\"map-zoom\"), \n menu: {\n amendments: $(\"#awesome-map\").data(\"menu-amendments\"),\n meetings: $(\"#awesome-map\").data(\"menu-meetings\"),\n categories: $(\"#awesome-map\").data(\"menu-categories\"),\n hashtags: $(\"#awesome-map\").data(\"menu-hashtags\"),\n mergeComponents: $(\"#awesome-map\").data(\"menu-merge-components\")\n },\n show: {\n withdrawn: $(\"#awesome-map\").data(\"show-withdrawn\"),\n accepted: $(\"#awesome-map\").data(\"show-accepted\"),\n evaluating: $(\"#awesome-map\").data(\"show-evaluating\"),\n notAnswered: $(\"#awesome-map\").data(\"show-not-answered\"),\n rejected: $(\"#awesome-map\").data(\"show-rejected\")\n },\n hideControls: $(\"#awesome-map\").data(\"hide-controls\"),\n collapsedMenu: $(\"#awesome-map\").data(\"collapsed\"),\n components: $(\"#awesome-map\").data(\"components\")\n };\n\n // build awesome map (if exist)\n $(\"#awesome-map .google-map\").on(\"ready.decidim\", (evt, map) => {\n // bindPopup doesn't work for some unknown cause and these handler neither so we're cancelling them\n map.off(\"popupopen\");\n map.off(\"popupclose\");\n\n // console.log(\"ready map\", map);\n\n window.AwesomeMap = new AwesomeMap(map, config);\n window.AwesomeMap.loadControllers();\n });\n});\n","// From https://github.com/pathable/truncate/\n\n(function($) {\n\n // Matches trailing non-space characters.\n var chop = /(\\s*\\S+|\\s)$/;\n\n // Matches the first word in the string.\n var start = /^(\\S*)/;\n\n // Return a truncated html string. Delegates to $.fn.truncate.\n $.truncate = function(html, options) {\n return $('
').append(html).truncate(options).html();\n };\n\n // Truncate the contents of an element in place.\n $.fn.truncate = function(options) {\n if ($.isNumeric(options)) options = { length: options };\n var o = $.extend({}, $.truncate.defaults, options);\n\n return this.each(function() {\n var self = $(this);\n\n if (o.noBreaks) self.find('br').replaceWith(' ');\n\n var text = self.text();\n var excess = text.length - o.length;\n\n if (o.stripTags) self.text(text);\n\n // Chop off any partial words if appropriate.\n if (o.words && excess > 0) {\n var truncated = text.slice(0, o.length).replace(chop, '').length;\n\n if (o.keepFirstWord && truncated === 0) {\n excess = text.length - start.exec(text)[0].length - 1;\n } else {\n excess = text.length - truncated - 1;\n }\n }\n\n if (excess < 0 || !excess && !o.truncated) return;\n\n // Iterate over each child node in reverse, removing excess text.\n $.each(self.contents().get().reverse(), function(i, el) {\n var $el = $(el);\n var text = $el.text();\n var length = text.length;\n\n // If the text is longer than the excess, remove the node and continue.\n if (length <= excess) {\n o.truncated = true;\n excess -= length;\n $el.remove();\n return;\n }\n\n // Remove the excess text and append the ellipsis.\n if (el.nodeType === 3) {\n // should we finish the block anyway?\n if (o.finishBlock) {\n $(el.splitText(length)).replaceWith(o.ellipsis);\n } else {\n $(el.splitText(length - excess - 1)).replaceWith(o.ellipsis);\n }\n return false;\n }\n\n // Recursively truncate child nodes.\n $el.truncate($.extend(o, { length: length - excess }));\n return false;\n });\n });\n };\n\n $.truncate.defaults = {\n\n // Strip all html elements, leaving only plain text.\n stripTags: false,\n\n // Only truncate at word boundaries.\n words: false,\n\n // When 'words' is active, keeps the first word in the string\n // even if it's longer than a target length.\n keepFirstWord: false,\n\n // Replace instances of
with a single space.\n noBreaks: false,\n\n // if true always truncate the content at the end of the block.\n finishBlock: false,\n\n // The maximum length of the truncated html.\n length: Infinity,\n\n // The character to use as the ellipsis. The word joiner (U+2060) can be\n // used to prevent a hanging ellipsis, but displays incorrectly in Chrome\n // on Windows 7.\n // http://code.google.com/p/chromium/issues/detail?id=68323\n ellipsis: '\\u2026' // '\\u2060\\u2026'\n\n };\n\n})(jQuery);\n","/* eslint-disable */\n\n// 🍂class TileLayer.HERE\n// Tile layer for HERE maps tiles.\nL.TileLayer.HERE = L.TileLayer.extend({\n\n options: {\n subdomains: '1234',\n minZoom: 2,\n maxZoom: 18,\n\n // 🍂option scheme: String = 'normal.day'\n // The \"map scheme\", as documented in the HERE API.\n scheme: 'normal.day',\n\n // 🍂option resource: String = 'maptile'\n // The \"map resource\", as documented in the HERE API.\n resource: 'maptile',\n\n // 🍂option mapId: String = 'newest'\n // Version of the map tiles to be used, or a hash of an unique map\n mapId: 'newest',\n\n // 🍂option format: String = 'png8'\n // Image format to be used (`png8`, `png`, or `jpg`)\n format: 'png8',\n\n // 🍂option appId: String = ''\n // Required option. The `app_id` provided as part of the HERE credentials\n appId: '',\n\n // 🍂option appCode: String = ''\n // Required option. The `app_code` provided as part of the HERE credentials\n appCode: '',\n\n // 🍂option useCIT: boolean = false\n // Whether to use the CIT when loading the here-maptiles\n useCIT: false,\n\n // 🍂option useHTTPS: boolean = true\n // Whether to use HTTPS when loading the here-maptiles\n useHTTPS: true,\n\n // 🍂option language: String = ''\n // The language of the descriptions on the maps that are loaded\n language: '',\n\n // 🍂option language: String = ''\n // The second language of the descriptions on the maps that are loaded\n language2: '',\n },\n\n\n initialize: function initialize(options) {\n options = L.setOptions(this, options);\n\n // Decide if this scheme uses the aerial servers or the basemap servers\n var schemeStart = options.scheme.split('.')[0];\n options.tileResolution = 256;\n\n // {Base URL}{Path}/{resource (tile type)}/{map id}/{scheme}/{zoom}/{column}/{row}/{size}/{format}\n // ?apiKey={YOUR_API_KEY}\n // &{param}={value}\n\n var params = [\n 'apiKey=' + encodeURIComponent(options.apiKey)\n ];\n // Fallback to old app_id,app_code if no apiKey passed\n if(!options.apiKey) {\n params = [\n 'app_id=' + encodeURIComponent(options.appId),\n 'app_code=' + encodeURIComponent(options.appCode),\n ];\n }\n if(options.language) {\n params.push('lg=' + encodeURIComponent(options.language));\n }\n if(options.language2) {\n params.push('lg2=' + encodeURIComponent(options.language2));\n }\n var urlQuery = '?' + params.join('&');\n\n var path = '/maptile/2.1/{resource}/{mapId}/{scheme}/{z}/{x}/{y}/{tileResolution}/{format}' + urlQuery;\n var attributionPath = '/maptile/2.1/copyright/{mapId}?apiKey={apiKey}';\n\n var baseUrl = 'maps.ls.hereapi.com';\n\n // Old style with apiId/apiCode for compatibility\n if(!options.apiKey) {\n // make sure the CIT-url can be used\n baseUrl = 'maps' + (options.useCIT ? '.cit' : '') + '.api.here.com';\n attributionPath = '/maptile/2.1/copyright/{mapId}?app_id={appId}&app_code={appCode}';\n }\n\n var tileServer = 'base.' + baseUrl;\n if (schemeStart == 'satellite' || schemeStart == 'terrain' || schemeStart == 'hybrid') {\n tileServer = 'aerial.' + baseUrl;\n }\n if (options.scheme.indexOf('.traffic.') !== -1) {\n tileServer = 'traffic' + baseUrl;\n }\n\n var protocol = 'http' + (options.useHTTPS ? 's' : '');\n var tileUrl = protocol + '://{s}.' + tileServer + path;\n\n this._attributionUrl = L.Util.template(protocol + '://1.' + tileServer + attributionPath, this.options);\n\n L.TileLayer.prototype.initialize.call(this, tileUrl, options);\n\n this._attributionText = '';\n\n },\n\n onAdd: function onAdd(map) {\n L.TileLayer.prototype.onAdd.call(this, map);\n\n if (!this._attributionBBoxes) {\n this._fetchAttributionBBoxes();\n }\n },\n\n onRemove: function onRemove(map) {\n //\n // Remove the attribution text, and clear the cached text so it will be recalculated\n // if/when we are shown again.\n //\n this._map.attributionControl.removeAttribution(this._attributionText);\n this._attributionText = '';\n\n this._map.off('moveend zoomend resetview', this._findCopyrightBBox, this);\n\n //\n // Call the prototype last, once we've tidied up our own changes\n //\n L.TileLayer.prototype.onRemove.call(this, map);\n },\n\n _fetchAttributionBBoxes: function _onMapMove() {\n var xmlhttp = new XMLHttpRequest();\n xmlhttp.onreadystatechange = L.bind(function(){\n if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {\n this._parseAttributionBBoxes(JSON.parse(xmlhttp.responseText));\n }\n }, this);\n xmlhttp.open(\"GET\", this._attributionUrl, true);\n xmlhttp.send();\n },\n\n _parseAttributionBBoxes: function _parseAttributionBBoxes(json) {\n if (!this._map) { return; }\n var providers = json[this.options.scheme.split('.')[0]] || json.normal;\n for (var i=0; i= zoom) {\n\n if (!providers[i].boxes) {\n // No boxes = attribution always visible\n visibleProviders.push(providers[i]);\n } else {\n for (var j=0; jHERE maps'];\n for (var i=0; i' + provider.label + '');\n }\n\n var attributionText = '© ' + attributions.join(', ') + '. ';\n\n if (attributionText !== this._attributionText) {\n this._map.attributionControl.removeAttribution(this._attributionText);\n this._map.attributionControl.addAttribution(this._attributionText = attributionText);\n }\n },\n\n});\n\n\nL.tileLayer.here = function(opts){\n return new L.TileLayer.HERE(opts);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8981: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [883,8270], function() { return __webpack_require__(59937); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","L","SVGIcon","DecidimIcon","extend","options","fillColor","opacity","_createPathDescription","_createCircle","_createSVG","path","this","_createPath","circle","text","_createText","className","concat","style","iconSize","x","y","ControlsUI","awesomeMap","_this","_classCallCheck","main","layers","position","sortLayers","collapsed","config","collapsedMenu","hideControls","$","getContainer","hide","$loading","onHashtag","_orderHashtags","map","on","removeHiddenCategories","key","value","_this2","addTo","addSearchControls","menu","categories","addCategoriesControls","evt","preventDefault","stopPropagation","toggleClass","target","closest","data","updateHashtagLayers","prop","length","contents","append","window","DecidimAwesome","texts","hashtags","select_deselect_all","_this3","forEach","category","label","id","name","group","SubGroup","cluster","parent","cat","getCategory","layer","checked","addLayer","removeLayer","_indeterminateParentInput","marker","_this4","show","hashtag","tag","$label","attr","parseInt","items","$parent","_this5","each","_idx","el","$input","find","_this6","_this7","removeHiddenComponents","uid","total","$subcats","numChecked","_hashtag","$div","$last","prev","localeCompare","before","Controller","component","templateId","controls","getLabel","onFinished","allNodes","mergeComponents","type","Fetcher","fetcher","_onFinished","onCollection","collection","edges","collectionEdges","filter","item","node","coordinates","latitude","longitude","addLayers","console","error","addMarkerCategory","addMarkerHashtags","addOverlay","dom","document","createElement","innerHTML","templates","render","pop","maxwidth","minWidth","keepInView","setLatLng","getLatLng","setContent","push","showCategory","message","addHashtagsControls","updateStats","Builder","color","circleFillColor","weight","stroke","fillOpacity","ApiFetcher","query","variables","callback","ajax","method","url","contentType","JSON","stringify","done","fetch","controller","onNode","after","arguments","undefined","fetchAll","result","element","decorateNode","pageInfo","hasNextPage","endCursor","body","findTranslation","translations","title","collectHashtags","translation","replaceHashtags","appendHtmlHashtags","truncate","removeHashtags","replace","link","lang","querySelector","getAttribute","txt","locale","tags","gids","match","gid","indexOf","parts","split","fromSelector","charAt","substr","html","getComputedStyle","documentElement","getPropertyValue","ProposalsFetcher","_Fetcher","_inherits","_super","_createSuper","call","ProposalIcon","strokeWidth","strokeOpcacity","ProposalsController","_Controller","amendments","setFetcher","_get","_getPrototypeOf","prototype","proposal","icon","createIcon","amendment","emendation","addMarker","iterableAmendments","Object","entries","removeFrom","setIcon","MeetingsFetcher","MeetingIcon","MeetingsController","meeting","AwesomeMap","center","zoom","meetings","withdrawn","accepted","evaluating","notAnswered","rejected","components","controllers","loading","_firstController","autoResize","attach","_getController","loadNodes","bounds","getBounds","setView","isValid","fitBounds","getNorth","getEast","getSouth","getWest","padding","defaultCat","children","ct","addControls","string","lat","parseFloat","lng","sanitizeCenter","off","loadControllers","chop","start","fn","isNumeric","o","defaults","self","noBreaks","replaceWith","excess","stripTags","words","truncated","slice","keepFirstWord","exec","get","reverse","i","$el","remove","nodeType","finishBlock","splitText","ellipsis","Infinity","jQuery","TileLayer","HERE","subdomains","minZoom","maxZoom","scheme","resource","mapId","format","appId","appCode","useCIT","useHTTPS","language","language2","initialize","schemeStart","setOptions","tileResolution","params","encodeURIComponent","apiKey","join","attributionPath","baseUrl","tileServer","protocol","tileUrl","_attributionUrl","Util","template","_attributionText","onAdd","_attributionBBoxes","_fetchAttributionBBoxes","onRemove","_map","attributionControl","removeAttribution","_findCopyrightBBox","xmlhttp","XMLHttpRequest","onreadystatechange","bind","readyState","status","_parseAttributionBBoxes","parse","responseText","open","send","json","providers","normal","boxes","j","box","latLngBounds","_attributionProviders","visibleProviders","getZoom","visibleBounds","minLevel","maxLevel","intersects","attributions","provider","alt","attributionText","addAttribution","tileLayer","here","opts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","keys","every","splice","r","obj","hasOwnProperty","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}