{"version":3,"file":"js/decidim_forms-3c55c1ff9555143feace.js","mappings":"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","sources":["webpack://app//tmp/build/vendor/bundle/ruby/2.7.0/bundler/gems/decidim-ecdcd44c10bf/decidim-forms/app/packs/images|sync|/^\\.\\/.*$/","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/publicPath","webpack://app/./vendor/bundle/ruby/2.7.0/bundler/gems/decidim-ecdcd44c10bf/decidim-forms/app/packs/src/decidim/forms/option_attached_inputs.component.js","webpack://app/./vendor/bundle/ruby/2.7.0/bundler/gems/decidim-ecdcd44c10bf/decidim-forms/app/packs/src/decidim/forms/autosortable_checkboxes.component.js","webpack://app/./vendor/bundle/ruby/2.7.0/bundler/gems/decidim-ecdcd44c10bf/decidim-forms/app/packs/src/decidim/forms/display_conditions.component.js","webpack://app/./vendor/bundle/ruby/2.7.0/bundler/gems/decidim-ecdcd44c10bf/decidim-forms/app/packs/src/decidim/forms/max_choices_alert.component.js","webpack://app/./vendor/bundle/ruby/2.7.0/bundler/gems/decidim-ecdcd44c10bf/decidim-forms/app/packs/src/decidim/forms/forms.js","webpack://app/./vendor/bundle/ruby/2.7.0/bundler/gems/decidim-ecdcd44c10bf/decidim-forms/app/packs/entrypoints/decidim_forms.js"],"sourcesContent":["var map = {\n\t\"./decidim/surveys/decidim_surveys.svg\": 43946\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 = 73773;","// 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](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.p = \"/decidim-packs/\";","/* eslint-disable require-jsdoc */\n\nclass OptionAttachedInputsComponent {\n constructor(options = {}) {\n this.wrapperField = options.wrapperField;\n this.controllerFieldSelector = options.controllerFieldSelector;\n this.dependentInputSelector = options.dependentInputSelector;\n this.controllerSelector = this.wrapperField.find(this.controllerFieldSelector);\n this._bindEvent();\n this._run();\n }\n\n _run() {\n this.controllerSelector.each((idx, el) => {\n const $field = $(el);\n const enabled = $field.is(\":checked\");\n\n $field.parents(\"div.collection-input\").find(this.dependentInputSelector).prop(\"disabled\", !enabled);\n });\n }\n\n _bindEvent() {\n this.controllerSelector.on(\"change\", () => {\n this._run();\n });\n }\n}\n\nexport default function createOptionAttachedInputs(options) {\n return new OptionAttachedInputsComponent(options);\n}\n","/* eslint-disable require-jsdoc */\n/* eslint-disable no-ternary */\n\nclass AutosortableCheckboxesComponent {\n constructor(options = {}) {\n this.wrapperField = options.wrapperField;\n this._bindEvent();\n this._order();\n this._normalize();\n }\n\n // Order by position\n _order() {\n const max = $(this.wrapperField).find(\".collection-input\").length;\n $(this.wrapperField).find(\".collection-input\").each((idx, el) => {\n const $positionField = $(el).find(\"input[name$=\\\\[position\\\\]]\");\n const position = $positionField.val()\n ? parseInt($positionField.val(), 10)\n : max;\n\n let $next = $(el).next();\n while ($next.length > 0) {\n const $nextPositionField = $next.find(\"input[name$=\\\\[position\\\\]]\");\n const nextPosition = $nextPositionField.val()\n ? parseInt($nextPositionField.val(), 10)\n : max;\n\n if (position > nextPosition) {\n $next.insertBefore($(el));\n }\n $next = $next.next();\n }\n });\n }\n\n _findLastPosition() {\n let lastPosition = 0;\n $(this.wrapperField).find(\".collection-input\").each((idx, el) => {\n const $positionField = $(el).find(\"input[name$=\\\\[position\\\\]]\");\n const position = parseInt($positionField.val(), 10);\n if (position > lastPosition) {\n lastPosition = position;\n }\n });\n return lastPosition;\n }\n\n _normalize() {\n $(this.wrapperField).find(\".collection-input .position\").each((idx, el) => {\n const $positionField = $(el).parent().find(\"input[name$=\\\\[position\\\\]]\");\n if ($positionField.val()) {\n $positionField.val(idx);\n $positionField.prop(\"disabled\", false);\n $(el).html(`${idx + 1}. `);\n }\n });\n }\n\n _bindEvent() {\n $(this.wrapperField).find(\"input[type=checkbox]\").on(\"change\", (el) => {\n const $parentLabel = $(el.target).parents(\"label\");\n const $positionSelector = $parentLabel.find(\".position\");\n const $positionField = $parentLabel.find(\"input[name$=\\\\[position\\\\]]\");\n const lastPosition = this._findLastPosition();\n\n if (el.target.checked) {\n $positionField.val(lastPosition + 1);\n $positionField.prop(\"disabled\", false);\n $positionSelector.html(lastPosition + 1);\n } else {\n $positionField.val(\"\");\n $positionField.prop(\"disabled\", true);\n $positionSelector.html(\"\");\n }\n this._order();\n this._normalize();\n });\n }\n}\n\nexport default function createAutosortableCheckboxes(options) {\n return new AutosortableCheckboxesComponent(options);\n}\n","/* eslint-disable no-ternary, no-plusplus, require-jsdoc */\n\nclass DisplayCondition {\n constructor(options = {}) {\n this.wrapperField = options.wrapperField;\n this.type = options.type;\n this.conditionQuestion = options.conditionQuestion;\n this.answerOption = options.answerOption;\n this.mandatory = options.mandatory;\n this.value = options.value;\n this.onFulfilled = options.onFulfilled;\n this.bindEvent();\n }\n\n bindEvent() {\n this.checkCondition();\n this.getInputsToListen().on(\"change\", this.checkCondition.bind(this));\n }\n\n getInputValue() {\n const $conditionWrapperField = $(`.question[data-question-id='${this.conditionQuestion}']`);\n const $textInput = $conditionWrapperField.find(\"textarea, input[type='text']:not([name$=\\\\[custom_body\\\\]])\");\n\n if ($textInput.length) {\n return $textInput.val();\n }\n\n let multipleInput = [];\n\n $conditionWrapperField.find(\".radio-button-collection, .check-box-collection\").find(\".collection-input\").each((idx, el) => {\n const $input = $(el).find(\"input[name$=\\\\[body\\\\]]\");\n const checked = $input.is(\":checked\");\n\n if (checked) {\n const text = $(el).find(\"input[name$=\\\\[custom_body\\\\]]\").val();\n const value = $input.val();\n const id = $(el).find(\"input[name$=\\\\[answer_option_id\\\\]]\").val();\n\n multipleInput.push({ id, value, text });\n }\n });\n\n return multipleInput;\n }\n\n getInputsToListen() {\n const $conditionWrapperField = $(`.question[data-question-id='${this.conditionQuestion}']`);\n const $textInput = $conditionWrapperField.find(\"textarea, input[type='text']:not([name$=\\\\[custom_body\\\\]])\");\n\n if ($textInput.length) {\n return $textInput;\n }\n\n return $conditionWrapperField.find(\".collection-input\").find(\"input:not([type='hidden'])\");\n }\n\n checkAnsweredCondition(value) {\n if (typeof (value) !== \"object\") {\n return Boolean(value);\n }\n\n return Boolean(value.some((it) => it.value));\n }\n\n checkNotAnsweredCondition(value) {\n return !this.checkAnsweredCondition(value);\n }\n\n checkEqualCondition(value) {\n if (value.length) {\n return value.some((it) => it.id === this.answerOption.toString());\n }\n return false;\n }\n\n checkNotEqualCondition(value) {\n if (value.length) {\n return value.every((it) => it.id !== this.answerOption.toString());\n }\n return false;\n }\n\n checkMatchCondition(value) {\n let regexp = new RegExp(this.value, \"i\");\n\n if (typeof (value) !== \"object\") {\n return Boolean(value.match(regexp));\n }\n\n return value.some(function (it) {\n return it.text\n ? it.text.match(regexp)\n : it.value.match(regexp)\n });\n }\n\n checkCondition() {\n const value = this.getInputValue();\n let fulfilled = false;\n\n switch (this.type) {\n case \"answered\":\n fulfilled = this.checkAnsweredCondition(value);\n break;\n case \"not_answered\":\n fulfilled = this.checkNotAnsweredCondition(value);\n break;\n case \"equal\":\n fulfilled = this.checkEqualCondition(value);\n break;\n case \"not_equal\":\n fulfilled = this.checkNotEqualCondition(value);\n break;\n case \"match\":\n fulfilled = this.checkMatchCondition(value);\n break;\n default:\n fulfilled = false;\n break;\n }\n\n this.onFulfilled(fulfilled);\n }\n}\n\nclass DisplayConditionsComponent {\n constructor(options = {}) {\n this.wrapperField = options.wrapperField;\n this.conditions = {};\n this.showCount = 0;\n this.initializeConditions();\n }\n\n initializeConditions() {\n const $conditionElements = this.wrapperField.find(\".display-condition\");\n\n $conditionElements.each((idx, el) => {\n const $condition = $(el);\n const id = $condition.data(\"id\");\n this.conditions[id] = {};\n\n this.conditions[id] = new DisplayCondition({\n wrapperField: this.wrapperField,\n type: $condition.data(\"type\"),\n conditionQuestion: $condition.data(\"condition\"),\n answerOption: $condition.data(\"option\"),\n mandatory: $condition.data(\"mandatory\"),\n value: $condition.data(\"value\"),\n onFulfilled: (fulfilled) => {\n this.onFulfilled(id, fulfilled);\n }\n });\n });\n }\n\n mustShow() {\n const conditions = Object.values(this.conditions);\n const mandatoryConditions = conditions.filter((condition) => condition.mandatory);\n const nonMandatoryConditions = conditions.filter((condition) => !condition.mandatory);\n\n if (mandatoryConditions.length) {\n return mandatoryConditions.every((condition) => condition.fulfilled);\n }\n\n return nonMandatoryConditions.some((condition) => condition.fulfilled);\n\n }\n\n onFulfilled(id, fulfilled) {\n this.conditions[id].fulfilled = fulfilled;\n\n if (this.mustShow()) {\n this.showQuestion();\n }\n else {\n this.hideQuestion();\n }\n }\n\n showQuestion() {\n this.wrapperField.fadeIn();\n this.wrapperField.find(\"input, textarea\").prop(\"disabled\", null);\n this.showCount++;\n }\n\n hideQuestion() {\n if (this.showCount) {\n this.wrapperField.fadeOut();\n }\n else {\n this.wrapperField.hide();\n }\n\n this.wrapperField.find(\"input, textarea\").prop(\"disabled\", \"disabled\");\n }\n}\n\nexport default function createDisplayConditions(options) {\n return new DisplayConditionsComponent(options);\n}\n","/* eslint-disable require-jsdoc */\n\nclass MaxChoicesAlertComponent {\n constructor(options = {}) {\n this.wrapperField = options.wrapperField;\n this.alertElement = options.alertElement;\n this.controllerFieldSelector = options.controllerFieldSelector;\n this.controllerCollectionSelector = options.controllerCollectionSelector;\n this.maxChoices = options.maxChoices;\n this.controllerSelector = this.wrapperField.find(this.controllerFieldSelector);\n this._bindEvent();\n this._run();\n }\n\n _run() {\n const rows = this.wrapperField.find(this.controllerCollectionSelector);\n\n let alert = false;\n\n rows.each((rowIdx, row) => {\n const checked = $(row).find(this.controllerFieldSelector).filter((checkboxIdx, checkbox) => $(checkbox).is(\":checked\"));\n\n alert = alert || checked.length > this.maxChoices;\n });\n\n if (alert) {\n this.alertElement.show();\n }\n else {\n this.alertElement.hide();\n }\n }\n\n _bindEvent() {\n this.controllerSelector.on(\"change\", () => {\n this._run();\n });\n }\n}\n\nexport default function createMaxChoicesAlertComponent(options) {\n return new MaxChoicesAlertComponent(options);\n}\n","/* eslint-disable require-jsdoc */\n\nimport createOptionAttachedInputs from \"src/decidim/forms/option_attached_inputs.component\"\nimport createAutosortableCheckboxes from \"src/decidim/forms/autosortable_checkboxes.component\"\nimport createDisplayConditions from \"src/decidim/forms/display_conditions.component\"\nimport createMaxChoicesAlertComponent from \"src/decidim/forms/max_choices_alert.component\"\n\n$(() => {\n $(\".radio-button-collection, .check-box-collection\").each((idx, el) => {\n createOptionAttachedInputs({\n wrapperField: $(el),\n controllerFieldSelector: \"input[type=radio], input[type=checkbox]\",\n dependentInputSelector: \"input[type=text], input[type=hidden]\"\n });\n });\n\n $.unique($(\".check-box-collection\").parents(\".answer\")).each((idx, el) => {\n const maxChoices = $(el).data(\"max-choices\");\n if (maxChoices) {\n createMaxChoicesAlertComponent({\n wrapperField: $(el),\n controllerFieldSelector: \"input[type=checkbox]\",\n controllerCollectionSelector: \".check-box-collection\",\n alertElement: $(el).find(\".max-choices-alert\"),\n maxChoices: maxChoices\n });\n }\n });\n\n $(\".sortable-check-box-collection\").each((idx, el) => {\n createAutosortableCheckboxes({\n wrapperField: $(el)\n })\n });\n\n $(\".answer-questionnaire .question[data-conditioned='true']\").each((idx, el) => {\n createDisplayConditions({\n wrapperField: $(el)\n });\n });\n\n const $form = $(\"form.answer-questionnaire\");\n if ($form.length > 0) {\n $form.find(\"input, textarea, select\").on(\"change\", () => {\n $form.data(\"changed\", true);\n });\n\n const safePath = $form.data(\"safe-path\").split(\"?\")[0];\n $(document).on(\"click\", \"a\", (event) => {\n window.exitUrl = event.currentTarget.href;\n });\n $(document).on(\"submit\", \"form\", (event) => {\n window.exitUrl = event.currentTarget.action;\n });\n\n window.addEventListener(\"beforeunload\", (event) => {\n const exitUrl = window.exitUrl;\n const hasChanged = $form.data(\"changed\");\n window.exitUrl = null;\n\n if (!hasChanged || (exitUrl && exitUrl.includes(safePath))) {\n return;\n }\n\n event.returnValue = true;\n });\n }\n})\n","import \"src/decidim/forms/forms\"\n\n// Images\nrequire.context(\"../images\", true)\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","undefined","__webpack_modules__","obj","prop","prototype","hasOwnProperty","call","p","OptionAttachedInputsComponent","options","this","wrapperField","controllerFieldSelector","dependentInputSelector","controllerSelector","find","_bindEvent","_run","each","$field","$","enabled","on","AutosortableCheckboxesComponent","_order","_normalize","max","$positionField","position","parseInt","$next","$nextPositionField","lastPosition","idx","$parentLabel","el","$positionSelector","DisplayCondition","type","conditionQuestion","answerOption","mandatory","value","onFulfilled","bindEvent","checkCondition","getInputsToListen","bind","$conditionWrapperField","$textInput","multipleInput","$input","text","Boolean","it","checkAnsweredCondition","regexp","RegExp","fulfilled","checkNotAnsweredCondition","checkEqualCondition","checkNotEqualCondition","checkMatchCondition","DisplayConditionsComponent","conditions","showCount","initializeConditions","$conditionElements","$condition","mandatoryConditions","condition","nonMandatoryConditions","showQuestion","hideQuestion","fadeIn","fadeOut","hide","MaxChoicesAlertComponent","alertElement","controllerCollectionSelector","maxChoices","rows","alert","checked","show","$form","safePath","window","event","exitUrl","hasChanged","require"],"sourceRoot":""}