{"version":3,"file":"js/decidim_forms-12cfc65e3288def44764.js","mappings":"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","sources":["webpack://app/../usr/local/bundle/gems/decidim-forms-0.26.7/app/packs/images/ sync ^\\.\\/.*$","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/publicPath","webpack://app/../usr/local/bundle/gems/decidim-forms-0.26.7/app/packs/src/decidim/forms/option_attached_inputs.component.js","webpack://app/../usr/local/bundle/gems/decidim-forms-0.26.7/app/packs/src/decidim/forms/autosortable_checkboxes.component.js","webpack://app/../usr/local/bundle/gems/decidim-forms-0.26.7/app/packs/src/decidim/forms/display_conditions.component.js","webpack://app/../usr/local/bundle/gems/decidim-forms-0.26.7/app/packs/src/decidim/forms/max_choices_alert.component.js","webpack://app/../usr/local/bundle/gems/decidim-forms-0.26.7/app/packs/src/decidim/forms/forms.js","webpack://app/../usr/local/bundle/gems/decidim-forms-0.26.7/app/packs/entrypoints/decidim_forms.js"],"sourcesContent":["var map = {\n\t\"./decidim/surveys/decidim_surveys.svg\": 37159\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 = 12120;","// 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","idx","el","$field","$","enabled","is","parents","_this","on","_this2","AutosortableCheckboxesComponent","_order","_normalize","max","length","$positionField","position","val","parseInt","$next","next","$nextPositionField","insertBefore","lastPosition","parent","html","$parentLabel","target","$positionSelector","_findLastPosition","checked","DisplayCondition","type","conditionQuestion","answerOption","mandatory","value","onFulfilled","bindEvent","checkCondition","getInputsToListen","bind","$conditionWrapperField","$textInput","multipleInput","$input","text","push","_typeof","Boolean","some","it","checkAnsweredCondition","toString","every","regexp","RegExp","match","getInputValue","fulfilled","checkNotAnsweredCondition","checkEqualCondition","checkNotEqualCondition","checkMatchCondition","DisplayConditionsComponent","conditions","showCount","initializeConditions","$condition","data","_this3","values","mandatoryConditions","filter","condition","nonMandatoryConditions","mustShow","showQuestion","hideQuestion","fadeIn","fadeOut","hide","MaxChoicesAlertComponent","alertElement","controllerCollectionSelector","maxChoices","rows","alert","rowIdx","row","checkboxIdx","checkbox","show","unique","$form","safePath","split","document","event","window","exitUrl","currentTarget","href","action","addEventListener","hasChanged","includes","returnValue","require"],"sourceRoot":""}