{"version":3,"file":"favorites-8ac72317.js","sources":["../../../app/javascript/javascripts/common/favorites.vue","../../../app/javascript/entrypoints/favorites.js"],"sourcesContent":["<template>\n  <div>\n    <template v-if=\"fvp.length==0\">\n      <div class=\"favorite_no_data\">\n        <p class=\"first_msg\">現在「お気に入り求人」に保存された情報はありません。</p>\n        <p>検索結果一覧や求人詳細の「お気に入りに保存」ボタンから保存することができます。</p>\n      </div>\n    </template>\n\n    <template v-else>\n      <table class=\"favorite_table\">\n        <tbody>\n          <tr>\n            <th class=\"vacancyName\" scope=\"col\">求人名</th>\n            <th class=\"sp_hidden\" scope=\"col\">給与</th>\n            <th class=\"sp_hidden workingPlace\" scope=\"col\">勤務地</th>\n            <th class=\"sp_hidden\" scope=\"col\">交通機関</th>\n            <th class=\"sp_hidden\" scope=\"col\">勤務時間時間</th>\n            <th class=\"sp_hidden\" scope=\"col\">休日</th>\n            <th scope=\"col\"></th>\n          </tr>\n          <tr v-for=\"fp in fvp\">\n            <td><a v-bind:href=\"detailHrefPrefix + fp.position_cd\" target=\"_blank\">{{ fp.catchcopy }}</a></td>\n            <td class=\"sp_hidden\">{{ fp.salaries_and_allowances }}</td>\n            <td class=\"sp_hidden\">{{ `${fp.prefecture_name} ${fp.city_name}` }}</td>\n            <td class=\"sp_hidden\">{{ fp.transportation_facilities }}</td>\n            <td class=\"sp_hidden\">{{ fp.working_hours }}</td>\n            <td class=\"sp_hidden\">{{ fp.holidays_and_vacation }}</td>\n            <td class=\"favorite_table_btn\">\n              <div class=\"btn_resister\">\n                <a v-bind:href=\"detailHrefPrefix + fp.position_cd + detailHrefSuffix\">\n                  <img v-bind:src=\"imgListRegister\" alt=\"\"/>\n                </a>\n              </div>\n              <div class=\"btn_delete\">\n                <a href=\"#\" ><img v-bind:src=\"imgDeleteBtn\" alt=\"\" v-on:click.stop=\"clickBttn($event)\"/></a>\n                <span v-bind:data-id=\"fp.id\" class=\"js-remove-favorite\"></span>\n              </div>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </template>\n    <div class='total_txt favorite'>計<span>{{ fvp.length }}</span>件</div>\n\n    <div class='attention'>\n      <div class=\"attention_ttl\"><img v-bind:src=\"imgAttention\" alt=\"\"><span class=\"span_txt\">ご注意点</span></div>\n      <ul class='attention_cont'>\n        <li><i class='fa fa-circle'/>お気に入りに登録できる求人数は最大{{ listMaxNum }}件です。</li>\n        <li><i class='fa fa-circle'/>{{ listMaxNum }}件を超えた場合は、登録の古い順に自動的に「お気に入り求人」から削除されます。</li>\n        <li><i class='fa fa-circle'/>掲載終了した求人は自動的に「お気に入り求人」から削除されます。</li>\n      </ul>\n    </div>\n\n  </div>\n</template>\n\n<script>\n  import $ from 'jquery';\n\n  export default {\n    props: {\n      favorite_positions: { require: true, type: Array },\n      domain: { require: true, type: String }\n    },\n    data: function () {\n      return {\n        detailHrefPrefix: \"\",\n        detailHrefSuffix: \"\",\n        imgListRegister: \"\",\n        imgDeleteBtn: \"\",\n        imgAttention: \"\",\n        listMaxNum: 0,\n      }\n    },\n    mounted: function() {\n      if (this.domain === 'touhan') {\n        this.detailHrefPrefix = '/touhan/search/result_detail/'\n        this.detailHrefSuffix = '#TouhanSlideBox'\n        this.imgListRegister = '/img/touhan/search/btn_list_register_off.png'\n        this.imgDeleteBtn = '/img/touhan/search/btn_list_delete_off.png'\n        this.imgAttention = '/img/touhan/search/attention_ttl.png'\n        this.listMaxNum = 40\n      } else {\n        this.detailHrefPrefix = '/search/result_detail/'\n        this.detailHrefSuffix = '#PhSlideBox'\n        this.imgListRegister = '/img/application/btn_list_register_off.gif'\n        this.imgDeleteBtn = '/img/application/btn_list_delete_off.gif'\n        this.imgAttention = '/img/application/i_attention_ttl.png'\n        this.listMaxNum = 80\n      }\n    },\n    computed: {\n      fvp(){ return this.favorite_positions }\n    },\n    methods: {\n      clickBttn(event){\n        let dataId = $(event.target).closest('div').find('span')[0].getAttribute('data-id') // vueのclickEventからJqueryObject作成\n        $(event.target).closest('div').find('span').trigger('click') // right_areaへの伝播(vueJsでは広範囲の改修をする必要あり)\n        this.$emit('remove-fp', dataId) // このVueComponentのリスト対応\n      }\n    }\n  }\n</script>\n","import Vue from 'vue/dist/vue.esm.js'\nimport Cookies from 'js-cookie';\nimport FavoritesList from '@/javascripts/common/favorites.vue'\nimport agentAPI from '@/javascripts/utils/agent_api'\n\nconst domain = document.getElementById('hp_key').getAttribute('domain')\n\nlet FavoritesVue = new Vue({\n  data: function () {\n    return {\n      favorite_positions: [],\n      domain: domain,\n    }\n  },\n  el: '#favoritesList',\n  components: {\n    'favorite': FavoritesList\n  },\n  mounted: function () {\n    let cookies_fp_ids = []\n    let cookie_key = '_fp'\n    if (this.domain == \"touhan\") {\n      cookie_key = '_touhan_fp_ids'\n    }\n    if(Cookies.get(cookie_key)) { cookies_fp_ids = Cookies.get(cookie_key).split(',') }\n    this.setupPositions(cookies_fp_ids)\n  },\n  methods: {\n    setupPositions(cookies_fp_ids){\n      if(cookies_fp_ids.length == 0) { return true }\n      agentAPI.get('/api/v1/position_by_ids?ids=' + cookies_fp_ids.join(',')).then(\n        (response) => { \n          let selected_positions = response.data\n          for (let i = 0; i < cookies_fp_ids.length; i++) {\n            let objectIndex = selected_positions.findIndex(element => element.id === parseInt(cookies_fp_ids[i]))\n            if(objectIndex!=-1) { this.favorite_positions.push(selected_positions[objectIndex]) }\n          }\n        },\n        (error) => { console.log(error) }\n      );\n    },\n    removeFp(remove_position_id){\n      let objectIndex = this.favorite_positions.findIndex(element => element.id === parseInt(remove_position_id))\n      if(objectIndex!=-1) { this.favorite_positions.splice(objectIndex, 1) }\n    }\n  }\n})\n"],"names":["_sfc_main","event","dataId","$","domain","Vue","FavoritesList","cookies_fp_ids","cookie_key","Cookies","agentAPI","response","selected_positions","i","objectIndex","element","error","remove_position_id"],"mappings":"ghBA4DA,MAAAA,EAAA,CACA,MAAA,CACA,mBAAA,CAAA,QAAA,GAAA,KAAA,KAAA,EACA,OAAA,CAAA,QAAA,GAAA,KAAA,MAAA,CACA,EACA,KAAA,UAAA,CACA,MAAA,CACA,iBAAA,GACA,iBAAA,GACA,gBAAA,GACA,aAAA,GACA,aAAA,GACA,WAAA,CACA,CACA,EACA,QAAA,UAAA,CACA,KAAA,SAAA,UACA,KAAA,iBAAA,gCACA,KAAA,iBAAA,kBACA,KAAA,gBAAA,+CACA,KAAA,aAAA,6CACA,KAAA,aAAA,uCACA,KAAA,WAAA,KAEA,KAAA,iBAAA,yBACA,KAAA,iBAAA,cACA,KAAA,gBAAA,6CACA,KAAA,aAAA,2CACA,KAAA,aAAA,uCACA,KAAA,WAAA,GAEA,EACA,SAAA,CACA,KAAA,CAAA,OAAA,KAAA,kBAAA,CACA,EACA,QAAA,CACA,UAAAC,EAAA,CACA,IAAAC,EAAAC,EAAAF,EAAA,MAAA,EAAA,QAAA,KAAA,EAAA,KAAA,MAAA,EAAA,CAAA,EAAA,aAAA,SAAA,EACAE,EAAAF,EAAA,MAAA,EAAA,QAAA,KAAA,EAAA,KAAA,MAAA,EAAA,QAAA,OAAA,EACA,KAAA,MAAA,YAAAC,CAAA,CACA,CACA,CACA,ghFCjGME,EAAS,SAAS,eAAe,QAAQ,EAAE,aAAa,QAAQ,EAEnD,IAAIC,EAAI,CACzB,KAAM,UAAY,CAChB,MAAO,CACL,mBAAoB,CAAE,EACtB,OAAQD,CACT,CACF,EACD,GAAI,iBACJ,WAAY,CACV,SAAYE,CACb,EACD,QAAS,UAAY,CACnB,IAAIC,EAAiB,CAAE,EACnBC,EAAa,MACb,KAAK,QAAU,WACjBA,EAAa,kBAEZC,EAAQ,IAAID,CAAU,IAAKD,EAAiBE,EAAQ,IAAID,CAAU,EAAE,MAAM,GAAG,GAChF,KAAK,eAAeD,CAAc,CACnC,EACD,QAAS,CACP,eAAeA,EAAe,CAC5B,GAAGA,EAAe,QAAU,EAAK,MAAO,GACxCG,EAAS,IAAI,+BAAiCH,EAAe,KAAK,GAAG,CAAC,EAAE,KACrEI,GAAa,CACZ,IAAIC,EAAqBD,EAAS,KAClC,QAASE,EAAI,EAAGA,EAAIN,EAAe,OAAQM,IAAK,CAC9C,IAAIC,EAAcF,EAAmB,UAAUG,GAAWA,EAAQ,KAAO,SAASR,EAAeM,CAAC,CAAC,CAAC,EACjGC,GAAa,IAAM,KAAK,mBAAmB,KAAKF,EAAmBE,CAAW,CAAC,CACnF,CACF,EACAE,GAAU,CAAE,QAAQ,IAAIA,CAAK,CAAG,CACzC,CACK,EACD,SAASC,EAAmB,CAC1B,IAAIH,EAAc,KAAK,mBAAmB,UAAUC,GAAWA,EAAQ,KAAO,SAASE,CAAkB,CAAC,EACvGH,GAAa,IAAM,KAAK,mBAAmB,OAAOA,EAAa,CAAC,CACpE,CACF,CACH,CAAC"}