{"version":3,"file":"js/decidim_core-eb8aa4aac148d9d9d32c.js","mappings":"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","sources":["webpack://app/webpack/runtime/chunk loaded","webpack://app/./app/packs/images/ sync ^\\.\\/.*$","webpack://app/./app/packs/src/decidim/map_customization.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/input_multiple_mentions.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/input_character_counter.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/dropdowns_menus.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/icon.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/external_link.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/external_domain_warning.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/form_validator.js","webpack://app/../usr/local/bundle/gems/decidim-comments-0.26.7/app/packs/src/decidim/comments/comments.component.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/input_emoji.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/dialog_mode.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/focus_guard.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/index.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/back_to_list.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/clipboard.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/append_elements.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/form_remote.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/conferences.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/results_listing.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/impersonation.js","webpack://app/./app/packs/src/decidim/decidim_application.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/entrypoints/decidim_core.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/account_form.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/append_redirect_url_to_modals.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/callout.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/conversations.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/diff_mode_dropdown.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/floating_help.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/form_attachments.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/history.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/identity_selector_dialog.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/input_autojump.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/notifications.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/represent_user_group.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/responsive_horizontal_tabs.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/security/selfxss_warning.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/start_conversation_dialog.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/tooltip_keep_on_hover.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/user_registrations.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/vendor/modernizr.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/vendor/social-share-button.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/images/ sync ^\\.\\/.*$","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/global","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/node module decorator","webpack://app/webpack/runtime/publicPath","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};","var map = {\n\t\"./FCboutons-10.png\": 87310,\n\t\"./FCboutons-10@2x.png\": 25708,\n\t\"./decidim/cc-by-sa--inv.svg\": 47027,\n\t\"./decidim/cc-by-sa.svg\": 55974,\n\t\"./decidim/decidim-logo-mobile--inv.svg\": 22604,\n\t\"./decidim/decidim-logo-mobile.svg\": 99151,\n\t\"./decidim/decidim-logo.svg\": 69349,\n\t\"./decidim/footer_email.png\": 70495,\n\t\"./decidim/footer_email_group.png\": 9308,\n\t\"./decidim/footer_email_group@2x.png\": 88288,\n\t\"./decidim/footer_email_separator.png\": 43801,\n\t\"./decidim/footer_email_separator@2x.png\": 61510,\n\t\"./decidim/header_email.png\": 60733,\n\t\"./france-connect-logo-mono.svg\": 22407,\n\t\"./france-connect-logo.svg\": 95321\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 48999;","((exports) => {\n const $ = exports.$; // eslint-disable-line\n\n exports.Decidim = exports.Decidim || {};\n\n $(() => {\n let $mapElements = $(\"[data-decidim-map]\");\n\n $mapElements.on(\"ready.decidim\", (event, map, mapConfig) => {\n\n fetch(\"/data/mel.json\")\n .then(response => response.json())\n .then(geojson => {\n const geojsonLayer = L.geoJSON(geojson, {\n style: function () {\n return {\n color: \"#ff1515\",\n weight: 1,\n fillOpacity: 0.05\n };\n }\n }).addTo(map);\n\n if (mapConfig.markers.length == 0) {\n map.fitBounds(geojsonLayer.getBounds());\n }\n });\n\n });\n });\n})(window);\n","/* eslint no-unused-vars: 0 */\nimport Tribute from \"src/decidim/vendor/tribute\"\n\nconst updateSubmitButton = ($fieldContainer, $selectedItems) => {\n const $form = $fieldContainer.closest(\"form\");\n if ($form.length < 1) {\n return;\n }\n\n const $submitButton = $form.find(\"button[type='submit']\");\n if ($selectedItems.children().length === 0) {\n $submitButton.prop(\"disabled\", true);\n } else {\n $submitButton.prop(\"disabled\", false);\n }\n}\n\n$(() => {\n const $multipleMentionContainer = $(\".js-multiple-mentions\");\n const $multipleMentionRecipientsContainer = $(\".js-multiple-mentions-recipients\");\n const nodatafound = $multipleMentionContainer.attr(\"data-noresults\");\n const directMessageDisabled = $multipleMentionContainer.attr(\"data-direct-messages-disabled\");\n\n const maxRecipients = 9;\n let mentionsCount = 0;\n\n /* eslint no-unused-vars: 0 */\n let deleteRecipient = function(element) {\n // Remove recipient\n element.remove();\n mentionsCount -= 1;\n // In case mentions container disable, enable again\n if ($multipleMentionContainer.prop(\"disabled\")) {\n $multipleMentionContainer.prop(\"disabled\", false);\n }\n };\n\n let noMatchTemplate = null\n if (nodatafound) {\n noMatchTemplate = () => `
  • ${nodatafound}
  • `;\n }\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds\n /* eslint no-invalid-this: 0 */\n /* eslint consistent-this: 0 */\n /* eslint prefer-reflect: 0 */\n const debounce = function(callback, wait) {\n let timeout = null;\n return (...args) => {\n const context = this;\n clearTimeout(timeout);\n timeout = setTimeout(() => callback.apply(context, args), wait);\n };\n }\n\n /* eslint no-use-before-define: [\"error\", { \"variables\": false }]*/\n /* eslint no-unused-expressions: 0 */\n let remoteSearch = function(text, cb) {\n let exclusionIds = [];\n $multipleMentionRecipientsContainer.find(\"input[name^='recipient_id']\").each(function(index) {\n exclusionIds.push($(this).val());\n });\n let query = `{users(filter:{wildcard:\"${text}\",excludeIds:[${exclusionIds}]}){id,nickname,name,avatarUrl,__typename,...on UserGroup{membersCount},...on User{directMessagesEnabled}}}`;\n $.post(\"/api\", {query: query}).\n then((response) => {\n let data = response.data.users || {};\n cb(data)\n }).fail(function() {\n cb([])\n }).always(() => {\n // This function runs Tribute every single time you type something\n // So we must evalute DOM properties after each\n const $parent = $(tribute.current.element).parent();\n $parent.addClass(\"is-active\");\n\n // We need to move the container to the wrapper selected\n const $tribute = $parent.find(\".tribute-container\");\n // Remove the inline styles, relative to absolute positioning\n $tribute.removeAttr(\"style\");\n })\n };\n\n // tribute.js docs - http://github.com/zurb/tribute\n /* global Tribute*/\n /* eslint multiline-ternary: 0 */\n /* eslint no-ternary: 0 */\n let tribute = new Tribute({\n autocompleteMode: true,\n // avoid overloading the API if the user types too fast\n values: debounce(function (text, cb) {\n remoteSearch(text, (users) => cb(users));\n }, 250),\n positionMenu: true,\n menuContainer: null,\n menuItemLimit: 10,\n fillAttr: \"nickname\",\n noMatchTemplate: noMatchTemplate,\n lookup: (item) => item.nickname + item.name,\n selectTemplate: function(item) {\n mentionsCount += 1;\n if (mentionsCount >= maxRecipients) {\n $multipleMentionContainer.prop(\"disabled\", true);\n }\n if (typeof item === \"undefined\") {\n return null;\n }\n // Set recipient profile view\n let recipientLabel = `\n \n `;\n\n // Append new recipient to DOM\n if (item.original.__typename === \"UserGroup\" || item.original.directMessagesEnabled === \"true\") {\n $multipleMentionRecipientsContainer.append($(recipientLabel));\n $multipleMentionContainer.val(\"\");\n }\n\n // In order to add tabindex accessibility control to each recipient in list\n $multipleMentionRecipientsContainer.find(\"label\").each(function(index) {\n $(this).find(\"div\").attr(\"tabIndex\", 0).attr(\"aria-controls\", 0).attr(\"aria-label\", \"Close\").attr(\"role\", \"tab\");\n });\n\n updateSubmitButton($multipleMentionContainer, $multipleMentionRecipientsContainer);\n // Clean input\n return \"\";\n },\n menuItemTemplate: function(item) {\n let svg = \"\";\n let enabled = item.original.directMessagesEnabled === \"true\";\n if (window.Decidim && item.original.__typename === \"UserGroup\") {\n enabled = true;\n const iconsPath = window.Decidim.config.get(\"icons_path\");\n svg = `${item.original.membersCount}x `;\n }\n let disabledElementClass = enabled ? \"\" : \"disabled-tribute-element\";\n let disabledElementMessage = enabled ? \"\" : ` ${directMessageDisabled}`;\n return `
    \n \"author-avatar\"\n ${item.original.nickname}\n ${item.original.name}\n ${svg}\n ${disabledElementMessage}\n
    `;\n }\n });\n\n let setupEvents = function($element) {\n updateSubmitButton($multipleMentionContainer, $multipleMentionRecipientsContainer);\n\n // DOM manipulation\n $element.on(\"focusin\", (event) => {\n // Set the parent container relative to the current element\n tribute.menuContainer = event.target.parentNode;\n });\n $element.on(\"focusout\", (event) => {\n let $parent = $(event.target).parent();\n\n if ($parent.hasClass(\"is-active\")) {\n $parent.removeClass(\"is-active\");\n }\n });\n $element.on(\"input\", (event) => {\n let $parent = $(event.target).parent();\n\n if (tribute.isActive) {\n // We need to move the container to the wrapper selected\n let $tribute = $(\".tribute-container\");\n $tribute.appendTo($parent);\n // Remove the inline styles, relative to absolute positioning\n $tribute.removeAttr(\"style\");\n // Parent adaptation\n $parent.addClass(\"is-active\");\n } else {\n $parent.removeClass(\"is-active\");\n }\n });\n };\n\n let setupRecipientEvents = function($element) {\n // Allow delete with click on element in recipients list\n $element.on(\"click\", (event) => {\n let $target = event.target.parentNode;\n if ($target.tagName === \"LABEL\") {\n deleteRecipient($target);\n updateSubmitButton($multipleMentionContainer, $multipleMentionRecipientsContainer);\n }\n });\n // Allow delete with keypress on element in recipients list\n $element.on(\"keypress\", (event) => {\n let $target = event.target.parentNode;\n if ($target.tagName === \"LABEL\") {\n deleteRecipient($target);\n updateSubmitButton($multipleMentionContainer, $multipleMentionRecipientsContainer);\n }\n });\n };\n\n // Call only if we have containter to bind events to\n if ($multipleMentionContainer.length) {\n setupEvents($multipleMentionContainer);\n tribute.attach($multipleMentionContainer);\n }\n\n // Call only if we have containter to bind events to\n if ($multipleMentionRecipientsContainer.length) {\n setupRecipientEvents($multipleMentionRecipientsContainer);\n }\n});\n","const COUNT_KEY = \"%count%\";\nconst DEFAULT_MESSAGES = {\n charactersAtLeast: {\n one: `at least ${COUNT_KEY} character`,\n other: `at least ${COUNT_KEY} characters`\n },\n charactersLeft: {\n one: `${COUNT_KEY} character left`,\n other: `${COUNT_KEY} characters left`\n }\n};\nlet MESSAGES = DEFAULT_MESSAGES;\n\nexport default class InputCharacterCounter {\n static configureMessages(messages) {\n MESSAGES = $.extend(DEFAULT_MESSAGES, messages);\n }\n\n constructor(input) {\n this.$input = input;\n this.$target = $(this.$input.data(\"remaining-characters\"));\n this.minCharacters = parseInt(this.$input.attr(\"minlength\"), 10);\n this.maxCharacters = parseInt(this.$input.attr(\"maxlength\"), 10);\n\n if (this.$target.length < 1) {\n let targetId = null;\n if (this.$input.attr(\"id\") && this.$input.attr(\"id\").length > 0) {\n targetId = `${this.$input.attr(\"id\")}_characters`;\n } else {\n targetId = `characters_${Math.random().toString(36).substr(2, 9)}`;\n }\n\n this.$target = $(``)\n\n // If input is a hidden for WYSIWYG editor add it at the end\n if (this.$input.parent().is(\".editor\")) {\n this.$input.parent().after(this.$target);\n }\n // Prefix and suffix columns are wrapped in columns, so put the\n // character counter before that.\n else if (\n this.$input.parent().is(\".columns\") &&\n this.$input.parent().parent().is(\".row\")\n ) {\n this.$input.parent().parent().after(this.$target);\n } else {\n this.$input.after(this.$target);\n }\n }\n\n if (this.$target.length > 0 && (this.maxCharacters > 0 || this.minCharacters > 0)) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n // In WYSIWYG editors (Quill) we need to find the active editor from the\n // DOM node. Quill has the experimental \"find\" method that should work\n // fine in this case\n if (Quill && this.$input.parent().is(\".editor\")) {\n // Wait until the next javascript loop so Quill editors are created\n setTimeout(() => {\n const editor = Quill.find(this.$input.siblings(\".editor-container\")[0]);\n editor.on(\"text-change\", () => {\n this.updateStatus();\n });\n })\n }\n this.$input.on(\"keyup\", () => {\n this.updateStatus();\n });\n if (this.$input.get(0) !== null) {\n this.$input.get(0).addEventListener(\"emoji.added\", () => {\n this.updateStatus();\n });\n }\n this.updateStatus();\n }\n\n updateStatus() {\n const numCharacters = this.$input.val().length;\n const showMessages = [];\n\n if (this.minCharacters > 0) {\n let message = MESSAGES.charactersAtLeast.other;\n if (this.minCharacters === 1) {\n message = MESSAGES.charactersAtLeast.one;\n }\n showMessages.push(message.replace(COUNT_KEY, this.minCharacters));\n }\n\n if (this.maxCharacters > 0) {\n const remaining = this.maxCharacters - numCharacters;\n let message = MESSAGES.charactersLeft.other;\n if (remaining === 1) {\n message = MESSAGES.charactersLeft.one;\n }\n this.$input[0].dispatchEvent(\n new CustomEvent(\"characterCounter\", {detail: {remaining: remaining}})\n );\n showMessages.push(message.replace(COUNT_KEY, remaining));\n }\n\n this.$target.text(showMessages.join(\", \"));\n }\n}\n\nconst createCharacterCounter = ($input) => {\n $input.data(\"remaining-characters-counter\", new InputCharacterCounter($input));\n}\n\n$(() => {\n $(\"input[type='text'], textarea, .editor>input[type='hidden']\").each((_i, elem) => {\n const $input = $(elem);\n\n if (!$input.is(\"[minlength]\") && !$input.is(\"[maxlength]\")) {\n return;\n }\n\n createCharacterCounter($input);\n });\n});\n\nexport {InputCharacterCounter, createCharacterCounter};\n","/* eslint-disable require-jsdoc */\n\n// This will apply some fixes for the Foundation dropdown menu element\n// according to W3C instructions at:\n// https://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-links.html\n//\n// NOTE:\n// This needs to run AFTER Foundation has been initialized because those\n// initializers will affect the drop down menu elements.\nexport default function fixDropdownMenus() {\n $(\"[data-dropdown-menu]\").each((_i, element) => {\n // This will break navigation on macOS VoiceOver app since it will let the\n // user to focus on the li element instead of the element where we\n // actually need the focus to be in.\n $(\"li.is-dropdown-submenu-parent\", element).removeAttr(\"aria-haspopup\").removeAttr(\"aria-label\");\n $(\"li.is-dropdown-submenu-parent > a:first\", element).removeAttr(\"aria-label\");\n // Foundation marks the wrong role for the submenu elements\n $(\"ul.is-dropdown-submenu\", element).attr(\"role\", \"menu\");\n })\n}\n\n// Ensure the first element is always focused when a dropdown is opened as\n// this would not always happen when using a screen reader. If this is not\n// done, the screen reader will stay quiet when the menu opens which can lead\n// to the blind user not understanding the menu has opened.\n$(() => {\n $(\"[data-dropdown-menu]\").on(\"show.zf.dropdownMenu\", (_i, element) => {\n $(\"li:first > a\", element).focus();\n });\n})\n","const DEFAULT_ATTRIBUTES = {\n role: \"img\",\n \"aria-hidden\": \"true\"\n};\n\n/**\n * Generates a Decidim icon element and returns it as a string.\n * @param {String} iconKey - the key of the icon to be generated\n * @param {Object} attributes - extra attributes to define for the icon SVG\n * @param {int} wait - number of milliseconds to wait before executing the function.\n * @private\n * @returns {Void} - Returns nothing.\n */\nexport default function icon(iconKey, attributes = {}) {\n const iconAttributes = $.extend(DEFAULT_ATTRIBUTES, attributes);\n const title = iconAttributes.title || iconAttributes.ariaLabel;\n Reflect.deleteProperty(iconAttributes, \"title\");\n\n const htmlAttributes = {\n \"class\": `icon icon--${iconKey}`\n };\n Object.keys(iconAttributes).forEach((key) => {\n // Convert the key to dash-format.\n const newKey = key.replace(/([A-Z])/g, (ucw) => `-${ucw[0].toLowerCase()}`);\n if (typeof htmlAttributes[key] === \"undefined\") {\n htmlAttributes[newKey] = iconAttributes[key];\n } else {\n htmlAttributes[newKey] = `${htmlAttributes[newKey]} ${iconAttributes[key]}`;\n }\n });\n\n const iconsPath = window.Decidim.config.get(\"icons_path\");\n const elHtml = ``;\n const $el = $(elHtml);\n if (title) {\n $el.prepend(`${title}`);\n } else {\n // This keeps accessibility audit tools happy\n $el.prepend(`${iconKey}`);\n // Force hidden if title is not defined\n htmlAttributes[\"aria-hidden\"] = \"true\";\n }\n $el.attr(htmlAttributes);\n\n return $(\"
    \").append($el).html();\n}\n","import icon from \"src/decidim/icon\"\n\nconst EXCLUDE_CLASSES = [\n \"card--list__data__icon\",\n \"footer-social__icon\",\n \"logo-cityhall\"\n];\nconst EXCLUDE_ANCESTOR_CLASSES = [\n \"editor-container\"\n]\nconst EXCLUDE_REL = [\"license\", \"decidim\"];\n\nconst DEFAULT_MESSAGES = {\n externalLink: \"External link\"\n};\nlet MESSAGES = DEFAULT_MESSAGES;\n\nexport default class ExternalLink {\n static configureMessages(messages) {\n MESSAGES = $.extend(DEFAULT_MESSAGES, messages);\n }\n\n constructor(link) {\n this.$link = link;\n\n this.setup();\n }\n\n setup() {\n if (EXCLUDE_CLASSES.some((cls) => this.$link.hasClass(cls))) {\n return;\n }\n if (EXCLUDE_ANCESTOR_CLASSES.some((cls) => this.$link.parents().hasClass(cls))) {\n return;\n }\n if (\n EXCLUDE_REL.some((rel) => {\n const linkRels = `${this.$link.attr(\"rel\")}`.split(\" \");\n return linkRels.indexOf(rel) > -1;\n })\n ) {\n return;\n }\n\n this.$link.addClass(\"external-link-container\");\n let spacer = \" \";\n if (this.$link.text().trim().length < 1) {\n // Fixes image links extra space\n spacer = \"\";\n }\n this.$link.append(`${spacer}${this.generateElement()}`);\n }\n\n generateElement() {\n let content = `${this.generateIcon()}${this.generateScreenReaderLabel()}`;\n\n return `${content}`;\n }\n\n generateIcon() {\n return icon(\"external-link\");\n }\n\n generateScreenReaderLabel() {\n return `(${MESSAGES.externalLink})`;\n }\n}\n","/* eslint-disable require-jsdoc */\n\nexport default function updateExternalDomainLinks($target) {\n const whitelist = window.Decidim.config.get(\"external_domain_whitelist\")\n\n if (window.location.pathname === \"/link\") {\n return;\n }\n\n $(\"a\", $target).filter((_i, link) => {\n const $link = $(link);\n if (!$link[0].hasAttribute(\"href\") || $link.parents(\".ql-editor\").length > 0) {\n return false;\n }\n\n const parts = $link.attr(\"href\").match(/^(([a-z]+):)?\\/\\/([^/:]+)(:[0-9]*)?(\\/.*)?$/) || null;\n if (!parts) {\n return false;\n }\n\n const domain = parts[3].replace(/^www\\./, \"\")\n if (whitelist.includes(domain)) {\n return false;\n }\n\n return true;\n }).each((_n, link) => {\n const $link = $(link);\n const externalHref = `/link?external_url=${encodeURIComponent($link.attr(\"href\"))}`;\n $link.attr(\"href\", externalHref)\n $link.attr(\"data-remote\", true)\n });\n}\n","const DEFAULT_MESSAGES = {\n correctErrors: \"There are errors on the form, please correct them.\"\n};\nlet MESSAGES = DEFAULT_MESSAGES;\n\nexport default class FormValidator {\n static configureMessages(messages) {\n MESSAGES = $.extend(DEFAULT_MESSAGES, messages);\n }\n\n constructor(form) {\n this.$form = form;\n\n this.$form.on(\"form-error.decidim\", () => {\n this.handleError();\n });\n }\n\n handleError() {\n this.announceFormError();\n\n $(\".is-invalid-input:first\", this.$form).focus();\n }\n\n /**\n * This announces immediately to the screen reader that there are errors on\n * the form that need to be fixed. Does not work on all screen readers but\n * works e.g. in Windows+Firefox+NVDA and macOS+Safari+VoiceOver\n * combinations.\n *\n * @returns {undefined}\n */\n announceFormError() {\n let $announce = $(\".sr-announce\", this.$form);\n if ($announce.length > 0) {\n $announce.remove();\n }\n $announce = $(\"
    \");\n $announce.attr(\"class\", \"sr-announce show-for-sr\");\n $announce.attr(\"aria-live\", \"assertive\");\n this.$form.prepend($announce);\n\n setTimeout(() => {\n $announce.text(MESSAGES.correctErrors);\n }, 100);\n }\n}\n\n$(() => {\n $(\"form\").each((_i, el) => {\n $(el).data(\"form-validator\", new FormValidator($(el)));\n });\n $(document).on(\"forminvalid.zf.abide\", function(_ev, form) {\n form.trigger(\"form-error.decidim\");\n })\n});\n","/* eslint id-length: [\"error\", { \"exceptions\": [\"$\"] }] */\n\n/**\n * A plain Javascript component that handles the comments.\n *\n * @class\n * @augments Component\n */\n\n// This is necessary for testing purposes\nconst $ = window.$;\n\nimport { createCharacterCounter } from \"src/decidim/input_character_counter\"\nimport ExternalLink from \"src/decidim/external_link\"\nimport updateExternalDomainLinks from \"src/decidim/external_domain_warning\"\n\nexport default class CommentsComponent {\n constructor($element, config) {\n this.$element = $element;\n this.commentableGid = config.commentableGid;\n this.commentsUrl = config.commentsUrl;\n this.rootDepth = config.rootDepth;\n this.order = config.order;\n this.lastCommentId = config.lastCommentId;\n this.pollingInterval = config.pollingInterval || 15000;\n this.id = this.$element.attr(\"id\") || this._getUID();\n this.mounted = false;\n }\n\n /**\n * Handles the logic for mounting the component\n * @public\n * @returns {Void} - Returns nothing\n */\n mountComponent() {\n if (this.$element.length > 0 && !this.mounted) {\n this.mounted = true;\n this._initializeComments(this.$element);\n\n $(\".order-by__dropdown .is-submenu-item a\", this.$element).on(\"click.decidim-comments\", () => this._onInitOrder());\n }\n }\n\n /**\n * Handles the logic for unmounting the component\n * @public\n * @returns {Void} - Returns nothing\n */\n unmountComponent() {\n if (this.mounted) {\n this.mounted = false;\n this._stopPolling();\n\n $(\".add-comment .opinion-toggle .button\", this.$element).off(\"click.decidim-comments\");\n $(\".add-comment textarea\", this.$element).off(\"input.decidim-comments\");\n $(\".order-by__dropdown .is-submenu-item a\", this.$element).off(\"click.decidim-comments\");\n $(\".add-comment form\", this.$element).off(\"submit.decidim-comments\");\n $(\".add-comment textarea\", this.$element).each((_i, el) => el.removeEventListener(\"emoji.added\", this._onTextInput));\n }\n }\n\n /**\n * Adds a new thread to the comments section.\n * @public\n * @param {String} threadHtml - The HTML content for the thread.\n * @param {Boolean} fromCurrentUser - A boolean indicating whether the user\n * herself was the author of the new thread. Defaults to false.\n * @returns {Void} - Returns nothing\n */\n addThread(threadHtml, fromCurrentUser = false) {\n const $parent = $(\".comments:first\", this.$element);\n const $comment = $(threadHtml);\n const $threads = $(\".comment-threads\", this.$element);\n this._addComment($threads, $comment);\n this._finalizeCommentCreation($parent, fromCurrentUser);\n }\n\n /**\n * Adds a new reply to an existing comment.\n * @public\n * @param {Number} commentId - The ID of the comment for which to add the\n * reply to.\n * @param {String} replyHtml - The HTML content for the reply.\n * @param {Boolean} fromCurrentUser - A boolean indicating whether the user\n * herself was the author of the new reply. Defaults to false.\n * @returns {Void} - Returns nothing\n */\n addReply(commentId, replyHtml, fromCurrentUser = false) {\n const $parent = $(`#comment_${commentId}`);\n const $comment = $(replyHtml);\n const $replies = $(`#comment-${commentId}-replies`);\n this._addComment($replies, $comment);\n $replies.siblings(\".comment__additionalreply\").removeClass(\"hide\");\n this._finalizeCommentCreation($parent, fromCurrentUser);\n }\n\n /**\n * Generates a unique identifier for the form.\n * @private\n * @returns {String} - Returns a unique identifier\n */\n _getUID() {\n return `comments-${new Date().setUTCMilliseconds()}-${Math.floor(Math.random() * 10000000)}`;\n }\n\n /**\n * Initializes the comments for the given parent element.\n * @private\n * @param {jQuery} $parent The parent element to initialize.\n * @returns {Void} - Returns nothing\n */\n _initializeComments($parent) {\n $(\".add-comment\", $parent).each((_i, el) => {\n const $add = $(el);\n const $form = $(\"form\", $add);\n const $opinionButtons = $(\".opinion-toggle .button\", $add);\n const $text = $(\"textarea\", $form);\n\n $opinionButtons.on(\"click.decidim-comments\", this._onToggleOpinion);\n $text.on(\"input.decidim-comments\", this._onTextInput);\n\n $(document).trigger(\"attach-mentions-element\", [$text.get(0)]);\n\n $form.on(\"submit.decidim-comments\", () => {\n const $submit = $(\"button[type='submit']\", $form);\n\n $submit.attr(\"disabled\", \"disabled\");\n this._stopPolling();\n });\n\n if ($text.length && $text.get(0) !== null) {\n // Attach event to the DOM node, instead of the jQuery object\n $text.get(0).addEventListener(\"emoji.added\", this._onTextInput);\n }\n });\n\n this._pollComments();\n }\n\n /**\n * Adds the given comment element to the given target element and\n * initializes it.\n * @private\n * @param {jQuery} $target - The target element to add the comment to.\n * @param {jQuery} $container - The comment container element to add.\n * @returns {Void} - Returns nothing\n */\n _addComment($target, $container) {\n let $comment = $(\".comment\", $container);\n if ($comment.length < 1) {\n // In case of a reply\n $comment = $container;\n }\n this.lastCommentId = parseInt($comment.data(\"comment-id\"), 10);\n\n $target.append($container);\n $container.foundation();\n this._initializeComments($container);\n createCharacterCounter($(\".add-comment textarea\", $container));\n $container.find('a[target=\"_blank\"]').each((_i, elem) => {\n const $link = $(elem);\n $link.data(\"external-link\", new ExternalLink($link));\n });\n updateExternalDomainLinks($container)\n }\n\n /**\n * Finalizes the new comment creation after the comment adding finishes\n * successfully.\n * @private\n * @param {jQuery} $parent - The parent comment element to finalize.\n * @param {Boolean} fromCurrentUser - A boolean indicating whether the user\n * herself was the author of the new comment.\n * @returns {Void} - Returns nothing\n */\n _finalizeCommentCreation($parent, fromCurrentUser) {\n if (fromCurrentUser) {\n const $add = $(\"> .add-comment\", $parent);\n const $text = $(\"textarea\", $add);\n const characterCounter = $text.data(\"remaining-characters-counter\");\n $text.val(\"\");\n if (characterCounter) {\n characterCounter.updateStatus();\n }\n if (!$add.parent().is(\".comments\")) {\n $add.addClass(\"hide\");\n }\n }\n\n // Restart the polling\n this._pollComments();\n }\n\n /**\n * Sets a timeout to poll new comments.\n * @private\n * @returns {Void} - Returns nothing\n */\n _pollComments() {\n this._stopPolling();\n\n this.pollTimeout = setTimeout(() => {\n Rails.ajax({\n url: this.commentsUrl,\n type: \"GET\",\n data: new URLSearchParams({\n \"commentable_gid\": this.commentableGid,\n \"root_depth\": this.rootDepth,\n \"order\": this.order,\n \"after\": this.lastCommentId\n }),\n success: this._pollComments()\n })\n }, this.pollingInterval);\n }\n\n /**\n * Stops polling for new comments.\n * @private\n * @returns {Void} - Returns nothing\n */\n _stopPolling() {\n if (this.pollTimeout) {\n clearTimeout(this.pollTimeout);\n }\n }\n\n /**\n * Sets the loading comments element visible in the view.\n * @private\n * @returns {Void} - Returns nothing\n */\n _setLoading() {\n const $container = $(\"> .comments-container\", this.$element);\n $(\"> .comments\", $container).addClass(\"hide\");\n $(\"> .loading-comments\", $container).removeClass(\"hide\");\n }\n\n /**\n * Event listener for the ordering links.\n * @private\n * @returns {Void} - Returns nothing\n */\n _onInitOrder() {\n this._stopPolling();\n this._setLoading();\n }\n\n /**\n * Event listener for the opinion toggle buttons.\n * @private\n * @param {Event} ev - The event object.\n * @returns {Void} - Returns nothing\n */\n _onToggleOpinion(ev) {\n let $btn = $(ev.target);\n if (!$btn.is(\".button\")) {\n $btn = $btn.parents(\".button\");\n }\n\n const $add = $btn.closest(\".add-comment\");\n const $form = $(\"form\", $add);\n const $opinionButtons = $(\".opinion-toggle .button\", $add);\n const $selectedState = $(\".opinion-toggle .selected-state\", $add);\n const $alignment = $(\".alignment-input\", $form);\n\n $opinionButtons.removeClass(\"is-active\").attr(\"aria-pressed\", \"false\");\n $btn.addClass(\"is-active\").attr(\"aria-pressed\", \"true\");\n\n if ($btn.is(\".opinion-toggle--ok\")) {\n $alignment.val(1);\n } else if ($btn.is(\".opinion-toggle--meh\")) {\n $alignment.val(0);\n } else if ($btn.is(\".opinion-toggle--ko\")) {\n $alignment.val(-1);\n }\n\n // Announce the selected state for the screen reader\n $selectedState.text($btn.data(\"selected-label\"));\n }\n\n /**\n * Event listener for the comment field text input.\n * @private\n * @param {Event} ev - The event object.\n * @returns {Void} - Returns nothing\n */\n _onTextInput(ev) {\n const $text = $(ev.target);\n const $add = $text.closest(\".add-comment\");\n const $form = $(\"form\", $add);\n const $submit = $(\"button[type='submit']\", $form);\n\n if ($text.val().length > 0) {\n $submit.removeAttr(\"disabled\");\n } else {\n $submit.attr(\"disabled\", \"disabled\");\n }\n }\n}\n","import {EmojiButton} from \"@joeattardi/emoji-button\";\n\n// eslint-disable-next-line require-jsdoc\nexport default function addInputEmoji() {\n const containers = document.querySelectorAll(\"[data-input-emoji]\");\n\n if (containers.length) {\n containers.forEach((elem) => {\n const picker = new EmojiButton({\n position: \"bottom-end\",\n rootElement: elem.closest(\"form\")?.parentElement || document.body,\n zIndex: 2000\n });\n\n // if the selector is inside a modal window\n // this allows shows the emoji menu uncut\n const reveal = elem.closest(\"[data-reveal]\")\n if (reveal) {\n reveal.style.overflowY = \"unset\"\n }\n\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"emoji__container\"\n const btnContainer = document.createElement(\"div\");\n btnContainer.className = \"emoji__trigger\"\n const btn = document.createElement(\"div\");\n btn.className = \"emoji__button\"\n btn.innerHTML = ''\n\n const parent = elem.parentNode;\n parent.insertBefore(wrapper, elem);\n wrapper.appendChild(elem);\n wrapper.appendChild(btnContainer);\n btnContainer.appendChild(btn);\n\n // The form errors need to be in the same container with the field they\n // belong to for Foundation Abide to show them automatically.\n parent.querySelectorAll(\".form-error\").forEach((el) => wrapper.appendChild(el));\n\n let handlerPicker = function () {\n picker.togglePicker(btnContainer);\n }\n\n btnContainer.addEventListener(\"click\", handlerPicker);\n\n elem.addEventListener(\"characterCounter\", (event) => {\n if (event.detail.remaining >= 4) {\n btnContainer.addEventListener(\"click\", handlerPicker);\n btnContainer.removeAttribute(\"style\");\n } else {\n btnContainer.removeEventListener(\"click\", handlerPicker);\n btnContainer.setAttribute(\"style\", \"color:lightgrey\");\n }\n });\n\n\n picker.on(\"emoji\", ({emoji}) => {\n elem.value += ` ${emoji} `\n\n const event = new Event(\"emoji.added\");\n elem.dispatchEvent(event);\n });\n })\n }\n};\n","/**\n * A method to enable the dialog mode for the given dialog(s).\n *\n * This should be called when the dialog is opened. It implements two things for\n * the dialog:\n * 1. It places the focus to the title element making sure the screen reader\n * focuses in the correct position of the document. Otherwise some screen\n * readers continue reading outside of the document.\n * 2. Document \"tab guards\" that force the keyboard focus within the modal when\n * the user is using keyboard or keyboard emulating devices for browsing the\n * document.\n *\n * The \"tab guards\" are added at the top and bottom of the document to keep the\n * user's focus within the dialog if they accidentally or intentionally place\n * the focus outside of the document, e.g. in different window or in the browser\n * address bar. They guard the focus on both sides of the document returning\n * focus back to the first or last focusable element within the dialog.\n *\n * @param {jQuery} $dialogs The jQuery element(s) to apply the mode for.\n * @return {Void} Nothing\n */\nexport default ($dialogs) => {\n $dialogs.each((_i, dialog) => {\n const $dialog = $(dialog);\n\n const $container = $(\"body\");\n const $title = $(\".reveal__title:first\", $dialog);\n\n if ($title.length > 0) {\n // Focus on the title to make the screen reader to start reading the\n // content within the modal.\n $title.attr(\"tabindex\", $title.attr(\"tabindex\") || -1);\n $title.trigger(\"focus\");\n }\n\n // Once the final modal closes, disable the focus guarding\n $dialog.off(\"closed.zf.reveal.focusguard\").on(\"closed.zf.reveal.focusguard\", () => {\n $dialog.off(\"closed.zf.reveal.focusguard\");\n\n // After the last dialog is closed, the tab guards should be removed.\n // This is done when the focus guard is disabled. If there is still a\n // visible reveal item in the DOM, make that the currently \"guarded\"\n // element. Note that there may be multiple dialogs open on top of each\n // other at the same time.\n const $visibleReveal = $(\".reveal:visible:last\", $container);\n if ($visibleReveal.length > 0) {\n window.focusGuard.trap($visibleReveal[0]);\n } else {\n window.focusGuard.disable();\n }\n });\n\n window.focusGuard.trap(dialog);\n });\n};\n","import { Keyboard } from \"foundation-sites\"\n\nconst focusGuardClass = \"focusguard\";\nconst focusableNodes = [\"A\", \"IFRAME\", \"OBJECT\", \"EMBED\"];\nconst focusableDisableableNodes = [\"BUTTON\", \"INPUT\", \"TEXTAREA\", \"SELECT\"];\n\nexport default class FocusGuard {\n constructor(container) {\n this.container = container;\n this.guardedElement = null;\n }\n\n trap(element) {\n if (this.guardedElement) {\n Keyboard.releaseFocus($(this.guardedElement));\n }\n\n this.enable();\n this.guardedElement = element;\n\n // Call the release focus first so that we don't accidentally add the\n // keyboard trap twice. Note that the Foundation methods expect the elements\n // to be jQuery elements which is why we pass them through jQuery.\n Keyboard.releaseFocus($(element));\n Keyboard.trapFocus($(element));\n }\n\n enable() {\n // Check if the guards already exists due to some other dialog\n const guards = this.container.querySelectorAll(`:scope > .${focusGuardClass}`);\n if (guards.length > 0) {\n // Make sure the guards are the first and last element as there have\n // been changes in the DOM.\n guards.forEach((guard) => {\n if (guard.dataset.position === \"start\") {\n this.container.prepend(guard);\n } else {\n this.container.append(guard);\n }\n })\n\n return;\n }\n\n // Add guards at the start and end of the document and attach their focus\n // listeners\n const startGuard = this.createFocusGuard(\"start\");\n const endGuard = this.createFocusGuard(\"end\");\n\n this.container.prepend(startGuard);\n this.container.append(endGuard);\n\n startGuard.addEventListener(\"focus\", () => this.handleContainerFocus(startGuard));\n endGuard.addEventListener(\"focus\", () => this.handleContainerFocus(endGuard));\n }\n\n disable() {\n const guards = this.container.querySelectorAll(`:scope > .${focusGuardClass}`);\n guards.forEach((guard) => guard.remove());\n\n if (this.guardedElement) {\n // Note that the Foundation methods expect the elements to be jQuery\n // elements which is why we pass them through jQuery.\n Keyboard.releaseFocus($(this.guardedElement));\n this.guardedElement = null;\n }\n }\n\n createFocusGuard(position) {\n const guard = document.createElement(\"div\");\n guard.className = focusGuardClass;\n guard.dataset.position = position;\n guard.tabIndex = 0;\n guard.setAttribute(\"aria-hidden\", \"true\");\n\n return guard;\n };\n\n handleContainerFocus(guard) {\n if (!this.guardedElement) {\n guard.blur();\n return;\n }\n\n const visibleNodes = Array.from(this.guardedElement.querySelectorAll(\"*\")).filter((item) => {\n return this.isVisible(item);\n });\n\n let target = null;\n if (guard.dataset.position === \"start\") {\n // Focus at the start guard, so focus the first focusable element after that\n for (let ind = 0; ind < visibleNodes.length; ind += 1) {\n if (!this.isFocusGuard(visibleNodes[ind]) && this.isFocusable(visibleNodes[ind])) {\n target = visibleNodes[ind];\n break;\n }\n }\n } else {\n // Focus at the end guard, so focus the first focusable element after that\n for (let ind = visibleNodes.length - 1; ind >= 0; ind -= 1) {\n if (!this.isFocusGuard(visibleNodes[ind]) && this.isFocusable(visibleNodes[ind])) {\n target = visibleNodes[ind];\n break;\n }\n }\n }\n\n if (target) {\n target.focus();\n } else {\n // If no focusable element was found, blur the guard focus\n guard.blur();\n }\n };\n\n isVisible(element) {\n return element.offsetWidth > 0 || element.offsetHeight > 0;\n }\n\n isFocusGuard(element) {\n return element.classList.contains(focusGuardClass);\n }\n\n isFocusable(element) {\n if (focusableNodes.indexOf(element.nodeName) > -1) {\n return true;\n }\n if (focusableDisableableNodes.indexOf(element.nodeName) > -1 || element.getAttribute(\"contenteditable\")) {\n if (element.getAttribute(\"disabled\")) {\n return false;\n }\n return true;\n }\n\n const tabindex = parseInt(element.getAttribute(\"tabindex\"), 10);\n if (!isNaN(tabindex) && tabindex >= 0) {\n return true;\n }\n\n return false;\n }\n}\n","/* eslint-disable no-invalid-this */\n\nimport svg4everybody from \"svg4everybody\"\nimport formDatePicker from \"src/decidim/form_datepicker\"\nimport fixDropdownMenus from \"src/decidim/dropdowns_menus\"\nimport createQuillEditor from \"src/decidim/editor\"\nimport Configuration from \"src/decidim/configuration\"\nimport ExternalLink from \"src/decidim/external_link\"\nimport updateExternalDomainLinks from \"src/decidim/external_domain_warning\"\nimport InputCharacterCounter from \"src/decidim/input_character_counter\"\nimport FormValidator from \"src/decidim/form_validator\"\nimport CommentsComponent from \"src/decidim/comments/comments.component\"\nimport DataPicker from \"src/decidim/data_picker\"\nimport FormFilterComponent from \"src/decidim/form_filter\"\nimport addInputEmoji from \"src/decidim/input_emoji\"\nimport dialogMode from \"src/decidim/dialog_mode\"\nimport FocusGuard from \"src/decidim/focus_guard\"\nimport backToListLink from \"src/decidim/back_to_list\"\n\nwindow.Decidim = window.Decidim || {};\nwindow.Decidim.config = new Configuration()\nwindow.Decidim.ExternalLink = ExternalLink;\nwindow.Decidim.InputCharacterCounter = InputCharacterCounter;\nwindow.Decidim.FormValidator = FormValidator;\nwindow.Decidim.DataPicker = DataPicker;\nwindow.Decidim.CommentsComponent = CommentsComponent;\nwindow.Decidim.addInputEmoji = addInputEmoji;\n\n$(() => {\n window.theDataPicker = new DataPicker($(\".data-picker\"));\n window.focusGuard = new FocusGuard(document.querySelector(\"body\"));\n\n $(document).foundation();\n $(document).on(\"open.zf.reveal\", (ev) => {\n dialogMode($(ev.target));\n });\n\n // Trap the focus within the mobile menu if the user enters it. This is an\n // accessibility feature forcing the focus within the offcanvas container\n // which holds the mobile menu.\n $(\"#offCanvas\").on(\"openedEnd.zf.offCanvas\", (ev) => {\n ev.target.querySelector(\".main-nav a\").focus();\n window.focusGuard.trap(ev.target);\n }).on(\"closed.zf.offCanvas\", () => {\n window.focusGuard.disable();\n });\n\n fixDropdownMenus();\n\n svg4everybody();\n\n // Prevent data-open buttons e.g. from submitting the underlying form in\n // authorized action buttons.\n $(\"[data-open]\").on(\"click\", (event) => {\n event.preventDefault();\n });\n\n formDatePicker();\n\n $(\".editor-container\").each((_idx, container) => {\n createQuillEditor(container);\n });\n\n $('a[target=\"_blank\"]').each((_i, elem) => {\n const $link = $(elem);\n $link.data(\"external-link\", new ExternalLink($link));\n });\n\n // Mount comments component\n $(\"[data-decidim-comments]\").each((_i, el) => {\n const $el = $(el);\n const comments = new CommentsComponent($el, $el.data(\"decidim-comments\"));\n comments.mountComponent();\n $(el).data(\"comments\", comments);\n });\n\n $(\"form.new_filter\").each(function () {\n const formFilter = new FormFilterComponent($(this));\n\n formFilter.mountComponent();\n })\n\n updateExternalDomainLinks($(\"body\"))\n\n addInputEmoji()\n\n backToListLink(document.querySelectorAll(\".js-back-to-list\"));\n});\n","/**\n * Changes \"Back to list\" links to the one saved in sessionStorage API\n * To apply this to a link, at least one element must have the class \"js-back-to-list\".\n * For this to work it needs the filteredParams in SessionStorage, that's saved on FormFilterComponent.\n * @param {NodeList} links - Hyperlinks elements that point to the filters page that will use the fitererd params\n * @returns {void}\n */\nexport default function backToListLink(links) {\n\n if (!links) {\n return;\n }\n\n if (!window.sessionStorage) {\n return;\n }\n\n const filteredParams = JSON.parse(sessionStorage.getItem(\"filteredParams\")) || {};\n links.forEach((link) => {\n const href = link.getAttribute(\"href\");\n if (filteredParams[href]) {\n link.setAttribute(\"href\", filteredParams[href]);\n }\n });\n\n}\n","import select from \"select\";\n\n/**\n * This provides functionality to add clipboard copy functionality to buttons\n * on the page. The element to be copied from has to be defined for the button\n * using a `data` attribute and the target element has to be a form input.\n *\n * Usage:\n * 1. Create the button:\n * \n *\n * 2. Make sure the target element exists on the page:\n * \n *\n * Options through data attributes:\n * - `data-clipboard-copy` = The jQuery selector for the target input element\n * where text will be copied from.\n * - `data-clipboard-copy-label` = The label that will be shown in the button\n * after a succesful copy.\n * - `data-clipboard-copy-message` = The text that will be announced to screen\n * readers after a successful copy.\n */\n\n// How long the \"copied\" text is shown in the copy element after successful\n// copy.\nconst CLIPBOARD_COPY_TIMEOUT = 5000;\n\n$(() => {\n $(document).on(\"click\", \"[data-clipboard-copy]\", (ev) => {\n const $el = $(ev.target);\n if (!$el.data(\"clipboard-copy\") || $el.data(\"clipboard-copy\").length < 1) {\n return;\n }\n\n const $input = $($el.data(\"clipboard-copy\"));\n if ($input.length < 1 || !$input.is(\"input, textarea, select\")) {\n return;\n }\n\n // Get the available text to clipboard.\n const selectedText = select($input[0]);\n if (!selectedText || selectedText.length < 1) {\n return;\n }\n\n // Move the selected text to clipboard.\n const $temp = $(``).css({\n width: 1,\n height: 1\n });\n $el.after($temp);\n $temp.select();\n\n const copyDone = () => {\n $temp.remove();\n $el.focus();\n };\n try {\n // document.execCommand is deprecated but the Clipboard API is not\n // supported by IE (which unfortunately is still a thing).\n if (!document.execCommand(\"copy\")) {\n return;\n }\n } catch (err) {\n copyDone();\n return;\n }\n copyDone();\n\n // Change the label to indicate the copying was successful.\n const label = $el.data(\"clipboard-copy-label\");\n if (label) {\n let to = $el.data(\"clipboard-copy-label-timeout\");\n if (to) {\n clearTimeout(to);\n }\n\n if (!$el.data(\"clipboard-copy-label-original\")) {\n $el.data(\"clipboard-copy-label-original\", $el.html());\n }\n\n $el.html(label);\n to = setTimeout(() => {\n $el.html($el.data(\"clipboard-copy-label-original\"));\n $el.removeData(\"clipboard-copy-label-original\");\n $el.removeData(\"clipboard-copy-label-timeout\");\n }, CLIPBOARD_COPY_TIMEOUT);\n $el.data(\"clipboard-copy-label-timeout\", to)\n }\n\n // Alert the screen reader what just happened (the link was copied).\n let message = $el.data(\"clipboard-copy-message\");\n if (message) {\n let $msg = $el.data(\"clipboard-message-element\");\n if ($msg) {\n if ($msg.html() === message) {\n // Try to hint the screen reader to re-read the text in the message\n // element.\n message += \" \";\n }\n } else {\n $msg = $('
    ');\n $el.after($msg);\n $el.data(\"clipboard-message-element\", $msg);\n }\n\n // Add the non breaking space always to content to try to force the\n // screen reader to reannounce the added text.\n $msg.html(message);\n }\n });\n});\n","import \"@zeitiger/appendaround\"\n\n$(() => {\n let $appendableElements = $(\".js-append\");\n $appendableElements.appendAround();\n})\n","import Rails from \"@rails/ujs\";\n\n// Make the remote form submit buttons disabled when the form is being\n// submitted to avoid multiple submits.\ndocument.addEventListener(\"ajax:beforeSend\", (ev) => {\n if (!ev.target.matches(\"form[data-remote]\")) {\n return;\n }\n\n ev.target.querySelectorAll(\"[type=submit]\").forEach((submit) => {\n submit.disabled = true;\n });\n});\ndocument.addEventListener(\"ajax:complete\", (ev) => {\n if (!ev.target.matches(\"form[data-remote]\")) {\n return;\n }\n\n ev.target.querySelectorAll(\"[type=submit]\").forEach((submit) => {\n submit.disabled = false;\n });\n});\n\n// The forms that are attached to Foundation Abide do not work properly with\n// Rails UJS Ajax forms that have the `data-remote` attribute attached to\n// them. The reason is that in case Foundation Abide sees the form as valid,\n// it will submit it normally bypassing the Rails UJS functionality.\n// The submit events happens through jQuery in Foundation Abide which is why\n// we need to bind the event with jQuery.\n$(document).on(\"submit\", \"form[data-remote][data-abide]\", (ev) => {\n ev.preventDefault();\n\n if (ev.target.querySelectorAll(\"[data-invalid]\").length > 0) {\n return;\n }\n\n Reflect.apply(Rails.handleRemote, ev.target, [ev]);\n});\n","/* eslint-disable no-invalid-this */\n\nimport Foundation from \"foundation-sites\"\n\n$(() => {\n // True if small devices\n if (!Foundation.MediaQuery.atLeast(\"medium\")) {\n const $speaker = $(\".js-conference\")\n\n $speaker.hover(function () {\n const top = $(window).scrollTop() + ($(window).height() * 0.1)\n $(this).find(\".js-bio\").css(\"top\", top)\n })\n }\n});\n","import { pushState, registerCallback } from \"src/decidim/history\"\n\nconst initializeListingOptionsMenu = (options) => {\n $(document).on(\"click\", `${options.containerSelector} a`, (event) => {\n const $target = $(event.target);\n\n $target.parents(\".menu\").find(\"a:first\").text($target.text());\n\n pushState($target.attr(\"href\"));\n })\n\n registerCallback(options.callbackName, () => {\n const url = window.location.toString();\n const match = url.match(/${options.urlParameter}=([^&]*)/);\n const $targetMenu = $(`${options.containerSelector} .menu`);\n let value = $targetMenu.find(\".menu a:first\").data(options.dataAttribute);\n\n if (match) {\n value = match[1];\n }\n\n const linkText = $targetMenu.find(`.menu a[data-${options.dataAttribute}=\"${value}\"]`).text();\n\n $targetMenu.find(\"a:first\").text(linkText);\n });\n};\n\n$(() => {\n initializeListingOptionsMenu({\n containerSelector: \".order-by\",\n callbackName: \"orders\",\n urlParameter: \"order\",\n dataAttribute: \"order\"\n });\n initializeListingOptionsMenu({\n containerSelector: \".results-per-page\",\n callbackName: \"results_per_page\",\n urlParameter: \"per_page\",\n dataAttribute: \"per-page-option\"\n });\n});\n","import moment from \"moment\"\n\n$(() => {\n const $impersonationWarning = $(\".impersonation-warning\");\n if ($impersonationWarning.length) {\n const endsAt = moment($impersonationWarning.data(\"session-ends-at\"));\n const exitInterval = setInterval(() => {\n const diff = (endsAt - moment()) / 60000;\n const diffInMinutes = Math.round(diff);\n $impersonationWarning.find(\".minutes\").html(diffInMinutes);\n\n if (diff <= 0) {\n window.location.reload();\n }\n }, 1000);\n\n // Prevent reload when page is already unloading, otherwise it may cause infinite reloads.\n window.addEventListener(\"beforeunload\", () => {\n clearInterval(exitInterval);\n return;\n });\n }\n});\n","// This file is compiled inside Decidim core pack. Code can be added here and will be executed\n// as part of that pack\n\n// Load images\nrequire.context(\"../../images\", true)\n\nimport \"./map_customization\"\n","/* eslint no-unused-vars: 0 */\n/* eslint id-length: [\"error\", { \"exceptions\": [\"$\"] }] */\n\nimport $ from \"jquery\"\nimport Quill from \"quill\"\nimport Rails from \"@rails/ujs\"\n\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\nimport morphdom from \"morphdom\"\n// Export variable to make it available in .js.erb templates\nwindow.morphdom = morphdom\nimport \"src/decidim/vendor/foundation-datepicker\"\nimport \"src/decidim/foundation_datepicker_locales\"\nimport \"src/decidim/vendor/modernizr\"\nimport \"src/decidim/vendor/social-share-button\"\nimport \"social-share-button\"\n\nimport \"src/decidim/input_tags\"\nimport \"src/decidim/input_hashtags\"\nimport \"src/decidim/input_mentions\"\nimport \"src/decidim/input_multiple_mentions\"\nimport \"src/decidim/input_character_counter\"\nimport \"src/decidim/input_autojump\"\nimport \"src/decidim/index\"\nimport \"src/decidim/history\"\nimport \"src/decidim/callout\"\nimport \"src/decidim/clipboard\"\nimport \"src/decidim/append_elements\"\nimport \"src/decidim/user_registrations\"\nimport \"src/decidim/account_form\"\nimport \"src/decidim/data_picker\"\nimport \"src/decidim/dropdowns_menus\"\nimport \"src/decidim/append_redirect_url_to_modals\"\nimport \"src/decidim/form_attachments\"\nimport \"src/decidim/form_validator\"\nimport \"src/decidim/form_remote\"\nimport \"src/decidim/ajax_modals\"\nimport \"src/decidim/conferences\"\nimport \"src/decidim/tooltip_keep_on_hover\"\nimport \"src/decidim/diff_mode_dropdown\"\nimport \"src/decidim/conversations\"\nimport \"src/decidim/delayed\"\nimport \"src/decidim/icon\"\nimport \"src/decidim/vizzs\"\nimport \"src/decidim/responsive_horizontal_tabs\"\nimport \"src/decidim/security/selfxss_warning\"\nimport \"src/decidim/session_timeouter\"\nimport \"src/decidim/configuration\"\nimport \"src/decidim/floating_help\"\nimport \"src/decidim/confirm\"\nimport \"src/decidim/comments/comments\"\nimport \"src/decidim/results_listing\"\nimport \"src/decidim/represent_user_group\"\nimport \"src/decidim/impersonation\"\nimport \"src/decidim/start_conversation_dialog\"\nimport \"src/decidim/notifications\"\nimport \"src/decidim/identity_selector_dialog\"\nimport \"src/decidim/gallery\"\nimport \"src/decidim/back_to_list\"\n\n// CSS\nimport \"entrypoints/decidim_core.scss\"\n\n// Import from the Rails instance application\nimport \"src/decidim/decidim_application\"\n\n// Images\nrequire.context(\"../images\", true)\n\n// This needs to be loaded after confirm dialog to bind properly\nRails.start()\n\n","/**\n * Since the delete account has a modal to confirm it we need to copy the content of the\n * reason field to the hidden field in the form inside the modal.\n */\n$(() => {\n const $deleteAccountForm = $(\".delete-account\");\n const $deleteAccountModalForm = $(\".delete-account-modal\");\n\n if ($deleteAccountForm.length > 0) {\n const $openModalButton = $(\".open-modal-button\");\n const $modal = $(\"#deleteConfirm\");\n\n $openModalButton.on(\"click\", (event) => {\n try {\n const reasonValue = $deleteAccountForm.find(\"textarea#delete_account_delete_reason\").val();\n $deleteAccountModalForm.find(\"input#delete_account_delete_reason\").val(reasonValue);\n $modal.foundation(\"open\");\n } catch (error) {\n console.error(error); // eslint-disable-line no-console\n }\n\n event.preventDefault();\n event.stopPropagation();\n return false;\n });\n }\n});\n","/* eslint-disable multiline-ternary, no-ternary */\n\n/*\n *\n * This is used to make sure users are redirected to\n * the expected URL after sign in.\n *\n * When a button or link trigger a login modal we capture\n * the event and inject the URL where the user should\n * be redirected after sign in (the redirect_url param).\n *\n * The code is injected to any form or link in the modal\n * and when the modal is closed we remove the injected\n * code.\n *\n * In order for this to work the button or link must have\n * a data-open attribute with the ID of the modal to open\n * and a data-redirect-url attribute with the URL to redirect\n * the user. If any of this is missing no code will be\n * injected.\n *\n */\n$(() => {\n const removeUrlParameter = (url, parameter) => {\n const urlParts = url.split(\"?\");\n\n if (urlParts.length >= 2) {\n // Get first part, and remove from array\n const urlBase = urlParts.shift();\n\n // Join it back up\n const queryString = urlParts.join(\"?\");\n\n const prefix = `${encodeURIComponent(parameter)}=`;\n const parts = queryString.split(/[&;]/g);\n\n // Reverse iteration as may be destructive\n for (let index = parts.length - 1; index >= 0; index -= 1) {\n // Idiom for string.startsWith\n if (parts[index].lastIndexOf(prefix, 0) !== -1) {\n parts.splice(index, 1);\n }\n }\n\n if (parts.length === 0) {\n return urlBase;\n }\n\n return `${urlBase}?${parts.join(\"&\")}`;\n }\n\n return url;\n }\n\n $(document).on(\"click.zf.trigger\", (event) => {\n const target = `#${$(event.target).data(\"open\")}`;\n const redirectUrl = $(event.target).data(\"redirectUrl\");\n\n if (target && redirectUrl) {\n $(\"\").\n attr(\"id\", \"redirect_url\").\n attr(\"name\", \"redirect_url\").\n attr(\"value\", redirectUrl).\n appendTo(`${target} form`);\n\n $(`${target} a`).attr(\"href\", (index, href) => {\n const querystring = jQuery.param({\"redirect_url\": redirectUrl});\n return href + (href.match(/\\?/) ? \"&\" : \"?\") + querystring;\n });\n }\n });\n\n $(document).on(\"closed.zf.reveal\", (event) => {\n $(\"#redirect_url\", event.target).remove();\n $(\"a\", event.target).attr(\"href\", (index, href) => {\n if (href && href.indexOf(\"redirect_url\") !== -1) {\n return removeUrlParameter(href, \"redirect_url\");\n }\n\n return href;\n });\n });\n});\n","/**\n * Improves the accessibility of the callout messages for screen readers. Not\n * all screen readers would announce the callout alert contents after the page\n * reload without this.\n */\n\n$(() => {\n const $callout = $('.callout[role=\"alert\"]:first');\n if ($callout.length > 0) {\n setTimeout(() => {\n // The content insertion is to try to hint some of the screen readers\n // that the alert content has changed and needs to be announced.\n $callout.attr(\"tabindex\", \"0\").focus().html(`${$callout.html()} `);\n }, 500);\n }\n});\n","/**\n * Scroll smoothly to the last message automatically when the page is fully loaded.\n * To apply this to a page, at least one element must have the class \"scroll-to-last-message\".\n * @returns {void}\n */\nconst scrollToLastMessage = function() {\n if ($(\".scroll-to-last-message\").length > 0) {\n window.scrollTo({\n top: $(\".conversation-chat:last-child\").offset().top,\n behavior: \"smooth\"\n });\n }\n}\n\n$(document).ready(() => {\n scrollToLastMessage();\n});\n","$(() => {\n const $allDiffViews = $(\".row.diff_view\");\n\n $(document).on(\"click\", \".diff-view-by a.diff-view-mode\", (event) => {\n event.preventDefault();\n const $target = $(event.target)\n let type = \"escaped\";\n const $selected = $target.parents(\".is-dropdown-submenu-parent\").find(\"#diff-view-selected\");\n if ($selected.text().trim() === $target.text().trim()) {\n return;\n }\n\n $selected.text($target.text());\n\n if ($target.attr(\"id\") === \"diff-view-unified\") {\n if ($(\".row.diff_view_split_escaped\").hasClass(\"hide\")) {\n type = \"unescaped\";\n }\n\n $allDiffViews.addClass(\"hide\");\n $(`.row.diff_view_unified_${type}`).removeClass(\"hide\");\n }\n if ($target.attr(\"id\") === \"diff-view-split\") {\n if ($(\".row.diff_view_unified_escaped\").hasClass(\"hide\")) {\n type = \"unescaped\";\n }\n\n $allDiffViews.addClass(\"hide\");\n $(`.row.diff_view_split_${type}`).removeClass(\"hide\");\n }\n })\n\n $(document).on(\"click\", \".diff-view-by a.diff-view-html\", (event) => {\n event.preventDefault();\n const $target = $(event.target);\n $target.parents(\".is-dropdown-submenu-parent\").find(\"#diff-view-html-selected\").text($target.text());\n const $visibleDiffViewsId = $allDiffViews.not(\".hide\").first().attr(\"id\").split(\"_\").slice(1, -1).join(\"_\");\n const $visibleDiffViews = $allDiffViews.filter(`[id*=${$visibleDiffViewsId}]`)\n\n if ($target.attr(\"id\") === \"diff-view-escaped-html\") {\n $visibleDiffViews.filter(\"[id$=_unescaped]\").addClass(\"hide\");\n $visibleDiffViews.filter(\"[id$=_escaped]\").removeClass(\"hide\");\n }\n if ($target.attr(\"id\") === \"diff-view-unescaped-html\") {\n $visibleDiffViews.filter(\"[id$=_escaped]\").addClass(\"hide\");\n $visibleDiffViews.filter(\"[id$=_unescaped]\").removeClass(\"hide\");\n }\n })\n});\n","$(function() {\n if (!window.localStorage) {\n return;\n }\n\n let getDismissedHelpers = () => {\n let serialized = localStorage.getItem(\"dismissedHelpers\");\n if (!serialized) {\n return [];\n }\n\n return serialized.split(\",\");\n };\n\n let addDismissedHelper = (id) => {\n let dismissedHelpers = getDismissedHelpers();\n\n if (!dismissedHelpers.includes(id)) {\n localStorage.setItem(\n \"dismissedHelpers\",\n [...dismissedHelpers, id].join(\",\")\n );\n }\n };\n\n let dismissedHelpers = getDismissedHelpers();\n\n $(\".floating-helper-container\").each((_index, elem) => {\n let id = $(elem).data(\"help-id\");\n\n $(\n \".floating-helper__trigger, .floating-helper__content-close\",\n elem\n ).on(\"click\", (ev) => {\n ev.preventDefault();\n });\n\n if (!dismissedHelpers.includes(id)) {\n $(\".floating-helper\", elem).foundation(\"toggle\");\n $(\".floating-helper__wrapper\", elem).foundation(\"toggle\");\n\n $(\".floating-helper\", elem).on(\"off.zf.toggler\", () => {\n addDismissedHelper(id);\n });\n }\n });\n});\n","$(() => {\n $(\"form .attachments_container\").on(\"closed.zf.callout\", (event) => {\n $(event.target).remove();\n });\n});\n","/* eslint-disable require-jsdoc */\n/* eslint-disable no-prototype-builtins, no-restricted-syntax, no-param-reassign */\n\nlet callbacks = {};\n\nexport default function registerCallback(callbackId, callback) {\n callbacks[callbackId] = callback;\n}\n\nconst unregisterCallback = (callbackId) => {\n callbacks[callbackId] = null;\n}\n\nconst pushState = (url, state = null) => {\n if (window.history) {\n window.history.pushState(state, null, url);\n }\n};\n\nconst replaceState = (url, state = null) => {\n if (window.history) {\n window.history.replaceState(state, null, url);\n }\n};\n\nconst state = () => {\n if (window.history) {\n return window.history.state;\n }\n return null;\n};\n\nwindow.onpopstate = (event) => {\n // Ensure the event is caused by user action\n if (event.isTrusted) {\n for (let callbackId in callbacks) {\n if (callbacks.hasOwnProperty(callbackId)) {\n callbacks[callbackId](event.state);\n }\n }\n }\n}\n\nexport { registerCallback, unregisterCallback, pushState, replaceState, state };\n","/**\n * Makes the #select-identity-button to open a popup for the user to\n * select with which identity he wants to perform an action.\n *\n */\n$(() => {\n let button = $(\"#select-identity-button\"),\n identitiesUrl = null,\n userIdentitiesDialog = $(\"#user-identities\");\n\n if (userIdentitiesDialog.length) {\n identitiesUrl = userIdentitiesDialog.data(\"reveal-identities-url\");\n\n button.click(function () {\n $.ajax(identitiesUrl).done(function(response) {\n userIdentitiesDialog.html(response).foundation(\"open\");\n button.trigger(\"ajax:success\")\n });\n });\n }\n});\n\n\n/**\n * Manage the identity selector for endorsements.\n *\n */\n$(() => {\n $(\"#select-identity-button\").on(\"ajax:success\", function() {\n // once reveal popup has been rendered register event callbacks\n $(\"#user-identities ul.reveal__list li\").each(function(index, elem) {\n let liTag = $(elem)\n liTag.on(\"click\", function() {\n let method = liTag.data(\"method\"),\n urlDataAttr = null;\n if (method === \"POST\") {\n urlDataAttr = \"create_url\";\n } else {\n urlDataAttr = \"destroy_url\";\n }\n $.ajax({\n url: liTag.data(urlDataAttr),\n method: method,\n dataType: \"script\",\n success: function() {\n if (liTag.hasClass(\"selected\")) {\n liTag.removeClass(\"selected\")\n liTag.find(\".icon--circle-check\").addClass(\"invisible\")\n liTag.data(\"method\", \"POST\")\n } else {\n liTag.addClass(\"selected\")\n liTag.find(\".icon--circle-check\").removeClass(\"invisible\")\n liTag.data(\"method\", \"DELETE\")\n }\n }\n })\n })\n });\n });\n})\n","$(() => {\n const $inputs = $(\"input[data-autojump]\");\n const DELETE_KEY_CODE = 8;\n\n // Initialize\n $inputs.on(\"keydown\", (event) => {\n // Don't do anything if there is selected text\n if (event.target.selectionStart !== event.target.selectionEnd) {\n return;\n }\n\n if (event.originalEvent.key.length === 1 && event.target.dataset.jumpNext) {\n if (\n event.target.value.length ===\n parseInt(event.target.dataset.maxLength, 10)\n ) {\n event.preventDefault();\n setTimeout(() => {\n const next = $(event.target.dataset.jumpNext);\n next.val(event.originalEvent.key);\n next.trigger(\"focus\");\n }, 1);\n }\n } else if (\n event.originalEvent.keyCode === DELETE_KEY_CODE &&\n event.target.dataset.jumpPrev\n ) {\n if (event.target.value.length === 0) {\n event.preventDefault();\n setTimeout(() => {\n const prev = $(event.target.dataset.jumpPrev);\n prev.val(prev.val().slice(0, -1));\n prev.trigger(\"focus\");\n }, 1);\n }\n }\n });\n});\n","$(() => {\n const $notificationsBellIcon = $(\".title-bar .topbar__notifications\");\n const $wrapper = $(\".wrapper\");\n const $section = $wrapper.find(\"#notifications\");\n const $noNotificationsText = $(\".empty-notifications\");\n const $pagination = $wrapper.find(\"ul.pagination\");\n const FADEOUT_TIME = 500;\n\n const anyNotifications = () => $wrapper.find(\".card--widget\").length > 0;\n const emptyNotifications = () => {\n if (!anyNotifications()) {\n $section.remove();\n $noNotificationsText.removeClass(\"hide\");\n }\n };\n\n $section.on(\"click\", \".mark-as-read-button\", (event) => {\n const $item = $(event.target).parents(\".card--widget\");\n $item.fadeOut(FADEOUT_TIME, () => {\n $item.remove();\n emptyNotifications();\n });\n });\n\n $wrapper.on(\"click\", \".mark-all-as-read-button\", () => {\n $section.fadeOut(FADEOUT_TIME, () => {\n $pagination.remove();\n $notificationsBellIcon.removeClass(\"is-active\");\n $wrapper.find(\".card--widget\").remove();\n emptyNotifications();\n });\n });\n\n emptyNotifications();\n});\n","$(() => {\n const $checkbox = $(\".represent-user-group\").find(\"input#user_group\");\n const $userGroupFields = $(\".user-group-fields\");\n\n $checkbox.click(() => {\n const $select = $userGroupFields.find(\"select\");\n\n if (!$select.val()) {\n $userGroupFields.toggle();\n }\n\n if ($userGroupFields.is(\":visible\")) {\n $checkbox.prop(\"checked\", true);\n } else {\n $checkbox.prop(\"checked\", false);\n }\n });\n});\n","$(() => {\n const $responsiveTabBlock = $(\".responsive-tab-block\");\n\n $responsiveTabBlock.click((event) => {\n if (event.target.closest(\".is-active\") !== null) {\n event.preventDefault();\n if (window.innerWidth <= 639) {\n $responsiveTabBlock.toggleClass(\"expanded\");\n }\n }\n });\n});\n","/* eslint-disable no-console */\n\n$(() => {\n if (!console) {\n return;\n }\n\n const allMessages = window.Decidim.config.get(\"messages\");\n if (!allMessages) {\n return;\n }\n const messages = allMessages.selfxssWarning;\n\n console.log(`%c${messages.title}`, \"color:#f00;font-weight:bold;font-size:50px;\");\n console.log(`%c${messages.description}`, \"font-size:24px;\");\n});\n","$(() => {\n let addUsersConversationDialog = $(\"#user-conversations-add-modal\"),\n button = $(\"#start-conversation-dialog-button\");\n\n /* eslint no-unused-vars: 0 */\n if (addUsersConversationDialog.length) {\n let refreshUrl = addUsersConversationDialog.data(\"refresh-url\");\n\n button.click(function () {\n addUsersConversationDialog.foundation(\"open\");\n });\n }\n});\n","/* eslint-disable no-invalid-this */\n\n$(() => {\n\n // Foundation requires plugins to be initializated\n setTimeout(function() {\n\n const $tooltips = $(\".tooltip\")\n\n $tooltips.\n on(\"mouseover\", function() {\n $(`[data-keep-on-hover='true'][data-toggle='${this.id}']`).foundation(\"show\");\n }).\n on(\"mouseout\", function() {\n $(`[data-keep-on-hover='true'][data-toggle='${this.id}']`).foundation(\"hide\");\n })\n }, 0);\n});\n","$(() => {\n const $userRegistrationForm = $(\"#register-form\");\n const $userGroupFields = $userRegistrationForm.find(\".user-group-fields\");\n const inputSelector = 'input[name=\"user[sign_up_as]\"]';\n const newsletterSelector = 'input[type=\"checkbox\"][name=\"user[newsletter]\"]';\n const $newsletterModal = $(\"#sign-up-newsletter-modal\");\n\n\n const setGroupFieldsVisibility = (value) => {\n if (value === \"user\") {\n $userGroupFields.hide();\n } else {\n $userGroupFields.show();\n }\n }\n\n const checkNewsletter = (check) => {\n $userRegistrationForm.find(newsletterSelector).prop(\"checked\", check);\n $newsletterModal.data(\"continue\", true);\n $newsletterModal.foundation(\"close\");\n $userRegistrationForm.submit();\n }\n\n setGroupFieldsVisibility($userRegistrationForm.find(`${inputSelector}:checked`).val());\n\n $userRegistrationForm.on(\"change\", inputSelector, (event) => {\n const value = event.target.value;\n\n setGroupFieldsVisibility(value);\n });\n\n $userRegistrationForm.on(\"submit\", (event) => {\n const newsletterChecked = $userRegistrationForm.find(newsletterSelector);\n if (!$newsletterModal.data(\"continue\")) {\n if (!newsletterChecked.prop(\"checked\")) {\n event.preventDefault();\n $newsletterModal.foundation(\"open\");\n }\n }\n });\n\n $newsletterModal.find(\".check-newsletter\").on(\"click\", (event) => {\n checkNewsletter($(event.target).data(\"check\"));\n });\n});\n","/* eslint-disable */\n\n/*! modernizr 3.3.1 (Custom Build) | MIT *\n * https://modernizr.com/download/?-setclasses !*/\n!function(n,e,s){function o(n,e){return typeof n===e}function a(){var n,e,s,a,i,l,r;for(var c in f)if(f.hasOwnProperty(c)){if(n=[],e=f[c],e.name&&(n.push(e.name.toLowerCase()),e.options&&e.options.aliases&&e.options.aliases.length))for(s=0;s - The MIT license\n * Originally copied fom https://github.com/huacnlee/social-share-button\n * Transformed from Coffescript to Javascipt with decaffeintate\n *\n * We've copied itlocally so it works with webpacker\n *\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * DS205: Consider reworking code to avoid use of IIFEs\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nwindow.SocialShareButton = {\n openUrl(url, width, height) {\n if (width === null) {\n width = 640;\n }\n if (height === null) {\n height = 480;\n }\n const left = (screen.width / 2) - (width / 2);\n const top = (screen.height * 0.3) - (height / 2);\n const opt = `width=${width},height=${height},left=${left},top=${top},menubar=no,status=no,location=no`;\n window.open(url, \"popup\", opt);\n return false;\n },\n\n share(el) {\n if (el.getAttribute === null) {\n el = document.querySelector(el);\n }\n\n const site = el.getAttribute(\"data-site\");\n const appkey = el.getAttribute(\"data-appkey\") || \"\";\n const $parent = el.parentNode;\n let title = encodeURIComponent(el.getAttribute(`data-${site}-title`) || $parent.getAttribute(\"data-title\") || \"\");\n const img = encodeURIComponent($parent.getAttribute(\"data-img\") || \"\");\n let url = encodeURIComponent($parent.getAttribute(\"data-url\") || \"\");\n const via = encodeURIComponent($parent.getAttribute(\"data-via\") || \"\");\n const desc = encodeURIComponent($parent.getAttribute(\"data-desc\") || \" \");\n\n // tracking click events if google analytics enabled\n const ga = window[window.GoogleAnalyticsObject || \"ga\"];\n if (typeof ga === \"function\") {\n ga(\"send\", \"event\", \"Social Share Button\", \"click\", site);\n }\n\n if (url.length === 0) {\n url = encodeURIComponent(location.href);\n }\n switch (site) {\n case \"email\":\n location.href = `mailto:?subject=${title}&body=${url}`;\n break;\n case \"weibo\":\n this.openUrl(`http://service.weibo.com/share/share.php?url=${url}&type=3&pic=${img}&title=${title}&appkey=${appkey}`, 620, 370);\n break;\n case \"twitter\": {\n let hashtags = encodeURIComponent(el.getAttribute(`data-${site}-hashtags`) || $parent.getAttribute(\"data-hashtags\") || \"\");\n let viaStr = \"\";\n if (via.length > 0) {\n viaStr = `&via=${via}`;\n }\n this.openUrl(`https://twitter.com/intent/tweet?url=${url}&text=${title}&hashtags=${hashtags}${viaStr}`, 650, 300);\n break;\n }\n case \"douban\":\n this.openUrl(`http://shuo.douban.com/!service/share?href=${url}&name=${title}&image=${img}&sel=${desc}`, 770, 470);\n break;\n case \"facebook\":\n this.openUrl(`http://www.facebook.com/sharer/sharer.php?u=${url}`, 555, 400);\n break;\n case \"qq\":\n this.openUrl(`http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=${url}&title=${title}&pics=${img}&summary=${desc}&site=${appkey}`);\n break;\n case \"google_bookmark\":\n this.openUrl(`https://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk=${url}&title=${title}`);\n break;\n case \"delicious\":\n this.openUrl(`https://del.icio.us/save?url=${url}&title=${title}&jump=yes&pic=${img}`);\n break;\n case \"pinterest\":\n this.openUrl(`http://www.pinterest.com/pin/create/button/?url=${url}&media=${img}&description=${title}`);\n break;\n case \"linkedin\":\n this.openUrl(`https://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${title}&summary=${desc}`);\n break;\n case \"xing\":\n this.openUrl(`https://www.xing.com/spi/shares/new?url=${url}`);\n break;\n case \"vkontakte\":\n this.openUrl(`http://vk.com/share.php?url=${url}&title=${title}&image=${img}`);\n break;\n case \"odnoklassniki\":\n this.openUrl(`https://connect.ok.ru/offer?url=${url}&title=${title}&description=${desc}&imageUrl=${img}`);\n break;\n case \"wechat\":\n if (!window.SocialShareWeChatButton) {\n throw new Error(\"You should require social-share-button/wechat to your application.js\");\n }\n window.SocialShareWeChatButton.qrcode({\n url: decodeURIComponent(url),\n header: el.getAttribute(\"title\"),\n footer: el.getAttribute(\"data-wechat-footer\")\n });\n break;\n\n case \"tumblr\": {\n let getTumblrExtra = (param) => {\n const cutomData = el.getAttribute(`data-${param}`);\n if (cutomData) {\n return encodeURIComponent(cutomData);\n }\n };\n\n let tumblrParams = () => {\n const path = getTumblrExtra(\"type\") || \"link\";\n\n const params = (() => {\n switch (path) {\n case \"text\": {\n title = getTumblrExtra(\"title\") || title;\n return `title=${title}`;\n }\n case \"photo\": {\n title = getTumblrExtra(\"caption\") || title;\n let source = getTumblrExtra(\"source\") || img;\n return `caption=${title}&source=${source}`;\n }\n case \"quote\": {\n let quote = getTumblrExtra(\"quote\") || title;\n let source = getTumblrExtra(\"source\") || \"\";\n return `quote=${quote}&source=${source}`;\n }\n // actually, it's a link clause\n default: {\n title = getTumblrExtra(\"title\") || title;\n url = getTumblrExtra(\"url\") || url;\n return `name=${title}&url=${url}`;\n }} })();\n\n return `/${path}?${params}`;\n };\n\n this.openUrl(`http://www.tumblr.com/share${tumblrParams()}`);\n break;\n }\n case \"reddit\":\n this.openUrl(`http://www.reddit.com/submit?url=${url}&newwindow=1`, 555, 400);\n break;\n case \"hacker_news\":\n this.openUrl(`http://news.ycombinator.com/submitlink?u=${url}&t=${title}`, 770, 500);\n break;\n case \"telegram\":\n this.openUrl(`https://telegram.me/share/url?text=${title}&url=${url}`);\n break;\n case \"whatsapp_app\": {\n let whatsappAppUrl = `whatsapp://send?text=${title}%0A${url}`;\n window.open(whatsappAppUrl, \"_top\");\n break;\n }\n case \"whatsapp_web\":\n this.openUrl(`https://web.whatsapp.com/send?text=${title}%0A${url}`);\n break;\n }\n return false;\n }\n};\n","var map = {\n\t\"./decidim/avatar-multiuser.png\": 965,\n\t\"./decidim/brands/google.svg\": 84851,\n\t\"./decidim/cc-badge.png\": 44556,\n\t\"./decidim/decidim-logo.svg\": 49221,\n\t\"./decidim/default-avatar.svg\": 74040,\n\t\"./decidim/gamification/badges/decidim_gamification_badges_followers.svg\": 60334,\n\t\"./decidim/icons.svg\": 68039,\n\t\"./decidim/pattern.png\": 2664,\n\t\"./decidim/placeholder.jpg\": 5948,\n\t\"./decidim/vendor/leaflet/layers-2x.png\": 15442,\n\t\"./decidim/vendor/leaflet/layers.png\": 86319,\n\t\"./decidim/vendor/leaflet/marker-icon-2x.png\": 62348,\n\t\"./decidim/vendor/leaflet/marker-icon.png\": 6529,\n\t\"./decidim/vendor/leaflet/marker-shadow.png\": 20140,\n\t\"./decidim/vendor/social-share-button/delicious.svg\": 45736,\n\t\"./decidim/vendor/social-share-button/douban.svg\": 12689,\n\t\"./decidim/vendor/social-share-button/email.svg\": 68703,\n\t\"./decidim/vendor/social-share-button/facebook.svg\": 2326,\n\t\"./decidim/vendor/social-share-button/google_bookmark.svg\": 15687,\n\t\"./decidim/vendor/social-share-button/google_plus.svg\": 81957,\n\t\"./decidim/vendor/social-share-button/hacker_news.svg\": 18281,\n\t\"./decidim/vendor/social-share-button/linkedin.svg\": 71835,\n\t\"./decidim/vendor/social-share-button/odnoklassniki.svg\": 80766,\n\t\"./decidim/vendor/social-share-button/pinterest.svg\": 45222,\n\t\"./decidim/vendor/social-share-button/qq.svg\": 42812,\n\t\"./decidim/vendor/social-share-button/reddit.svg\": 21,\n\t\"./decidim/vendor/social-share-button/telegram.svg\": 20365,\n\t\"./decidim/vendor/social-share-button/tumblr.svg\": 60747,\n\t\"./decidim/vendor/social-share-button/twitter.svg\": 39003,\n\t\"./decidim/vendor/social-share-button/vkontakte.svg\": 70862,\n\t\"./decidim/vendor/social-share-button/wechat.svg\": 70715,\n\t\"./decidim/vendor/social-share-button/weibo.svg\": 56014,\n\t\"./decidim/vendor/social-share-button/whatsapp.svg\": 55742,\n\t\"./decidim/vendor/social-share-button/xing.svg\": 48469\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 28982;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/decidim-packs/\";","// 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\t2835: 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, [2415,85,5889,166,5509,2557,8790,5703,2750], function() { return __webpack_require__(47382); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","$","Decidim","on","event","mapConfig","fetch","then","response","json","geojson","geojsonLayer","L","geoJSON","style","color","weight","fillOpacity","addTo","markers","length","fitBounds","getBounds","window","updateSubmitButton","$fieldContainer","$selectedItems","$form","closest","$submitButton","find","children","prop","$multipleMentionContainer","$multipleMentionRecipientsContainer","nodatafound","attr","directMessageDisabled","mentionsCount","deleteRecipient","element","remove","noMatchTemplate","concat","$element","tribute","Tribute","autocompleteMode","values","callback","wait","_this","timeout","_len","arguments","args","Array","_key","context","clearTimeout","setTimeout","apply","debounce","text","cb","exclusionIds","each","index","push","this","val","query","post","data","users","fail","always","$parent","current","parent","addClass","removeAttr","remoteSearch","positionMenu","menuContainer","menuItemLimit","fillAttr","lookup","item","nickname","name","selectTemplate","recipientLabel","original","avatarUrl","__typename","directMessagesEnabled","append","menuItemTemplate","svg","enabled","iconsPath","config","get","membersCount","disabledElementClass","disabledElementMessage","target","parentNode","hasClass","removeClass","isActive","$tribute","appendTo","attach","$target","tagName","setupRecipientEvents","COUNT_KEY","DEFAULT_MESSAGES","charactersAtLeast","one","other","charactersLeft","MESSAGES","InputCharacterCounter","input","_classCallCheck","$input","minCharacters","parseInt","maxCharacters","targetId","Math","random","toString","substr","is","after","bindEvents","key","value","messages","extend","Quill","siblings","updateStatus","addEventListener","numCharacters","showMessages","message","replace","remaining","_message","dispatchEvent","CustomEvent","detail","join","createCharacterCounter","_i","elem","focus","DEFAULT_ATTRIBUTES","role","EXCLUDE_CLASSES","EXCLUDE_ANCESTOR_CLASSES","EXCLUDE_REL","externalLink","ExternalLink","link","$link","setup","some","cls","parents","rel","split","indexOf","spacer","trim","generateElement","content","generateIcon","generateScreenReaderLabel","iconKey","attributes","undefined","iconAttributes","title","ariaLabel","Reflect","deleteProperty","htmlAttributes","forEach","newKey","ucw","toLowerCase","elHtml","$el","prepend","html","icon","updateExternalDomainLinks","whitelist","location","pathname","filter","hasAttribute","parts","match","domain","includes","_n","externalHref","encodeURIComponent","correctErrors","FormValidator","form","handleError","announceFormError","$announce","el","document","_ev","trigger","CommentsComponent","commentableGid","commentsUrl","rootDepth","order","lastCommentId","pollingInterval","_getUID","mounted","_initializeComments","_onInitOrder","_this2","_stopPolling","off","removeEventListener","_onTextInput","threadHtml","fromCurrentUser","$comment","$threads","_addComment","_finalizeCommentCreation","commentId","replyHtml","$replies","Date","setUTCMilliseconds","floor","_this3","$add","$opinionButtons","$text","_onToggleOpinion","_pollComments","$container","foundation","characterCounter","_this4","pollTimeout","Rails","ajax","url","type","URLSearchParams","success","_setLoading","ev","$btn","$selectedState","$alignment","$submit","addInputEmoji","containers","querySelectorAll","_elem$closest","picker","EmojiButton","position","rootElement","parentElement","body","zIndex","reveal","overflowY","wrapper","createElement","className","btnContainer","btn","innerHTML","insertBefore","appendChild","handlerPicker","togglePicker","removeAttribute","setAttribute","_ref","emoji","Event","focusGuardClass","focusableNodes","focusableDisableableNodes","FocusGuard","container","guardedElement","Keyboard","releaseFocus","enable","trapFocus","guards","guard","dataset","startGuard","createFocusGuard","endGuard","handleContainerFocus","tabIndex","visibleNodes","from","isVisible","ind","isFocusGuard","isFocusable","_ind","blur","offsetWidth","offsetHeight","classList","contains","nodeName","getAttribute","tabindex","isNaN","Configuration","DataPicker","theDataPicker","focusGuard","querySelector","dialog","$dialog","$title","$visibleReveal","trap","disable","svg4everybody","preventDefault","formDatePicker","_idx","createQuillEditor","comments","mountComponent","FormFilterComponent","links","sessionStorage","filteredParams","JSON","parse","getItem","href","backToListLink","selectedText","select","$temp","css","width","height","copyDone","execCommand","err","label","to","removeData","$msg","appendAround","matches","submit","disabled","Foundation","atLeast","hover","top","scrollTop","initializeListingOptionsMenu","options","containerSelector","pushState","registerCallback","callbackName","$targetMenu","dataAttribute","linkText","urlParameter","$impersonationWarning","endsAt","moment","exitInterval","setInterval","diff","diffInMinutes","round","reload","clearInterval","require","morphdom","$deleteAccountForm","$deleteAccountModalForm","$openModalButton","$modal","reasonValue","error","console","stopPropagation","redirectUrl","querystring","jQuery","param","parameter","urlParts","urlBase","shift","queryString","prefix","lastIndexOf","splice","removeUrlParameter","$callout","ready","scrollTo","offset","behavior","$allDiffViews","$selected","$visibleDiffViewsId","not","first","slice","$visibleDiffViews","localStorage","getDismissedHelpers","serialized","dismissedHelpers","_index","setItem","_toConsumableArray","addDismissedHelper","callbacks","callbackId","unregisterCallback","state","history","replaceState","onpopstate","isTrusted","hasOwnProperty","button","identitiesUrl","userIdentitiesDialog","click","done","liTag","method","urlDataAttr","dataType","$inputs","selectionStart","selectionEnd","originalEvent","jumpNext","maxLength","next","keyCode","jumpPrev","prev","$notificationsBellIcon","$wrapper","$section","$noNotificationsText","$pagination","emptyNotifications","$item","fadeOut","$checkbox","$userGroupFields","toggle","$responsiveTabBlock","innerWidth","toggleClass","allMessages","selfxssWarning","log","description","addUsersConversationDialog","$userRegistrationForm","inputSelector","newsletterSelector","$newsletterModal","setGroupFieldsVisibility","hide","show","newsletterChecked","check","n","s","_typeof","t","f","l","_version","_config","classPrefix","enableClasses","enableJSClass","usePrefixes","_q","addTest","fn","addAsyncTest","Modernizr","prototype","r","documentElement","c","a","i","aliases","Boolean","baseVal","RegExp","u","SocialShareButton","openUrl","left","screen","opt","open","share","path","params","site","appkey","img","via","desc","ga","GoogleAnalyticsObject","hashtags","viaStr","SocialShareWeChatButton","qrcode","decodeURIComponent","header","footer","getTumblrExtra","cutomData","source","quote","_source","whatsappAppUrl","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","d","definition","defineProperty","enumerable","g","globalThis","Function","obj","nmd","paths","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}