{"version":3,"file":"js/5694-0905d81f323d22f51881.chunk.js","mappings":"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","sources":["webpack://agra/./app/javascript/helpers/is-present.js","webpack://agra/./app/javascript/components/inputs/country-select.vue","webpack://agra/./app/javascript/components/inputs/country-select.vue?8193","webpack://agra/./app/javascript/mixins/has-additional-fields.js","webpack://agra/./app/javascript/components/inputs/email-input-with-mailcheck.vue","webpack://agra/./app/javascript/forms/mailcheck-config.js","webpack://agra/./app/javascript/components/inputs/email-input-with-mailcheck.vue?6f79","webpack://agra/./app/javascript/components/inputs/email-opt-in-input.vue","webpack://agra/./app/javascript/components/inputs/email-opt-in-input.vue?eea8","webpack://agra/./app/javascript/components/inputs/sms-opt-in-input.vue","webpack://agra/./app/javascript/components/inputs/sms-opt-in-input.vue?4cbb","webpack://agra/./app/javascript/components/buttons/submit-button.vue","webpack://agra/./app/javascript/components/buttons/submit-button.vue?ffe8"],"sourcesContent":["export default function(string) {\n // TODO: add tests for this\n return (string && string.length > 0)\n}\n","<template>\n <div :class=\"['select', { 'is-invalid': showValidationError }]\">\n <label v-if=\"showLabel\" :for=\"inputId\" class=\"form-label\">\n <required v-if=\"required\" />\n {{ label }}\n </label>\n <select :id=\"calculatedInputId\" :value=\"value\" :name=\"calculatedInputName\"\n :class=\"['form-select select', {'is-invalid': showValidationError}]\"\n @change=\"updateValue($event.target.value)\" @focus=\"$emit('focus')\">\n <option v-for=\"country in countryOptions\" :key=\"country[0]\" :value=\"country[1]\">\n {{ country[0] }}\n </option>\n </select>\n </div>\n</template>\n\n<script>\nimport { inject } from 'vue'\nimport isPresent from '../../helpers/is-present'\nimport Required from '../required'\nimport WithInputIdAndName from '@/components/inputs/mixins/with-input-id-and-name'\n\nexport default {\n components: { Required },\n\n mixins: [ WithInputIdAndName ],\n\n props: {\n countryOptions: {\n type: Array,\n required: true\n },\n\n geoipHostname: {\n type: String,\n required: false\n },\n\n initializeWithGeoip: {\n type: Boolean,\n required: false,\n default: true\n },\n\n label: {\n type: String,\n required: false,\n default: function() { return inject('i18n').t('country') }\n },\n\n required: {\n type: Boolean,\n required: false,\n default: false\n },\n\n showLabel: {\n type: Boolean,\n required: false,\n default: true\n },\n\n validationErrors: {\n type: Array,\n required: false\n },\n\n value: {\n type: String,\n required: false\n }\n },\n\n emits: ['changed', 'focus'],\n\n data() {\n return {\n fieldName: 'country'\n }\n },\n\n computed: {\n showValidationError() {\n return this.validationErrors && this.validationErrors.length > 0\n }\n },\n\n mounted() {\n if (this.initializeWithGeoip && isPresent(this.geoipHostname)) {\n // Q: Why not use our ajax helper?\n // A: It runs into some weird CORS issue trying to make this external request\n fetch(`https://${this.geoipHostname}/geoip`).then((resp) => {\n resp.json().then((jsonResponse) => {\n this.updateValue(jsonResponse.country_code.toUpperCase())\n })\n })\n }\n },\n\n methods: {\n updateValue(newValue) {\n this.$emit('changed', newValue)\n }\n }\n}\n</script>\n","import { render } from \"./country-select.vue?vue&type=template&id=f2054be2\"\nimport script from \"./country-select.vue?vue&type=script&lang=js\"\nexport * from \"./country-select.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export default {\n methods: {\n shouldShowAdditionalField(fieldConfig) {\n if (fieldConfig.conditionalOn) {\n // This field should only be shown if another field is true.\n // That 'upstream' field is likely a conditional_boolean.\n const upstreamFieldName = fieldConfig.conditionalOn\n\n // The `upstreamFieldName` is for an additional field.\n // Its name is not camelCased (neither when passed in in field config `conditionalOn`,\n // nor in the Vue(x) code implementing this mixin.\n return !!(this.additionalFieldValue(upstreamFieldName))\n } else if (fieldConfig.conditionalOnValue) {\n // This field should only be shown if another field has a specific value\n const upstreamFieldName = fieldConfig.conditionalOnValue.field\n const expectedValue = fieldConfig.conditionalOnValue.value\n\n return this.additionalFieldValue(upstreamFieldName) === expectedValue\n } else {\n return true\n }\n }\n }\n}\n","<template>\n <div>\n <text-input :label=\"label\" :value=\"value\" :show-label=\"showLabel\"\n :disabled=\"disabled\" :readonly=\"readonly\" :required=\"required\"\n :input-id=\"calculatedInputId\" :input-name=\"calculatedInputName\" input-type=\"email\" autocomplete=\"email\"\n :validation-errors=\"validationErrors\" @changed=\"changed\" @blur=\"runMailcheck\" @focus=\"$emit('focus')\">\n <template #help-text>\n <small v-if=\"suggestion\" class=\"text-muted\" @click=\"useSuggestion\" v-html=\"helpText\" />\n </template>\n </text-input>\n </div>\n</template>\n\n<script>\nimport { DOMAINS } from '../../forms/mailcheck-config'\nimport Mailcheck from 'mailcheck'\nimport { nextTick } from 'vue'\nimport TextInput from './text-input'\nimport WithInputIdAndName from '@/components/inputs/mixins/with-input-id-and-name'\n\nexport default {\n components: { TextInput },\n\n mixins: [ WithInputIdAndName ],\n\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n entityName: {\n type: String,\n required: true\n },\n labelOverride: {\n type: String,\n required: false\n },\n readonly: {\n type: Boolean,\n required: false,\n default: false\n },\n required: {\n type: Boolean,\n required: false,\n default: false\n },\n\n showLabel: {\n type: Boolean,\n required: false,\n default: true\n },\n\n validationErrors: {\n type: Array,\n required: false\n },\n value: {\n type: String,\n required: false\n }\n },\n\n emits: ['changed', 'focus'],\n\n data() {\n return {\n fieldName: 'email',\n suggestion: null\n }\n },\n\n computed: {\n helpText() {\n if (this.suggestion) {\n // This returns a string that includes a link, like \"Did you mean foo@example.com?\"\n // where `foo@example.com` is a link with the `.mailcheck-email-suggestion` class.\n return this.i18n.t('components.mailcheck.suggestion_help_html', {suggestion: this.suggestion})\n } else {\n return null\n }\n },\n\n label() {\n return this.labelOverride || this.i18n.t('activerecord.attributes.user.email')\n }\n },\n\n methods: {\n changed(newValue) {\n this.$emit('changed', newValue)\n },\n\n runMailcheck() {\n nextTick(() => {\n Mailcheck.run({\n email: this.value,\n domains: DOMAINS.domains,\n topLevelDomains: DOMAINS.topLevelDomains,\n secondLevelDomains: DOMAINS.secondLevelDomains,\n\n suggested: (suggestion) => {\n this.suggestion = suggestion.full\n },\n\n empty: () => {\n this.suggestion = null\n }\n })\n })\n },\n\n useSuggestion() {\n this.changed(this.suggestion)\n this.suggestion = null\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep(.mailcheck-email-suggestion) {\n cursor: pointer\n}\n</style>\n","export const DOMAINS = {\n domains: ['hotmail.com', 'gmail.com', 'aol.com', 'yahoo.com', 'yahoo.com.au', 'yahoo.com.ar', 'bigpond.com',\n 'optusnet.com.au', 'tpg.com.au', 'iinet.net.au', 'me.com', 'mac.com', 'outlook.com',\n 'live.com', 'comcast.net', 'googlemail.com', 'msn.com', 'hotmail.co.uk', 'yahoo.co.uk',\n 'facebook.com', 'verizon.net', 'sbcglobal.net', 'att.net', 'gmx.com', 'mail.com', 'icloud.com'],\n secondLevelDomains: ['hotmail'],\n topLevelDomains: []\n}\n","import { render } from \"./email-input-with-mailcheck.vue?vue&type=template&id=3ed97415&scoped=true\"\nimport script from \"./email-input-with-mailcheck.vue?vue&type=script&lang=js\"\nexport * from \"./email-input-with-mailcheck.vue?vue&type=script&lang=js\"\n\nimport \"./email-input-with-mailcheck.vue?vue&type=style&index=0&id=3ed97415&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3ed97415\"]])\n\nexport default __exports__","<template>\n <div class=\"join-organisation-field-wrapper\">\n <checkbox-input v-if=\"useCheckbox\" :checkbox-id=\"calculatedInputId\" :initial-value=\"preChecked\" :input-name=\"calculatedInputName\"\n :label=\"label\" :show-label=\"showLabel\" :validation-errors=\"validationErrors\" @change=\"checkboxChange\" @focus=\"$emit('focus')\" />\n <input v-if=\"useHidden\" :id=\"calculatedInputId\" type=\"hidden\" :name=\"calculatedInputName\" :value=\"implicit\">\n <radio-buttons-input v-if=\"useRadio\" :label=\"label\" :input-name=\"calculatedInputName\" :options=\"radioButtonOptions\"\n :initial-value=\"null\" :show-label=\"showLabel\" :validation-errors=\"validationErrors\"\n @change=\"checkboxChange\" @focus=\"$emit('focus')\" />\n\n <div v-if=\"showConfirmationForNo\" class=\"radio-are-you-sure-message alert alert-warning\" v-html=\"radioSureLabel\" />\n\n <input type=\"hidden\" :name=\"calculatedEmailOptInTypeIdInputName\" :value=\"id\">\n </div>\n</template>\n\n<script>\nimport CheckboxInput from './checkbox-input'\nimport isPresent from '../../helpers/is-present'\nimport RadioButtonsInput from './radio-buttons-input.vue'\nimport WithInputIdAndName from '@/components/inputs/mixins/with-input-id-and-name'\n\nexport default {\n components: { CheckboxInput, RadioButtonsInput },\n\n mixins: [ WithInputIdAndName ],\n\n props: {\n emailOptInTypeData: {\n type: Object,\n required: true\n },\n\n emailOptInTypeFieldNameOverride: {\n type: String,\n required: false\n },\n\n entityName: {\n type: String,\n required: true\n },\n\n label: {\n type: String,\n required: false\n },\n\n showLabel: {\n type: Boolean,\n required: false,\n default: true\n },\n\n validationErrors: {\n type: Array,\n required: false\n }\n },\n\n emits: ['changed', 'focus'],\n\n data() {\n let initialValue = null\n if (this.emailOptInTypeData.modality === 'checkbox') {\n initialValue = this.emailOptInTypeData.preChecked\n } else if (this.emailOptInTypeData.modality === 'hidden') {\n initialValue = this.emailOptInTypeData.implicit\n }\n\n return {\n modality: this.emailOptInTypeData.modality,\n fieldName: 'join-organisation',\n id: this.emailOptInTypeData.id,\n implicit: this.emailOptInTypeData.implicit,\n preChecked: this.emailOptInTypeData.preChecked,\n radioButtonYesLabel: this.emailOptInTypeData.radioButtonYesLabel,\n radioButtonNoLabel: this.emailOptInTypeData.radioButtonNoLabel,\n radioSureLabel: this.emailOptInTypeData.radioSureLabel,\n value: initialValue\n }\n },\n\n computed: {\n calculatedEmailOptInTypeIdInputName() {\n return this.emailOptInTypeFieldNameOverride || `${this.entityName}[email_opt_in_type_id]`\n },\n\n showValidationError() {\n return this.validationErrors && this.validationErrors.length > 0\n },\n\n useCheckbox() {\n return this.modality === 'checkbox'\n },\n\n useHidden() {\n return this.modality === 'hidden'\n },\n\n useRadio() {\n return this.modality === 'radio'\n },\n\n radioButtonOptions() {\n return [\n [ this.radioButtonYesLabel, true ],\n [ this.radioButtonNoLabel, false ]\n ]\n },\n\n showConfirmationForNo() {\n // We need to explicitly compare with false to avoid displaying the message when the user hasn't selected any option yet\n return (this.modality === 'radio' && isPresent(this.radioSureLabel) && this.value === false)\n }\n },\n\n mounted() {\n // Need to emit so that if the user submits the form without checking/unchecking the box,\n // the parent component will have the correct values for these fields\n this.emitValue(true)\n },\n\n methods: {\n checkboxChange(value) {\n this.value = value\n this.emitValue(false)\n },\n\n emitValue(automatedEvent) {\n this.$emit('changed', { emailOptInTypeId: this.id, joinOrganisation: this.value, automatedEvent: automatedEvent })\n }\n }\n}\n</script>\n","import { render } from \"./email-opt-in-input.vue?vue&type=template&id=f66f622a\"\nimport script from \"./email-opt-in-input.vue?vue&type=script&lang=js\"\nexport * from \"./email-opt-in-input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"sms-opt-in-field-wrapper\">\n <checkbox-input v-if=\"useCheckbox\" v-show=\"checkboxVisible\" :checkbox-id=\"calculatedInputId\" :initial-value=\"value\"\n :input-name=\"calculatedInputName\" :label=\"label\" :show-label=\"showLabel\" :validation-errors=\"validationErrors\"\n @change=\"checkboxChanged\" @focus=\"$emit('focus')\" />\n <template v-if=\"useHidden\">\n <input type=\"hidden\" :name=\"inputName\" :value=\"value\">\n <div class=\"mb-2 small-text\">\n <span v-html=\"disclaimer\" />\n </div>\n </template>\n\n <input type=\"hidden\" :name=\"`${entityName}[sms_opt_in_type_id]`\" :value=\"id\">\n </div>\n</template>\n\n<script>\nimport CheckboxInput from './checkbox-input'\nimport WithInputIdAndName from '@/components/inputs/mixins/with-input-id-and-name'\n\nexport default {\n components: { CheckboxInput },\n\n mixins: [ WithInputIdAndName ],\n\n props: {\n entityName: {\n type: String,\n required: true\n },\n\n label: {\n type: String,\n required: false\n },\n\n phoneNumberPresent: {\n type: Boolean,\n required: true\n },\n\n showLabel: {\n type: Boolean,\n required: false,\n default: true\n },\n\n smsOptInTypeData: {\n type: Object,\n required: true\n },\n\n validationErrors: {\n type: Array,\n required: false\n }\n },\n\n emits: ['changed', 'focus'],\n\n data() {\n let initialValue = null\n if (this.smsOptInTypeData.modality === 'hidden') {\n initialValue = true\n } else if (this.smsOptInTypeData.hiddenUntilPhoneFilled) {\n initialValue = this.smsOptInTypeData.preChecked && this.phoneNumberPresent\n } else {\n initialValue = this.smsOptInTypeData.preChecked\n }\n\n return {\n disclaimer: this.smsOptInTypeData.disclaimer,\n fieldName: 'opt-in-sms',\n id: this.smsOptInTypeData.id,\n modality: this.smsOptInTypeData.modality,\n value: initialValue\n }\n },\n\n computed: {\n checkboxVisible() {\n if (this.smsOptInTypeData.hiddenUntilPhoneFilled) {\n return this.phoneNumberPresent\n } else {\n return true\n }\n },\n\n useCheckbox() {\n return this.modality === 'checkbox'\n },\n\n useHidden() {\n return this.modality === 'hidden'\n }\n },\n\n watch: {\n phoneNumberPresent() {\n if (this.smsOptInTypeData.hiddenUntilPhoneFilled) {\n // When the phone number becomes present, we need to update the value to true.\n // When the phone number is removed, we need to update the value to false.\n // Q: Why can't we just use a computed property for this?\n // A: Because we must _emit_ the updated value when it changes.\n this.value = this.phoneNumberPresent\n this.emitValue(true)\n }\n }\n },\n\n mounted() {\n // Need to emit so that if the user submits the form without checking/unchecking the box,\n // the parent component will have the correct values for these fields\n this.emitValue(true)\n },\n\n methods: {\n checkboxChanged(value) {\n this.value = value\n this.emitValue(false)\n },\n\n emitValue(automatedEvent) {\n this.$emit('changed', { smsOptInTypeId: this.id, optInSms: this.value, automatedEvent: automatedEvent })\n }\n }\n}\n</script>\n","import { render } from \"./sms-opt-in-input.vue?vue&type=template&id=74560553\"\nimport script from \"./sms-opt-in-input.vue?vue&type=script&lang=js\"\nexport * from \"./sms-opt-in-input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button ref=\"button\" type=\"submit\"\n :disabled=\"buttonDisabled\"\n class=\"btn btn-primary\"\n @click.prevent=\"$emit('click', $event)\">\n <!-- Q: Why set type=submit if we're going to prevent the default behavior of submitting the form?\n A: Having a submit button at all changes the form behavior by enabling \"Enter to submit\" on text fields -->\n {{ buttonText }}\n </button>\n</template>\n\n<script>\nimport { inject } from 'vue'\nimport PrimaryButton from './primary-button'\n\nexport default {\n extends: PrimaryButton,\n\n props: {\n formValid: {\n type: Boolean,\n required: false,\n default: true\n },\n\n submitInProgress: {\n type: Boolean,\n required: false,\n default: false\n },\n\n submittingLabel: {\n type: String,\n required: false,\n default: function() { return inject('i18n').t('submitting') }\n }\n },\n\n emits: ['click'],\n\n computed: {\n buttonDisabled() {\n return !this.formValid || this.submitInProgress\n },\n\n buttonText() {\n if (this.submitInProgress) {\n return this.submittingLabel\n } else {\n return this.label\n }\n }\n },\n\n methods: {\n click() {\n this.$refs.button.click()\n },\n\n focus() {\n this.$refs.button.focus()\n }\n }\n}\n</script>\n","import { render } from \"./submit-button.vue?vue&type=template&id=4ae84733\"\nimport script from \"./submit-button.vue?vue&type=script&lang=js\"\nexport * from \"./submit-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["string","length","components","Required","mixins","WithInputIdAndName","props","countryOptions","type","Array","required","geoipHostname","String","initializeWithGeoip","Boolean","default","label","inject","t","showLabel","validationErrors","value","emits","data","fieldName","computed","showValidationError","this","mounted","isPresent","fetch","then","resp","json","jsonResponse","updateValue","country_code","toUpperCase","methods","newValue","$emit","_createElementBlock","class","_normalizeClass","$options","$props","key","for","_ctx","inputId","_createBlock","_component_required","_createCommentVNode","_createTextVNode","_toDisplayString","_hoisted_1","_createElementVNode","id","calculatedInputId","name","calculatedInputName","onChange","_cache","$event","target","onFocus","_Fragment","_renderList","country","_hoisted_3","_hoisted_2","shouldShowAdditionalField","fieldConfig","conditionalOn","upstreamFieldName","additionalFieldValue","conditionalOnValue","field","expectedValue","DOMAINS","domains","secondLevelDomains","topLevelDomains","TextInput","disabled","entityName","labelOverride","readonly","suggestion","helpText","i18n","changed","runMailcheck","nextTick","Mailcheck","email","suggested","full","empty","useSuggestion","_createVNode","_component_text_input","autocomplete","onChanged","onBlur","_withCtx","$data","onClick","args","innerHTML","_","CheckboxInput","RadioButtonsInput","emailOptInTypeData","Object","emailOptInTypeFieldNameOverride","initialValue","modality","preChecked","implicit","radioButtonYesLabel","radioButtonNoLabel","radioSureLabel","calculatedEmailOptInTypeIdInputName","useCheckbox","useHidden","useRadio","radioButtonOptions","showConfirmationForNo","emitValue","checkboxChange","automatedEvent","emailOptInTypeId","joinOrganisation","_component_checkbox_input","_component_radio_buttons_input","options","_hoisted_4","phoneNumberPresent","smsOptInTypeData","hiddenUntilPhoneFilled","disclaimer","checkboxVisible","watch","checkboxChanged","smsOptInTypeId","optInSms","inputName","_hoisted_5","extends","PrimaryButton","formValid","submitInProgress","submittingLabel","buttonDisabled","buttonText","click","$refs","button","focus","ref","_withModifiers"],"sourceRoot":""}