{"version":3,"file":"shindan_slide_form-855d48e6.js","sources":["../../../app/javascript/javascripts/composables/inquiry/shindan_validation.ts","../../../app/javascript/images/shindan/nensyu_logo_pc.png","../../../app/javascript/images/shindan/nensyu_logo_sp.png","../../../app/javascript/images/shindan/kakko01.png","../../../app/javascript/images/shindan/kakko02.png","../../../app/javascript/images/shindan/img_woman_pc.png","../../../app/javascript/images/shindan/img_woman_sp.png","../../../app/javascript/images/shindan/img_male_pc.png","../../../app/javascript/images/shindan/img_male_sp.png","../../../app/javascript/images/shindan/bn_no1_pc.png","../../../app/javascript/images/shindan/bn_no1_sp.png","../../../app/javascript/javascripts/components/shindan/shindan_slide_section1.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_section2.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_section3.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_section4.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_section5.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_section6.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_section7.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_section8.vue","../../../app/javascript/javascripts/components/shindan/shindan_slide_box.vue","../../../app/javascript/entrypoints/shindan/shindan_slide_form.ts"],"sourcesContent":["// 年収診断フォームのバリデーション\n// vuelidateのラッパーなので、利用の際はvuelidateのドキュメント(https://vuelidate-next.netlify.app/)も参照ください。\nimport { useVuelidate } from '@vuelidate/core';\nimport { required, maxLength, email, helpers } from '@vuelidate/validators';\nimport { annualIncomeFormat } from '@/javascripts/utils/custom_validators';\nimport { rules } from '@/javascripts/composables/inquiry/validation';\n\nimport type { Ref } from 'vue';\nimport type { ValidationRuleCollection } from '@vuelidate/core';\nimport type Inquiry from '@/javascripts/utils/inquiry';\nimport type { InquiryValidation } from '@/javascripts/composables/inquiry/validation';\n\n/** バリデーションする項目 */\nexport type ValidationKey =\n  'employmentTypeCd' | 'wishfulTimeCd' | 'prefectureCd' |\n  'lastName' | 'firstName' | 'lastNameKana' | 'firstNameKana' |\n  'birthYearCd' | 'phone' | 'email' | 'comment' |\n  'annualIncome' | 'callAcceptance' | 'genderTypeCd';\n\ntype ValidationRules = {\n  [keys in ValidationKey]: ValidationRuleCollection<Inquiry[keys]>\n};\n\nconst shindanValidationRules: ValidationRules = {\n  ...rules,\n  email: {\n    required: helpers.withMessage('メールアドレスを入力してください', required),\n    email: helpers.withMessage('メールアドレスが正しくありません', email),\n    maxLength: helpers.withMessage('80文字以内で入力してください', maxLength(80))\n  },\n  genderTypeCd: {\n    required: helpers.withMessage('性別を選択してください', required)\n  },\n  annualIncome: {\n    required: helpers.withMessage('現在の年収を入力してください', required),\n    numeric: helpers.withMessage('半角数字で正しい年収を入力してください', annualIncomeFormat),\n    maxLength: helpers.withMessage('4桁以内で入力してください', maxLength(4))\n  },\n  callAcceptance: {\n    required: helpers.withMessage('電話でのご連絡を希望するか選択してください', required)\n  },\n  comment: {\n    maxLength: helpers.withMessage('400文字以内で入力してください', maxLength(400))\n  }\n}\n\n/** バリデーション対象となる問い合わせオブジェクト */\ntype InquiryObj = Pick<Inquiry, ValidationKey>;\n\n/**\n * 診断フォームのバリデーションに関するコンポーザブル関数(バリデーション項目を指定)\n * @param inquiry バリデーションする問い合わせインスタンス\n * @param validationFields バリデーションする項目\n */\nexport default function useShindanInquiryValidation(inquiry: InquiryObj | Ref<InquiryObj>): Ref<InquiryValidation> {\n  return useVuelidate(shindanValidationRules, inquiry, { $autoDirty: true });\n}\n","export default \"__VITE_ASSET__c254972a__\"","export default \"__VITE_ASSET__2e45e03f__\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABxSURBVHgB7dExEYAwAATBwCAICzhBGk6wgCOoMHHZrb69+WW/7ndMZB2T2f7xnMcyJjDdw4LrBNcJrhNcJ7hOcJ3gOsF1gusE1wmuE1wnuE5wneA6wXWC6wTXCa4TXCe4TnCd4DrBdYLrBNcJrhNc9wESbwR67Jg7FQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABtSURBVHgB7duxEYAwDARBm4oomU4oDYaAJk67ieIbxb/XEOd1P9891jCC6wTXCa4TXCe4TnCd4DrBdYLrBNcJrhNcJ7hOcJ3gOsF1gusE1wmuE1wnuE5wneA6wXWC6wTXCa4TXLf/xdYU4z78AjksBZOv5HiZAAAAAElFTkSuQmCC\"","export default \"__VITE_ASSET__25cab559__\"","export default \"__VITE_ASSET__0f055db0__\"","export default \"__VITE_ASSET__387318dc__\"","export default \"__VITE_ASSET__9823e93f__\"","export default \"__VITE_ASSET__4cc8261d__\"","export default \"__VITE_ASSET__64daf034__\"","<script setup lang=\"ts\">\nimport { getAreas } from '@/javascripts/utils/inquiry_form_options';\nimport Inquiry from '@/javascripts/utils/inquiry';\nimport SlideIndicator from './slide_indicator.vue';\n\nconst emit = defineEmits(['next']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  currentSlideIndex: number,\n}>();\n\nconst areas = getAreas();\n\nconst emitNextIfUnchanged = function(clicked: number | string) {\n  if (props.inquiry.areaCd == clicked) {\n    emit('next');\n  }\n}\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <div class=\"main_content step_content\">\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <h2>あなたのお住まいのエリアは?</h2>\n      <div class=\"box_step_btn box_step_btn_p01\">\n        <div\n          v-for=\"area in areas\"\n          :key=\"area.cd\"\n          class=\"step_btn\"\n        >\n          <label :for=\"`area_cd_${area.cd}`\">\n            <input\n              :id=\"`area_cd_${area.cd}`\"\n              v-model=\"inquiry.areaCd\"\n              type=\"radio\"\n              name=\"area_cd\"\n              :value=\"area.cd\"\n              @change=\"emit('next')\"\n              @click=\"emitNextIfUnchanged(area.cd)\"\n            >\n            <p>{{ area.text }}</p>\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { getPrefecturesByAreaCd } from '@/javascripts/utils/inquiry_form_options';\nimport Inquiry from '@/javascripts/utils/inquiry';\nimport SlideIndicator from './slide_indicator.vue';\n\nconst emit = defineEmits(['next', 'back']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  currentSlideIndex: number,\n}>();\n\nconst prefectures = getPrefecturesByAreaCd(props.inquiry.areaCd);\n\nconst emitNextIfUnchanged = function(clicked: number | string) {\n  if (props.inquiry.prefectureCd == clicked) {\n    emit('next');\n  }\n}\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <div class=\"main_content step_content\">\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <h2>あなたのお住まいの都道府県は?</h2>\n      <div class=\"box_step_btn\">\n        <div  \n          v-for=\"prefecture in prefectures\"\n          :key=\"prefecture.cd\"\n          class=\"step_btn\"\n        >\n          <label :for=\"`prefecture_${prefecture.cd}`\">\n            <input\n              :id=\"`prefecture_${prefecture.cd}`\"\n              v-model=\"inquiry.prefectureCd\"\n              type=\"radio\"\n              name=\"prefecture_cd\"\n              :value=\"prefecture.cd\"\n              @change=\"emit('next')\"\n              @click=\"emitNextIfUnchanged(prefecture.cd)\"\n            >\n            <p>{{ prefecture.text }}</p>\n          </label>\n        </div>\n      </div>\n      <div class=\"box_btn_nextback\">\n        <div class=\"btn_back\">\n          <button @click.once=\"emit('back')\">\n            <span>戻る</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { getBusinessCategories } from '@/javascripts/utils/inquiry_form_options';\nimport Inquiry from '@/javascripts/utils/inquiry';\nimport SlideIndicator from './slide_indicator.vue';\n\nconst emit = defineEmits(['next', 'back']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  currentSlideIndex: number,\n}>();\n\nconst businessCategories = getBusinessCategories();\n\nconst emitNextIfUnchanged = function(clicked: number | string) {\n  if (props.inquiry.businessCategoryCd == clicked) {\n    emit('next');\n  }\n}\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <div class=\"main_content step_content\">\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <h2>あなたのご希望の業種は?</h2>\n      <div class=\"box_step_btn box_step_btn_p01\">\n        <div\n          v-for=\"businessCategory in businessCategories\"\n          :key=\"businessCategory.cd\"\n          class=\"step_btn\"\n        >\n          <label :for=\"`business_${businessCategory.cd}`\">\n            <input\n              :id=\"`business_${businessCategory.cd}`\"\n              v-model=\"inquiry.businessCategoryCd\"\n              type=\"radio\"\n              name=\"business_cd\"\n              :value=\"businessCategory.cd\"\n              @change=\"emit('next')\"\n              @click=\"emitNextIfUnchanged(businessCategory.cd)\"\n            >\n            <p>{{ businessCategory.text }}</p>\n          </label>\n        </div>\n      </div>\n      <div class=\"box_btn_nextback\">\n        <div class=\"btn_back\">\n          <button @click.once=\"emit('back')\">\n            <span>戻る</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { getEmploymentTypes } from '@/javascripts/utils/inquiry_form_options';\nimport Inquiry from '@/javascripts/utils/inquiry';\nimport SlideIndicator from './slide_indicator.vue';\n\nconst emit = defineEmits(['next', 'back']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  currentSlideIndex: number,\n}>();\n\nconst employmentTypes = getEmploymentTypes();\n\nconst emitNextIfUnchanged = function(clicked: number | string) {\n  if (props.inquiry.employmentTypeCd == clicked) {\n    emit('next');\n  }\n}\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <div class=\"main_content step_content\">\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <h2>あなたのご希望の雇用形態は?</h2>\n      <div class=\"box_step_btn box_step_btn_p01\">\n        <div\n          v-for=\"employmentType in employmentTypes\"\n          :key=\"employmentType.cd\"\n          class=\"step_btn\"\n        >\n          <label :for=\"`emplyment_type_${employmentType.cd}`\">\n            <input\n              :id=\"`emplyment_type_${employmentType.cd}`\"\n              v-model=\"inquiry.employmentTypeCd\"\n              type=\"radio\"\n              name=\"emplyment_type_cd\"\n              :value=\"employmentType.cd\"\n              @change=\"emit('next')\"\n              @click=\"emitNextIfUnchanged(employmentType.cd)\"\n            >\n            <p>{{ employmentType.text }}</p>\n          </label>\n        </div>\n      </div>\n      <div class=\"box_btn_nextback\">\n        <div class=\"btn_back\">\n          <button @click.once=\"emit('back')\">\n            <span>戻る</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport Inquiry from '@/javascripts/utils/inquiry';\nimport SlideIndicator from './slide_indicator.vue';\n\nconst emit = defineEmits(['next', 'back']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  currentSlideIndex: number,\n}>();\n\nconst emitNextIfUnchanged = function(clicked: boolean) {\n  if (props.inquiry.dispensingExperience == clicked) {\n    emit('next');\n  }\n}\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <div class=\"main_content step_content\">\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <h2>調剤業務の経験はありますか?</h2>\n      <div class=\"box_step_btn box_step_btn_p01\">\n        <div class=\"step_btn\">\n          <label for=\"dispensing_experience_true\">\n            <input\n              id=\"dispensing_experience_true\"\n              v-model=\"inquiry.dispensingExperience\"\n              type=\"radio\"\n              name=\"dispensing_experience\"\n              :value=\"true\"\n              @change=\"emit('next')\"\n              @click=\"emitNextIfUnchanged(true)\"\n            >\n            <p>経験あり</p>\n          </label>\n        </div>\n        <div class=\"step_btn\">\n          <label for=\"dispensing_experience_false\">\n            <input\n              id=\"dispensing_experience_false\"\n              v-model=\"inquiry.dispensingExperience\"\n              type=\"radio\"\n              name=\"dispensing_experience\"\n              :value=\"false\"\n              @change=\"emit('next')\"\n              @click=\"emitNextIfUnchanged(false)\"\n            >\n            <p>経験なし</p>\n          </label>\n        </div>\n      </div>\n      <div class=\"box_btn_nextback\">\n        <div class=\"btn_back\">\n          <button @click.once=\"emit('back')\">\n            <span>戻る</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { getBirthYears, getGenderTypes } from '@/javascripts/utils/inquiry_form_options';\nimport type { InquiryValidation } from '@/javascripts/composables/inquiry/validation';\nimport Inquiry from '@/javascripts/utils/inquiry';\nimport SlideIndicator from './slide_indicator.vue';\n\nconst emit = defineEmits(['next', 'back']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  inquiryValidation: InquiryValidation,\n  currentSlideIndex: number,\n}>();\n\nconst birthYears = getBirthYears();\nconst genderTypes = getGenderTypes();\n\n/** 名前と生まれ年のバリデーション結果 */\nconst invalid = computed(() => \n  props.inquiryValidation.genderTypeCd.$invalid || \n  props.inquiryValidation.birthYearCd.$invalid ||\n  props.inquiryValidation.annualIncome.$invalid\n);\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <div class=\"main_content step_content\">\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <h2>生まれ年・性別・<br class=\"view_sp\">現在の年収を教えてください</h2>\n      <div class=\"box_form\">\n        <table>\n          <tr>\n            <th>\n              生まれ年\n            </th>\n            <td>\n              <p class=\"select_box\">\n                <select\n                  v-model=\"inquiry.birthYearCd\"\n                  class=\"shindan_select_inner\"\n                  required\n                >\n                  <option\n                    :value=\"null\"\n                    disabled\n                    selected\n                    style=\"display:none;\"\n                  >\n                    選択してください\n                  </option>\n                  <option\n                    v-for=\"birthYear in birthYears\"\n                    :key=\"birthYear.cd\"\n                    :value=\"birthYear.cd\"\n                  >\n                    {{ birthYear.text }}\n                  </option>\n                </select>\n              </p>\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in inquiryValidation.birthYearCd.$errors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n          <tr class=\"box_input box_input_btn\">\n            <th class=\"input_tit\">\n              性別\n            </th>\n            <td class=\"inner_input_btn\">\n              <div\n                v-for=\"genderType in genderTypes\"\n                :key=\"genderType.cd\"\n                class=\"step_btn\"\n              >\n                <label\n                  class=\"shindan_radio_label\"\n                  :for=\"`gender_type_${genderType.cd}`\"\n                >\n                  <input\n                    :id=\"`gender_type_${genderType.cd}`\"\n                    v-model=\"inquiry.genderTypeCd\"\n                    type=\"radio\"\n                    name=\"gender_type_cd\"\n                    class=\"shindan_radio_input\"\n                    :value=\"genderType.cd\"\n                  >\n                  <p>{{ genderType.text }}</p>\n                </label>\n              </div>\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in inquiryValidation.genderTypeCd.$errors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n          <tr class=\"box_input\">\n            <th class=\"input_tit\">\n              現在の年収\n            </th>\n            <td class=\"box_annualincome\">\n              <input\n                v-model=\"inquiry.annualIncome\"\n                required\n                class=\"annualincome\"\n                placeholder=\"450\"\n                type=\"text\"\n                maxlength=\"4\"\n              >\n              <p class=\"txt_annualincome\">\n                万円\n              </p>\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in inquiryValidation.annualIncome.$errors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n        </table>\n      </div>\n      <div class=\"box_btn_nextback\">\n        <div class=\"btn_back\">\n          <button @click.once=\"emit('back')\">\n            <span>戻る</span>\n          </button>\n        </div>\n        <div class=\"btn_next input_btn\">\n          <button\n            id=\"ph_next_1\"\n            :disabled=\"invalid\"\n            class=\"shindan_nextbtn_area\"\n            :class=\"{\n              'shindan_next_btn_off': invalid,\n              'shindan_next_btn_on': !invalid\n            }\"\n            @click.once=\"$emit('next')\"\n          >\n            <span>次へ</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { InquiryValidation } from '@/javascripts/composables/inquiry/validation';\nimport Inquiry from '@/javascripts/utils/inquiry';\nimport SlideIndicator from './slide_indicator.vue';\n\nconst emit = defineEmits(['next', 'back']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  inquiryValidation: InquiryValidation,\n  currentSlideIndex: number,\n}>();\n\nconst invalid = computed(() => \n  props.inquiryValidation.lastName.$invalid ||\n  props.inquiryValidation.firstName.$invalid || \n  props.inquiryValidation.lastNameKana.$invalid || \n  props.inquiryValidation.firstNameKana.$invalid || \n  props.inquiryValidation.phone.$invalid ||\n  props.inquiryValidation.callAcceptance.$invalid\n);\n\n/** お名前のバリデーションエラー(姓優先) */\nconst nameValidationErrors = computed(\n  () => props.inquiryValidation.lastName.$error ? props.inquiryValidation.lastName.$errors : props.inquiryValidation.firstName.$errors\n);\n\n/** ふりがなのバリデーションメッセージ(姓優先) */\nconst kanaValidationErrors = computed(\n  () => props.inquiryValidation.lastNameKana.$error ? props.inquiryValidation.lastNameKana.$errors : props.inquiryValidation.firstNameKana.$errors\n);\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <div class=\"main_content step_content\">\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <h2>お名前と電話番号をご入力ください</h2>\n      <div class=\"box_form\">\n        <table>\n          <tr>\n            <th>\n              名前\n            </th>\n            <td class=\"input_m\">\n              <input\n                id=\"last_name\"\n                v-model=\"inquiry.lastName\"\n                required\n                class=\"name\"\n                name=\"last_name\"\n                placeholder=\"山田\"\n                type=\"text\"\n              >\n              <input\n                id=\"name\"\n                v-model=\"inquiry.firstName\"\n                required\n                class=\"shindan-input-text\"\n                name=\"first_name\"\n                placeholder=\"太郎\"\n                type=\"text\"\n              >\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in nameValidationErrors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n          <tr>\n            <th>\n              ふりがな\n            </th>\n            <td class=\"input_m\">\n              <input\n                id=\"first_name_kana\"\n                v-model=\"inquiry.firstNameKana\"\n                required\n                class=\"name\"\n                name=\"first_name_kana\"\n                placeholder=\"やまだ\"\n                type=\"text\"\n              >\n              <input\n                id=\"last_name_kana\"\n                v-model=\"inquiry.lastNameKana\"\n                required\n                class=\"name\"\n                name=\"last_name_kana\"\n                placeholder=\"たろう\"\n                type=\"text\"\n              >\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in kanaValidationErrors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n          <tr>\n            <th>\n              電話番号\n            </th>\n            <td class=\"input_l\">\n              <input\n                v-model=\"inquiry.phone\"\n                class=\"tel\"\n                required\n                name=\"phone\"\n                placeholder=\"例:09011111111\"\n                inputmode=\"numeric\"\n                pattern=\"\\d*\"\n                type=\"tel\"\n              >\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in inquiryValidation.phone.$errors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n          <tr class=\"box_input box_input_btn\">\n            <th class=\"input_tit\">\n              電話でのご連絡\n            </th>\n            <td class=\"inner_input_btn\">\n              <div class=\"step_btn\">\n                <label\n                  class=\"shindan_radio_label\"\n                  for=\"call-01\"\n                >\n                  <input\n                    id=\"call-01\"\n                    v-model=\"inquiry.callAcceptance\"\n                    :value=\"true\"\n                    class=\"shindan_radio_input\"\n                    name=\"call_acceptance_flag\"\n                    type=\"radio\"\n                  >\n                  <p>可</p>\n                </label>\n              </div>\n              <div class=\"step_btn\">\n                <label \n                  class=\"shindan_radio_label\"\n                  for=\"call-02\"\n                >\n                  <input\n                    id=\"call-02\"\n                    v-model=\"inquiry.callAcceptance\"\n                    :value=\"false\"\n                    class=\"shindan_radio_input\"\n                    name=\"call_acceptance_flag\"\n                    type=\"radio\"\n                  >\n                  <p>不可</p>\n                </label>\n              </div>\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in inquiryValidation.callAcceptance.$errors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n        </table>\n      </div>\n      <div class=\"box_btn_nextback\">\n        <div class=\"btn_back\">\n          <button @click.once=\"emit('back')\">\n            <span>戻る</span>\n          </button>\n        </div>\n        <div class=\"btn_next input_btn\">\n          <button\n            id=\"ph_next_1\"\n            :disabled=\"invalid\"\n            class=\"shindan_nextbtn_area\"\n            :class=\"{\n              'shindan_next_btn_off': invalid,\n              'shindan_next_btn_on': !invalid\n            }\"\n            @click.once=\"$emit('next')\"\n          >\n            <span>次へ</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport { getWishfulTimes } from '@/javascripts/utils/inquiry_form_options';\nimport SlideIndicator from './slide_indicator.vue';\nimport TermOfServiceModal from '@/javascripts/common/kiyaku.vue'\nimport PrivacyPolicyModal from '@/javascripts/common/privacy_policy_modal.vue'\nimport LoadingAnimation from '@/javascripts/common/loading_animation.vue'\nimport type { InquiryValidation } from '@/javascripts/composables/inquiry/validation';\nimport Inquiry from '@/javascripts/utils/inquiry';\n\nconst emit = defineEmits(['next', 'back']);\n\nconst props = defineProps<{\n  inquiry: Inquiry,\n  inquiryValidation: InquiryValidation,\n  currentSlideIndex: number,\n}>();\n\nconst wishfulTimes = getWishfulTimes();\n\n/** 利用規約モーダルコンポーネント */\nconst termOfServiceModal = ref<InstanceType<typeof TermOfServiceModal> | null>();\n/** 個人情報保護方針モーダルコンポーネント */\nconst privacyPolicyModal = ref<InstanceType<typeof PrivacyPolicyModal> | null>();\n/** ローディングアニメーションコンポーネント */\nconst loadingAnimation = ref<InstanceType<typeof LoadingAnimation> | null>();\n\nconst invalid = computed(() => \n  props.inquiryValidation.email.$invalid ||\n  props.inquiryValidation.wishfulTimeCd.$invalid\n);\n\n/** 利用規約モーダルの表示 */\nconst openTermOfServiceModal = () => {\n  termOfServiceModal.value?.openModal();\n}\n\n/** 個人情報保護方針モーダルの表示 */\nconst openPrivacyPolicyModal = () => {\n  privacyPolicyModal.value?.openModal();\n}\n\n/** 問い合わせデータを送信 */\nconst post = () => {\n  loadingAnimation.value?.show();\n  props.inquiry.postShindanInquiry();\n}\n</script>\n\n<template>\n  <div class=\"inner_content inner_step\">\n    <LoadingAnimation ref=\"loadingAnimation\" />\n    <div class=\"main_content step_content\">\n      <TermOfServiceModal ref=\"termOfServiceModal\" />\n      <PrivacyPolicyModal ref=\"privacyPolicyModal\" />\n      <SlideIndicator :current-slide-index=\"currentSlideIndex\" />\n      <div class=\"box_form\">\n        <p class=\"txt_step\">\n          年収・時給診断の結果を見るには、薬キャリエージェントの転職支援サービスにご登録いただく必要があります。ご希望の条件やプロフィールをもとに最適な求人をご紹介いたします。ぜひ年収・時給診断とともに転職支援サービスにご登録ください。\n        </p>\n        <table>\n          <tr>\n            <th>\n              メールアドレス\n            </th>\n            <td class=\"input_l\">\n              <input\n                v-model=\"inquiry.email\"\n                required\n                autocapitalize=\"off\"\n                name=\"email\"\n                placeholder=\"abc@m3.com\"\n                type=\"email\"\n              >\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in inquiryValidation.email.$errors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n          <tr class=\"box_input box_input_btn\">\n            <th class=\"top_tit\">\n              希望就業時期\n            </th>\n            <td class=\"inner_input_btn02\">\n              <div\n                v-for=\"wishfulTime in wishfulTimes\"\n                :key=\"wishfulTime.cd\"  \n                class=\"step_btn\"\n              >\n                <label\n                  class=\"shindan_radio_label shindan_label_wishfultime\"\n                  :for=\"'wishful_time_cd_'+ wishfulTime.cd\"\n                >\n                  <input\n                    :id=\"'wishful_time_cd_' + wishfulTime.cd\"\n                    v-model=\"inquiry.wishfulTimeCd\"\n                    class=\"shindan_radio_input\"\n                    type=\"radio\"\n                    name=\"wishful_time_cd\"\n                    :value=\"wishfulTime.cd\"\n                  >\n                  <p>{{ wishfulTime.text }}</p>\n                </label>\n              </div>\n            </td>\n          </tr>\n          <tr>\n            <th class=\"view_pc\" />\n            <td class=\"form_error\">\n              <p\n                v-for=\"(error, index) in inquiryValidation.wishfulTimeCd.$errors\"\n                :key=\"index\"\n                class=\"form_errormessage\"\n              >\n                {{ error.$message }}\n              </p>\n            </td>\n          </tr>\n        </table>\n      </div>\n      <div class=\"box_btn_nextback box_btn_nextback_fin\">\n        <div class=\"btn_back\">\n          <button @click.once=\"emit('back')\">\n            <span>戻る</span>\n          </button>\n        </div>\n        <div class=\"btn_next btn_next_fin\">\n          <div class=\"txt_btn_next\">\n            <span\n              class=\"modal_link\"\n              @click=\"openTermOfServiceModal()\"\n            >利用規約</span>・\n            <span\n              class=\"modal_link\"\n              @click=\"openPrivacyPolicyModal()\"\n            >個人情報保護方針</span>に同意し、\n          </div>\n          <button\n            id=\"submit_btn\"\n            :disabled=\"invalid\"\n            class=\"shindan_submit\"\n            @click.once=\"post()\"\n          >\n            <p>転職支援サービスに登録し<br>診断結果を見る</p>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive, computed } from 'vue'\nimport Inquiry from '@/javascripts/utils/inquiry'\nimport useShindanInquiryValidation from '@/javascripts/composables/inquiry/shindan_validation';\nimport SectionTop from './shindan_slide_top.vue';\nimport Section1 from './shindan_slide_section1.vue';\nimport Section2 from './shindan_slide_section2.vue';\nimport Section3 from './shindan_slide_section3.vue';\nimport Section4 from './shindan_slide_section4.vue';\nimport Section5 from './shindan_slide_section5.vue';\nimport Section6 from './shindan_slide_section6.vue';\nimport Section7 from './shindan_slide_section7.vue';\nimport Section8 from './shindan_slide_section8.vue';\n\nconst currentSlideIndex = ref<number>(0);\nconst transitionName = ref<'next' | 'back'>('next');\n\nconst inquiry = reactive(new Inquiry);\n\nconst v$ = useShindanInquiryValidation(inquiry);\n\n/** `next`イベントハンドラー */\nconst next = () => {\n  transitionName.value = 'next';\n  currentSlideIndex.value++;\n} \n\n/** `back`イベントハンドラー */\nconst back = () => {\n  transitionName.value = 'back';\n  currentSlideIndex.value--;\n}\n\n/** スライドコンポーネントリスト */\nconst slideComponents: Vue.Component[] = [\n  SectionTop,\n  Section1,\n  Section2,\n  Section3,\n  Section4,\n  Section5,\n  Section6,\n  Section7,\n  Section8,\n];\n\nconst currentSlideComponent = computed(() => slideComponents[currentSlideIndex.value]);\n</script>\n\n<template>\n  <Transition\n    :name=\"transitionName\"\n    mode=\"out-in\"\n  >\n    <component\n      :is=\"currentSlideComponent\"\n      :inquiry-validation=\"v$\"\n      :inquiry.sync=\"inquiry\"\n      :current-slide-index=\"currentSlideIndex\"\n      @next=\"next\"\n      @back=\"back\"\n    />\n  </Transition>\n</template>\n","import Vue from 'vue';\nimport shindanSlideForm from '@/javascripts/components/shindan/shindan_slide_box.vue';\n\nnew Vue(shindanSlideForm).$mount('#app');\n"],"names":["shindanValidationRules","rules","helpers","required","email","maxLength","annualIncomeFormat","useShindanInquiryValidation","inquiry","useVuelidate","__$_require_199001b3__","__$_require_631c98ee__","__$_require_22dc8d41__","__$_require_249165e0__","__$_require_3c9ed907__","__$_require_1cfeea46__","__$_require_225b251c__","__$_require_b897c170__","__$_require_3489fd86__","__$_require_2d28a148__","areas","getAreas","clicked","props","emit","prefectures","getPrefecturesByAreaCd","businessCategories","getBusinessCategories","employmentTypes","getEmploymentTypes","birthYears","getBirthYears","genderTypes","getGenderTypes","invalid","computed","nameValidationErrors","kanaValidationErrors","wishfulTimes","getWishfulTimes","termOfServiceModal","ref","privacyPolicyModal","loadingAnimation","_a","currentSlideIndex","transitionName","reactive","Inquiry","v$","next","back","slideComponents","SectionTop","Section1","Section2","Section3","Section4","Section5","Section6","Section7","Section8","currentSlideComponent","Vue","shindanSlideForm"],"mappings":"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"}