{"version":3,"file":"js/8077-5d41c4ee96394b19a019.js","mappings":"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","sources":["webpack://app/./app/packs/src/decidim/forms/option_attached_inputs.component.js","webpack://app/../../../usr/local/bundle/gems/decidim-forms-0.27.8/app/packs/src/decidim/forms/autosortable_checkboxes.component.js","webpack://app/./app/packs/src/decidim/forms/display_conditions.component.js","webpack://app/../../../usr/local/bundle/gems/decidim-forms-0.27.8/app/packs/src/decidim/forms/forms.js","webpack://app/../../../usr/local/bundle/gems/decidim-forms-0.27.8/app/packs/src/decidim/forms/max_choices_alert.component.js"],"sourcesContent":["/* 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(\n this.controllerFieldSelector\n );\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\n .parents(\"div.collection-input\")\n .find(this.dependentInputSelector)\n .prop(\"disabled\", !enabled);\n });\n }\n\n _bindEvent() {\n this.controllerSelector.on(\"change\", (event) => {\n this._run();\n\n /**\n * Validations MCN\n * Voir: decidim-forms/app/packs/src/decidim/forms/option_attached_inputs.component.js\n */\n\n /* validation of checks */\n let src_el = event.target;\n let question_label = $(src_el)\n .closest(\"div[data-question-id]\")\n .children(\".questionnaire-question\");\n if ($(question_label).text().search(/\\*$/) >= 0) {\n /*It is a mandatory checkbox*/\n if ($(src_el).is(\":checked\")) {\n /* Check action */\n removeError(question_label);\n } else if (!$(src_el).is(\":checked\")) {\n /* Uncheck action */\n if (\n $(src_el)\n .parents(\".check-box-collection\")\n .find('input[type=\"checkbox\"]:checked').length == 0\n ) {\n showError(question_label, \"Choix sélectionnés doit être rempli(e)\");\n }\n }\n }\n\n /* Remove error from tos when checked */\n $(\"input#questionnaire_tos_agreement\").on(\"change\", (event) => {\n let src_el = event.target;\n if ($(src_el).is(\":checked\")){\n removeError($(src_el).parent());\n }\n });\n });\n\n $(document).on(\"submit\", \"form\", (event) => {\n var errors = false;\n /* Validate checkboxs */\n $(\".check-box-collection\").each((idx, rbc) => {\n let question_label = $(rbc).siblings(\".questionnaire-question\");\n if ($(question_label).text().search(/\\*$/) >= 0) {\n /*It is a mandatory checkbox*/\n if ($(rbc).find('input[type=\"checkbox\"]:checked').length == 0) {\n showError(question_label, \"Choix sélectionnés doit être rempli(e)\");\n errors = true;\n }\n }\n });\n\n /* Validate radios */\n $(\".radio-button-collection\").each((idx, rbc) => {\n let question_label = $(rbc).siblings(\".questionnaire-question\");\n if ($(question_label).text().search(/\\*$/) >= 0) {\n /*It is a mandatory checkbox*/\n if ($(rbc).find('input[type=\"radio\"]:checked').length == 0) {\n showError(question_label, \"Choix sélectionnés doit être rempli(e)\");\n errors = true;\n }\n }\n });\n\n /* Validate tos */\n let tos = $(\"input#questionnaire_tos_agreement\");\n if (!$(tos).is(\":checked\")) {\n showError($(tos).parent(), \"doit être accepté(e)\");\n errors = true;\n }\n\n if (errors) {\n event.preventDefault();\n var alert = $(\".flash.callout.alert\");\n if (!alert.length) {\n $(\"#content\").prepend(\n '
Votre réponse à l\\'enquête comporte des erreurs. 
'\n );\n } else if (alert.attr(\"style\")) {\n alert.removeAttr(\"style\");\n }\n }\n\n window.exitUrl = event.currentTarget.action;\n /**\n * Fin validations MCN\n */\n });\n }\n}\n\n/**\n * Crée une alerte d'erreur\n * @param {string} label - Sélecteur CSS\n * @param {string} msg - Le message à afficher\n */\nfunction showError(label, msg) {\n $(label).addClass(\"is-invalid-label\");\n $(label).parent().children(\"[role=alert]\").remove();\n $(label)\n .parent()\n .append(\n '' + msg + \"\"\n );\n}\n\n/**\n * Supprime l'élément DOM contenant le message d'erreur\n * @param {string} label - Sélecteur CSS \n */\nfunction removeError(label) {\n $(label).removeClass(\"is-invalid-label\");\n $(label).parent().children(\"[role=alert]\").remove();\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.clearInputValues();\n this.wrapperField.find(\"input, textarea\").prop(\"disabled\", \"disabled\"); \n }\n\n clearInputValues() {\n if(this.wrapperField.find(\"textarea, input[type='text']:not([name$=\\\\[custom_body\\\\]])\").length) { \n this.wrapperField.find(\"textarea, input[type='text']:not([name$=\\\\[custom_body\\\\]])\").val(\"\"); \n this.wrapperField.find(\"textarea, input[type='text']:not([name$=\\\\[custom_body\\\\]])\").change();\n }\n \n if (this.wrapperField.find(\".radio-button-collection, .check-box-collection\").find(\".collection-input\")) {\n this.wrapperField.find(\".radio-button-collection, .check-box-collection\").find(\".collection-input\").each((idx, el) => {\n \n if($(el).find(\"input[type=radio][name$=\\\\[body\\\\]]\").is(\":checked\")){ \n $(el).find(\"input[type=radio][name$=\\\\[body\\\\]]\").prop('checked', false); \n $(el).find(\"input[type=radio][name$=\\\\[body\\\\]]\").change(); \n \n } else if ($(el).find(\"input[type=checkbox][name$=\\\\[body\\\\]]\").is(\":checked\")){ \n $(el).find(\"input[type=checkbox][name$=\\\\[body\\\\]]\").click();\n $(el).find(\"input[type=checkbox][name$=\\\\[body\\\\]]\").change(); \n } \n });\n }\n }\n \n}\n\nexport default function createDisplayConditions(options) {\n return new DisplayConditionsComponent(options);\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","/* 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"],"names":["OptionAttachedInputsComponent","options","arguments","length","undefined","_classCallCheck","this","wrapperField","controllerFieldSelector","dependentInputSelector","controllerSelector","find","_bindEvent","_run","key","value","_this","each","idx","el","$field","$","enabled","is","parents","prop","_this2","on","event","src_el","target","question_label","closest","children","text","search","removeError","showError","parent","document","errors","rbc","siblings","tos","preventDefault","alert","attr","removeAttr","prepend","window","exitUrl","currentTarget","action","label","msg","addClass","remove","append","removeClass","createOptionAttachedInputs","AutosortableCheckboxesComponent","_order","_normalize","max","$positionField","position","val","parseInt","$next","next","$nextPositionField","insertBefore","lastPosition","html","concat","$parentLabel","$positionSelector","_findLastPosition","checked","DisplayCondition","type","conditionQuestion","answerOption","mandatory","onFulfilled","bindEvent","_createClass","checkCondition","getInputsToListen","bind","$conditionWrapperField","$textInput","multipleInput","$input","id","push","_typeof","Boolean","some","it","checkAnsweredCondition","toString","every","regexp","RegExp","match","getInputValue","fulfilled","checkNotAnsweredCondition","checkEqualCondition","checkNotEqualCondition","checkMatchCondition","DisplayConditionsComponent","conditions","showCount","initializeConditions","_this3","$condition","data","Object","values","mandatoryConditions","filter","condition","nonMandatoryConditions","mustShow","showQuestion","hideQuestion","fadeIn","fadeOut","hide","clearInputValues","change","click","unique","maxChoices","createMaxChoicesAlertComponent","controllerCollectionSelector","alertElement","$form","safePath","split","href","addEventListener","hasChanged","includes","returnValue","MaxChoicesAlertComponent","rows","rowIdx","row","checkboxIdx","checkbox","show"],"sourceRoot":""}