{"version":3,"file":"js/690-021e9a30de0a46e8473b.js","mappings":"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","sources":["webpack://akita_pref/./app/javascript/packs/libs/AicUi.js","webpack://akita_pref/./app/javascript/packs/utils/PageScrollUsingSelector.js","webpack://akita_pref/./app/javascript/packs/components/Header.js","webpack://akita_pref/./app/javascript/packs/components/Footer.js","webpack://akita_pref/./app/javascript/packs/components/HowtoModal.js","webpack://akita_pref/./app/javascript/packs/components/MarkerAndListSync/Store.js","webpack://akita_pref/./app/javascript/packs/components/MarkerAndListSync/Marker.js","webpack://akita_pref/./app/javascript/packs/components/MarkerAndListSync/Markers.js","webpack://akita_pref/./app/javascript/packs/components/MarkerAndListSync/List.js","webpack://akita_pref/./app/javascript/packs/components/MarkerAndListSync/Lists.js","webpack://akita_pref/./app/javascript/packs/components/MarkerAndListSync/MarkerAndListSync.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/Store.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/Util.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/SortButtons.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/Form.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/StatusText.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/Item.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/Items.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/Pager.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/Loading.js","webpack://akita_pref/./app/javascript/packs/components/JalanExperience/JalanExperience.js","webpack://akita_pref/./app/javascript/packs/components/Loader.js","webpack://akita_pref/./app/javascript/packs/components/TwitterWidgetManager.js","webpack://akita_pref/./app/javascript/packs/components/FacebookWidgetManager.js","webpack://akita_pref/./app/javascript/packs/base.js"],"sourcesContent":["// AicUi\n// [note]\n// hiroshima-cvbなどで用いているAicUiSyncクラスから、本件に必要のないものを省いた状態で流用。\n// railsを使った場合の、コース検索後のパーツ生成のロジックを\n// smmtが把握していないため、そのあたりの補助関数はとりあえず全部入りの状態で移植\n//\n// [note2]\n// wp版(hiroshima-cvbなど)とrails版との大きな違いは、以下\n// - WP版はコース結果をリクエストする先が2つある\n// - WP版はコース結果htmlタグをJSで生成している\n\nimport axios from 'axios';\nimport Rails from '@rails/ujs';\n\nexport default class AicUi {\n constructor(opts = {}) {\n if (!opts.styles) opts.styles = {};\n if (!opts.elms) opts.elms = {};\n if (!opts.chartParams) opts.chartParams = {};\n if (!opts.contentsConfig) opts.contentsConfig = {};\n this.version = '1.0.0';\n // api\n this.apikey = opts.apikey || '';\n this.place = opts.place || 'tokyo';\n this.aicAPIBaseURI = opts.aicAPIBaseURI || 'https://jc-cmn-api-03.machi-pla.com/api_v1/best_plans.json';\n this.defaultLang = opts.defaultLang || 'en';\n this.crLang = opts.crLang || 'en';\n // elements\n this.elms = {\n // form parts\n startSpotIdSelect: document.querySelector('[data-role=\"aic-start-spot-selector\"]'),\n durationSelect: document.querySelector('[data-role=\"aic-duration-selector\"]'),\n startTimeSelect: document.querySelector('[data-role=\"aic-start-time-selector\"]'),\n daysSelect: document.querySelector('[data-role=\"aic-days-selector\"]'),\n transportationSelect: document.querySelector('[data-role=\"aic-transportation-selector\"]'),\n sliders: document.querySelectorAll('[data-role=\"aic-taste-slider\"]'),\n radarChartCanvas: document.querySelector('[data-role=\"aic-radar-chart\"]'),\n radarBtns: document.querySelectorAll('[data-role=\"aic-radar-btn\"]'),\n submitBtn: document.querySelector('[data-role=\"aic-submit-btn\"]'),\n // status parts\n loading: document.querySelector('[data-role=\"aic-loading\"]'),\n noItemMsg: document.querySelector('[data-role=\"aic-no-item-msg\"]'),\n // result contents parts\n contents: document.querySelector('[data-role=\"aic-contents\"]'),\n resultMsg: document.querySelector('[data-role=\"aic-result-msg\"]'),\n resultBtnsArea: document.querySelector('[data-role=\"aic-result-btns-area\"]'),\n copyBtn: document.querySelector('[data-role=\"aic-copy-btn\"]'),\n };\n // [note] イレギュラー項目 (コロナ対策のラジオボタン)\n // this.covid19CheckedRadioSelectorName = '[data-role=\"aic-covid19-radio\"]';\n // design / view\n this.hideClassName = opts.hideClassName || 'd-none';\n this.styles = {\n wrapBgColor: opts.styles.wrapBgColor || '#fff',\n radarInnerFillColor: opts.styles.radarInnerFillColor || '#f90',\n raderOutLineFillColor: opts.styles.raderOutLineFillColor || '#ccc',\n textFontFamily:\n opts.styles.textFontFamily ||\n \"11px Helvetica, Arial, 'メイリオ', Meiryo, 'MS Pゴシック', MS PGothic, sans-serif\",\n textFill: opts.styles.textFill || '#000',\n textAlign: opts.styles.textAlign || 'center',\n };\n this.chartParams = {\n vals: opts.chartParams.vals || [0.2, 0.2, 0.2, 0.2, 0.2],\n range: 0.2,\n targetAxis: -1,\n labels: opts.chartParams.labels || {\n en: ['A.Experience', 'B.Culture', 'C.Shopping', 'D.Art', 'E.Nature'],\n ja: ['A.体験', 'B.歴史', 'C.ショッピング', 'D.アート', 'E.自然'],\n 'zh-tw': ['A.體驗', 'B.文化', 'C.購物', 'D.購物', 'E.自然'],\n th: ['A.ประสบการณ์', 'B.วัฒนธรรม', 'C.ช้อปปิ้ง', 'D.ศิลป', 'E.ธรรมชาติ'],\n },\n };\n // listener\n Array.prototype.slice.call(this.elms.radarBtns, 0).forEach((btn) => {\n btn.addEventListener('click', (e) => {\n this.hundleRadarBtnClick(e);\n });\n });\n this.elms.submitBtn.addEventListener('click', (e) => {\n this.hundleSubmitBtnClick(e);\n return false;\n });\n this.elms.radarChartCanvas.addEventListener('mousedown', (e) => {\n e.preventDefault();\n this.hundleRadarMouseDown(e);\n });\n this.elms.radarChartCanvas.addEventListener('touchstart', (e) => {\n e.preventDefault();\n this.hundleRadarMouseDown(e);\n });\n this.elms.radarChartCanvas.addEventListener('mousemove', (e) => {\n e.preventDefault();\n this.hundleRadarMouseMove(e);\n });\n this.elms.radarChartCanvas.addEventListener('touchmove', (e) => {\n e.preventDefault();\n this.hundleRadarMouseMove(e);\n });\n this.elms.radarChartCanvas.addEventListener('mouseup', (e) => {\n e.preventDefault();\n this.hundleRadarMouseUp(e);\n });\n this.elms.radarChartCanvas.addEventListener('touchend', (e) => {\n e.preventDefault();\n this.hundleRadarMouseUp(e);\n });\n }\n\n // ------------------------------\n // init & handler\n // ------------------------------\n\n init() {\n // RadarChart内の項目などの初期化\n this.showProfile();\n }\n\n hundleRadarMouseDown(e) {\n // [note] targetAxisを更新する作業\n // if (e.originalEvent.changedTouches) e = e.originalEvent.changedTouches[0];\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n const rectTop = this.elms.radarChartCanvas.getBoundingClientRect().top + scrollTop;\n const rectLeft = this.elms.radarChartCanvas.getBoundingClientRect().left + scrollLeft;\n const cW = this.elms.radarChartCanvas.offsetWidth; // キャンバス横サイズ\n const cH = this.elms.radarChartCanvas.offsetHeight; // キャンバス縦サイズ\n const angle = (Math.atan2(e.pageX - rectLeft - cW / 2, rectTop + cH / 2 - e.pageY) + 2 * Math.PI) % (2 * Math.PI);\n const degree = (angle * this.chartParams.vals.length) / (2 * Math.PI);\n if (degree % 1 <= 0.4 || degree % 1 >= 0.6) {\n this.chartParams.targetAxis = Math.round(degree) % this.chartParams.vals.length;\n }\n }\n\n hundleRadarMouseMove(e) {\n if (this.chartParams.targetAxis >= 0) this.setRadarChart(e);\n }\n\n hundleRadarMouseUp(e) {\n if (this.chartParams.targetAxis < 0) return;\n this.setRadarChart(e);\n this.chartParams.targetAxis = -1;\n }\n\n hundleRadarBtnClick(e) {\n const self = e.currentTarget;\n const cat = self.dataset.cat;\n const vector = self.dataset.vector;\n this.changeProfileWithCatAndVector(this.chartParams.range, cat, vector);\n }\n\n // [note] for ooshima-san 対応箇所はこのメソッド内に限定されます\n hundleSubmitBtnClick() {\n this.updateForGaVals();\n\n const requestURI = `${this.aicAPIBaseURI}?apikey=${this.apikey}&place=${\n this.place\n }${this.getRequestParamsForAic()}`;\n\n // [note] この値を使ってリクエストします↓\n console.log(requestURI);\n\n // [note] まずリクエスト開始前にローディングぐるぐるパーツを表示します。\n // ※ jsで制御していますが仕様変更必要ならお願いします\n this.showLoading();\n\n axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest';\n axios.interceptors.request.use((config) => ({\n ...config,\n headers: { ...config.headers, 'X-CSRF-Token': Rails.csrfToken() },\n }));\n\n // [note] リクエストしています\n axios\n .get(requestURI)\n .then((res) => {\n // [note] リクエストが成功した場合はこのthenブロックが実行されます\n // 正しくリクエストを設定するにはapp/javascript/packs/base.jsの\n // AicUiをnewしているところで、apikey, place, aicAPIBaseURIを正しく設定し直してください。\n //\n // [note] リクエストして取得できるデータは以下。これを使って結果タグ(html)を生成してください\n var result = document.getElementById('aic_search_result');\n result.innerHTML = res.data;\n\n this.aiRoutePlannerSubmitBtnScroller.scroll();\n\n // [note] ローディングぐるぐるの必要がなくなったので本パーツを消します。\n // ※ jsで制御していますが仕様変更必要ならお願いします\n this.hideLoading();\n })\n .catch((err) => {\n console.log(`${err}`);\n return null;\n });\n }\n\n aiRoutePlannerSubmitBtnScroller = {\n targetElmIdName: 'aic_search_result',\n yOffset: -150,\n animInterval: 15,\n stepCount: 1,\n stepNum: 20,\n scroll: function () {\n document.documentElement.scrollTop = 0;\n var targetElmYloc = document.getElementById(this.targetElmIdName).getBoundingClientRect().top;\n var stepCount = this.stepCount;\n var stepNum = this.stepNum;\n var distance = targetElmYloc + this.yOffset;\n var scrollNode = setInterval(function () {\n if (stepCount <= stepNum) {\n window.scrollBy(0, distance / stepNum);\n stepCount++;\n } else {\n clearInterval(scrollNode);\n }\n }, this.animInterval);\n },\n };\n\n // ------------------------------\n // Operate View\n // ------------------------------\n\n // [note] Google Tag Manager用に一部値をdata属性としてフロントに吐く\n updateForGaVals() {\n const params = this.getRequestParamsForAic({ includeSecretParams: false });\n this.elms.submitBtn.dataset.gaAicSubmitQueries = params;\n // GTA用の値は値を0〜10に変換して渡す\n // [note] 実際の値と多少ズレる結果となる\n const paramsForGTA = this.chartParams.vals.map((param) => Math.round(param * 100) / 10);\n this.elms.submitBtn.dataset.gaAicPref = paramsForGTA.toString();\n }\n\n updateView() {\n this.resetView();\n\n if (this.fetchingData.webSpots !== null && this.fetchingData.aic !== null) {\n this.showView();\n } else if (this.fetchingData.aic.status.code !== 0) {\n this.showNoItemView();\n } else {\n console.log('Error: courseData is incomplete');\n }\n }\n\n resetView() {\n this.hideNoItemMsg();\n this.hideResultUtilPartsTags();\n this.removeContentsTags();\n }\n\n showView() {\n this.showResultUtilPartsTags();\n this.generateContentsDataForView();\n this.showContentsTags(\n this.aicUiResultTags.getTags({\n contentsData: this.contentsData,\n lang: this.defaultLang,\n })\n );\n }\n\n showNoItemView() {\n this.showNoItemMsg();\n }\n\n showContentsTags(tags) {\n this.elms.contents.innerHTML = tags;\n }\n\n removeContentsTags() {\n this.elms.contents.innerHTML = '';\n }\n\n showResultUtilPartsTags() {\n this.elms.resultMsg.classList.remove(this.hideClassName);\n this.elms.resultBtnsArea.classList.remove(this.hideClassName);\n }\n\n hideResultUtilPartsTags() {\n this.elms.resultMsg.classList.add(this.hideClassName);\n this.elms.resultBtnsArea.classList.add(this.hideClassName);\n }\n\n showLoading() {\n this.elms.loading.classList.remove(this.hideClassName);\n }\n\n hideLoading() {\n this.elms.loading.classList.add(this.hideClassName);\n }\n\n showNoItemMsg() {\n this.elms.noItemMsg.classList.remove(this.hideClassName);\n }\n\n hideNoItemMsg() {\n this.elms.noItemMsg.classList.add(this.hideClassName);\n }\n\n // ------------------------------\n // Operate data\n // ------------------------------\n\n getRequestParamsForAic(opts = {}) {\n const tasteArr = [];\n Array.prototype.slice.call(this.elms.sliders, 0).forEach((slider) => {\n tasteArr.push(Math.round(Number(slider.value)));\n });\n let params = '';\n if (opts.includeSecretParams) {\n params += `&apikey=${this.apikey}`;\n params += `&place=${this.place}`;\n }\n // params += `&_${new Date().getTime()}`;\n params += `&start_spot_id=${this.elms.startSpotIdSelect.value}`;\n params += `&duration=${this.elms.durationSelect.value}`;\n params += `&start_time=${this.elms.startTimeSelect.value}`;\n params += `&days=${this.elms.daysSelect.value}`;\n params += `&transportation=${this.elms.transportationSelect.value}`;\n params += `&taste=${tasteArr.toString()}`;\n params += `&pref=${this.chartParams.vals.toString()}`;\n // params += `&avoid_congestion=${document.querySelector(`${this.covid19CheckedRadioSelectorName}:checked`).value}`;\n return params;\n }\n\n // ------------------------------\n // Operate Form\n // ------------------------------\n\n // レーダーチャート: 初期化\n setRadarChart(e) {\n // if (e.originalEvent.changedTouches) e = e.originalEvent.changedTouches[0];\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n const rectTop = this.elms.radarChartCanvas.getBoundingClientRect().top + scrollTop;\n const rectLeft = this.elms.radarChartCanvas.getBoundingClientRect().left + scrollLeft;\n const cW = this.elms.radarChartCanvas.offsetWidth; // キャンバス横サイズ\n const cH = this.elms.radarChartCanvas.offsetHeight; // キャンバス縦サイズ\n const rdSize = Math.min(cH / 2 - 15, cW / 2 - 25); // レーダーチャートのサイズ\n const vals = this.chartParams.vals;\n const angle = Math.atan2(e.pageX - rectLeft - cW / 2, rectTop + cH / 2 - e.pageY);\n let pos =\n (Math.sqrt((e.pageX - rectLeft - cW / 2) ** 2 + (rectTop + cH / 2 - e.pageY) ** 2) *\n Math.cos(angle - (this.chartParams.targetAxis / vals.length) * Math.PI * 2)) /\n rdSize;\n pos = Math.min(Math.max(pos, 0.2), 1);\n const pos2weight = (position) => ((position - 0.2) / 0.8) ** 2;\n for (let i = 0; i < vals.length; i += 1) {\n if (i !== this.chartParams.targetAxis)\n vals[i] =\n vals[this.chartParams.targetAxis] === 1\n ? (1 - pos2weight(pos)) / vals.length\n : (vals[i] * (1 - pos2weight(pos))) / (1 - vals[this.chartParams.targetAxis]);\n }\n vals[this.chartParams.targetAxis] = pos2weight(pos);\n this.showProfile();\n }\n\n // レーダーチャート: 描画\n drawRadarChart(canvas, val, label) {\n // 与えられたcanvasにレーダーチャートを描く(val,labelは値,ラベルの列)\n const cW = canvas.width; // キャンバス横サイズ\n const cH = canvas.height; // キャンバス縦サイズ\n const rdSize = Math.min(cH / 2 - 10, cW / 2 - 20);\n const ctx = canvas.getContext('2d');\n const n = val.length;\n // 消去\n ctx.fillStyle = this.styles.wrapBgColor;\n ctx.fillRect(0, 0, cW, cH);\n // レーダー内部\n ctx.fillStyle = this.styles.radarInnerFillColor;\n ctx.beginPath();\n ctx.moveTo(cW / 2, cH / 2 - rdSize * val[0]);\n for (let i = 1; i < n; i += 1) {\n ctx.lineTo(\n cW / 2 + rdSize * Math.sin((i / n) * Math.PI * 2) * val[i],\n cH / 2 - rdSize * Math.cos((i / n) * Math.PI * 2) * val[i]\n );\n }\n\n ctx.closePath();\n ctx.fill();\n // 外周・目盛り\n ctx.fillStyle = this.styles.raderOutLineFillColor;\n ctx.strokeStyle = this.styles.raderOutLineFillColor;\n ctx.beginPath();\n ctx.moveTo(cW / 2, cH / 2 - rdSize);\n for (let i = 1; i < n; i += 1) {\n ctx.lineTo(cW / 2 + rdSize * Math.sin((i / n) * Math.PI * 2), cH / 2 - rdSize * Math.cos((i / n) * Math.PI * 2));\n }\n ctx.closePath();\n ctx.stroke();\n for (let i = 0; i < n; i += 1) {\n ctx.beginPath();\n ctx.moveTo(cW / 2, cH / 2);\n ctx.lineTo(cW / 2 + rdSize * Math.sin((i / n) * Math.PI * 2), cH / 2 - rdSize * Math.cos((i / n) * Math.PI * 2));\n ctx.closePath();\n ctx.stroke();\n for (let j = 1; j <= 5; j += 1) {\n ctx.beginPath();\n ctx.arc(\n cW / 2 + (rdSize * Math.sin((i / n) * Math.PI * 2) * j) / 5,\n cH / 2 - (rdSize * Math.cos((i / n) * Math.PI * 2) * j) / 5,\n 2,\n 0,\n Math.PI * 2,\n true\n );\n ctx.fill();\n }\n }\n // ラベル\n ctx.font = this.styles.textFontFamily;\n ctx.textAlign = this.styles.textAlign;\n ctx.fillStyle = this.styles.textFill;\n for (let i = 0; i < n; i += 1) {\n ctx.fillText(\n label[i],\n cW / 2 + rdSize * Math.sin((i / n) * Math.PI * 2) * 1.3,\n cH / 2 - rdSize * Math.cos((i / n) * Math.PI * 2) * 1.1 + 5\n );\n }\n }\n\n // レーダーチャート: 項目内容の生成\n showProfile() {\n // 現在の嗜好を表示する\n const label = this.chartParams.labels[this.crLang]\n ? this.chartParams.labels[this.crLang]\n : this.chartParams.labels[this.defaultLang];\n const weight2pos = (weight) => Math.sqrt(weight) * 0.8 + 0.2;\n // レーダーチャートを描く\n const pos = [];\n for (let i = 0; i < this.chartParams.vals.length; i += 1) {\n pos.push(weight2pos(this.chartParams.vals[i]));\n }\n this.drawRadarChart(this.elms.radarChartCanvas, pos, label);\n }\n\n // レーダーチャート: プロファイルの増減処理\n changeProfile(index, num) {\n // 指定された現在のプロファイル値をチェック\n let tmpChgProfile = this.chartParams.vals[index] + num;\n if (tmpChgProfile > 1) {\n tmpChgProfile = 1;\n } else if (tmpChgProfile < 0) {\n tmpChgProfile = 0;\n }\n this.chartParams.vals[index] = tmpChgProfile;\n // 変更されなかったカテゴリに割り当てるウェイトの数値合計\n const totalPoint = 1 - this.chartParams.vals[index];\n // 変更されなかったカテゴリの割合値の合計\n let totalWeight = 0;\n for (let i = 0; i < this.chartParams.vals.length; i += 1) {\n if (i !== index) {\n totalWeight += this.chartParams.vals[i];\n }\n }\n for (let i = 0; i < this.chartParams.vals.length; i += 1) {\n if (i !== index) {\n if (totalWeight > 0) {\n this.chartParams.vals[i] = totalPoint * (this.chartParams.vals[i] / totalWeight);\n } else if (totalWeight <= 0) {\n this.chartParams.vals[i] = totalPoint * (1 / (this.chartParams.vals.length - 1));\n } else {\n this.chartParams.vals[i] = 0;\n }\n }\n }\n this.showProfile();\n }\n\n // レーダーチャート: ピンポイントに1つのパラメータを変更する(プラスマイナスボタンでの操作想定)\n changeProfileWithCatAndVector(changeNum, cat, vector) {\n const changeSize = vector === 'inc' ? changeNum : changeNum * -1;\n switch (cat) {\n case 'a':\n this.changeProfile(0, changeSize);\n break;\n case 'b':\n this.changeProfile(1, changeSize);\n break;\n case 'c':\n this.changeProfile(2, changeSize);\n break;\n case 'd':\n this.changeProfile(3, changeSize);\n break;\n case 'e':\n this.changeProfile(4, changeSize);\n break;\n default:\n }\n }\n}\n","import $ from 'jquery';\n\nexport default class PageScrollUsingSelector {\n constructor(args = {}) {\n this.$destinationNode = $(args.destinationSelectorName);\n this.offset = args.offset || 0;\n }\n\n scroll() {\n const nodeTop = this.$destinationNode.offset().top;\n $('html,body').animate({ scrollTop: nodeTop + this.offset }, 'slow');\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nconst HeaderStore = {\n viewMode: 'special',\n isAllTimeBasicViewMode: false,\n deviceMode: null,\n isSpContentOpen: false,\n activeSubItemsId: null,\n};\n\n// Header inner elms\nclass HeaderTransformElm {\n constructor() {\n this.elm = null;\n this.specialPcModeClassNames = [];\n this.basicPcModeClassNames = [];\n }\n\n changeBasicView() {\n this.specialPcModeClassNames.forEach((c) => {\n this.elm.classList.remove(c);\n });\n this.basicPcModeClassNames.forEach((c) => {\n this.elm.classList.add(c);\n });\n }\n\n changeSpecialView() {\n this.basicPcModeClassNames.forEach((c) => {\n this.elm.classList.remove(c);\n });\n this.specialPcModeClassNames.forEach((c) => {\n this.elm.classList.add(c);\n });\n }\n\n render() {\n if (HeaderStore.viewMode === 'basic' && HeaderStore.deviceMode === 'pc') this.changeBasicView();\n if (HeaderStore.viewMode === 'special' && HeaderStore.deviceMode === 'pc') this.changeSpecialView();\n }\n}\n\nclass HeaderLead extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-lead\"]');\n this.basicPcModeClassNames = ['d-none'];\n this.specialPcModeClassNames = [];\n }\n}\n\nclass HeaderGnavWrap extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-gnav-wrap\"]');\n this.basicPcModeClassNames = ['order-lg-0'];\n this.specialPcModeClassNames = ['order-lg-1'];\n }\n}\n\nclass HeaderNavsContainer extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-navs-container\"]');\n this.basicPcModeClassNames = ['pt-lg-0'];\n this.specialPcModeClassNames = ['pt-lg-3'];\n }\n}\n\nclass HeaderGnav extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-gnav\"]');\n this.basicPcModeClassNames = [];\n this.specialPcModeClassNames = ['justify-content-between'];\n }\n}\n\nclass HeaderLogoWrap extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-logo-wrap\"]');\n this.basicPcModeClassNames = ['order-lg-0'];\n this.specialPcModeClassNames = ['order-lg-4'];\n }\n}\n\nclass HeaderLogo extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-logo\"]');\n this.basicPcModeClassNames = ['d-block'];\n this.specialPcModeClassNames = ['d-lg-none'];\n }\n}\n\nclass HeaderSpecialLogo extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-special-logo\"]');\n this.basicPcModeClassNames = [];\n this.specialPcModeClassNames = ['d-lg-block'];\n }\n}\n\nclass HeaderUtilNavWrap extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-util-nav-wrap\"]');\n this.basicPcModeClassNames = ['col-lg-auto', 'order-lg-1'];\n this.specialPcModeClassNames = ['col-lg-12', 'order-lg-0', 'text-right'];\n }\n}\n\nclass HeaderUtilNav extends HeaderTransformElm {\n constructor() {\n super();\n this.elm = document.querySelector('[data-role=\"site-header-util-nav\"]');\n this.basicPcModeClassNames = [];\n this.specialPcModeClassNames = ['mt-n3', 'mb-3'];\n }\n}\n\nclass HeaderToggler {\n constructor() {\n this.self = document.querySelector('[data-role=\"site-header-toggler\"]');\n this.barsIcon = this.self.querySelector('.js-site-header-toggler-bars');\n this.timesIcon = this.self.querySelector('.js-site-header-toggler-times');\n this.target = document.querySelector('[data-role=\"site-header-navs-container\"]');\n\n this.self.addEventListener('click', (e) => {\n e.preventDefault();\n this.renderAndUpdateStore();\n });\n }\n\n changeIconToTimes() {\n this.barsIcon.classList.add('d-none');\n this.timesIcon.classList.remove('d-none');\n }\n\n changeIconToBars() {\n this.timesIcon.classList.add('d-none');\n this.barsIcon.classList.remove('d-none');\n }\n\n showTarget() {\n this.target.classList.remove('d-none');\n }\n\n hideTarget() {\n this.target.classList.add('d-none');\n }\n\n renderAndUpdateStore() {\n if (!HeaderStore.isSpContentOpen) {\n this.changeIconToTimes();\n this.showTarget();\n HeaderStore.isSpContentOpen = true;\n } else {\n this.changeIconToBars();\n this.hideTarget();\n HeaderStore.isSpContentOpen = false;\n }\n }\n}\n\nclass HeaderSubItemOpener {\n constructor(elm) {\n this.self = elm;\n this.id = this.self.dataset.id;\n this.openers = document.querySelectorAll('[data-role=\"site-header-sub-items-opener\"]');\n this.targets = document.querySelectorAll('[data-role=\"site-header-sub-items\"]');\n this.target = document.querySelector(`[data-id=\"${this.id}\"][data-role=\"site-header-sub-items\"]`);\n this.selfPlusIcon = this.self.querySelector('.js-site-header-opener-plus');\n this.selfMinusIcon = this.self.querySelector('.js-site-header-opener-minus');\n\n this.self.addEventListener('click', (e) => {\n this.handleClick();\n return false;\n });\n\n // 伝播防止\n Array.prototype.slice.call(this.targets, 0).forEach((subNav) => {\n subNav.addEventListener('click', (e) => {\n e.stopPropagation();\n return false;\n });\n });\n\n this.self.addEventListener('mouseover', () => {\n this.handleMouseover();\n });\n this.self.addEventListener('mouseout', () => {\n this.handleMouseout();\n });\n }\n\n // For SP View\n handleClick() {\n if (HeaderStore.deviceMode === 'sp' && HeaderStore.isSpContentOpen === true) {\n this.hideAllTarget();\n this.changeAllIconToPlus();\n if (HeaderStore.activeSubItemsId !== this.id) {\n this.showTarget();\n this.changeIconToMinus();\n HeaderStore.activeSubItemsId = this.id;\n } else {\n this.changeIconToPlus();\n HeaderStore.activeSubItemsId = null;\n }\n }\n }\n\n // For PC View\n handleMouseover() {\n if (HeaderStore.deviceMode === 'pc') {\n this.hideAllTarget();\n this.showTarget();\n }\n }\n\n // For PC View\n handleMouseout() {\n if (HeaderStore.deviceMode === 'pc') {\n this.hideAllTarget();\n }\n }\n\n hideAllTarget() {\n Array.prototype.slice.call(this.targets, 0).forEach((target) => {\n target.classList.add('d-none');\n });\n }\n\n showTarget() {\n this.target.classList.remove('d-none');\n }\n\n hideTarget() {\n this.target.classList.add('d-none');\n }\n\n changeAllIconToPlus() {\n Array.prototype.slice.call(this.openers, 0).forEach((opener) => {\n opener.querySelector('.js-site-header-opener-plus').classList.remove('d-none');\n opener.querySelector('.js-site-header-opener-minus').classList.add('d-none');\n });\n }\n\n changeIconToPlus() {\n this.selfMinusIcon.classList.add('d-none');\n this.selfPlusIcon.classList.remove('d-none');\n }\n\n changeIconToMinus() {\n this.selfPlusIcon.classList.add('d-none');\n this.selfMinusIcon.classList.remove('d-none');\n }\n}\n\nclass HeaderLangOpener {\n constructor() {\n this.elm = document.querySelector('.site-header-lang-nav-opener');\n this.target = document.querySelector('.site-header-lang-nav-list');\n\n this.state = {\n isShow: false,\n };\n\n this.elm.addEventListener('click', (e) => {\n e.preventDefault();\n if (this.state.isShow) {\n this.hideNav();\n } else {\n this.showNav();\n }\n return false;\n });\n }\n\n showNav() {\n this.target.classList.remove('d-none');\n this.state.isShow = true;\n }\n\n hideNav() {\n this.target.classList.add('d-none');\n this.state.isShow = false;\n }\n}\n\nclass Header {\n constructor(isAllTimeBasicViewMode = false) {\n // config\n this.viewModeYbp = 450;\n this.deviceModeBp = 1132;\n // elements\n this.siteWrapper = document.querySelector('body');\n this.navsContainer = new HeaderNavsContainer();\n this.headerLead = new HeaderLead();\n this.gnavWrap = new HeaderGnavWrap();\n this.gnav = new HeaderGnav();\n this.logoWrap = new HeaderLogoWrap();\n this.logo = new HeaderLogo();\n this.specialLogo = new HeaderSpecialLogo();\n this.utilNavWrap = new HeaderUtilNavWrap();\n this.utilNav = new HeaderUtilNav();\n this.toggler = new HeaderToggler();\n this.openers = [];\n // [note] あとで追加された要素。暫定的にクラス化せずDOM Nodeとして管理\n this.langNavNode = document.querySelector('[data-role=\"site-header-lang-nav-wrap\"]');\n Array.prototype.slice\n .call(document.querySelectorAll('[data-role=\"site-header-sub-items-opener\"]'), 0)\n .forEach((e) => {\n this.openers.push(new HeaderSubItemOpener(e));\n });\n\n this.langOpener = new HeaderLangOpener();\n\n // Event\n\n window.addEventListener('load', () => {\n this.updatateLangNav();\n });\n\n window.addEventListener('scroll', () => {\n this.updateViewModeStore();\n this.updateDeviceModeStore();\n this.render();\n this.updatateLangNav();\n this.langOpener.hideNav();\n });\n\n window.addEventListener('resize', () => {\n this.updateViewModeStore();\n this.updateDeviceModeStore();\n this.render();\n // console.log('viewMode =>', HeaderStore.viewMode);\n // console.log('deviceMode =>', HeaderStore.deviceMode);\n this.langOpener.hideNav();\n });\n\n // store init\n // [note: 210514] ページによってヘッダーの見た目(モード)を固定したいという要望が\n // 上がったため追加。強制的にページのスクロールによるヘッダーのモード変更を拒否するためのオプション\n HeaderStore.isAllTimeBasicViewMode = isAllTimeBasicViewMode;\n if (isAllTimeBasicViewMode) HeaderStore.viewMode = 'basic';\n\n // init\n this.updateViewModeStore();\n this.updateDeviceModeStore();\n this.render();\n }\n\n updatateLangNav() {\n if (HeaderStore.viewMode === 'special') {\n this.langNavNode.classList.remove('d-none');\n } else {\n this.langNavNode.classList.add('d-none');\n }\n }\n\n updateDeviceModeStore() {\n if (window.innerWidth >= this.deviceModeBp) {\n HeaderStore.deviceMode = 'pc';\n } else {\n HeaderStore.deviceMode = 'sp';\n }\n }\n\n updateViewModeStore() {\n // const location = Math.max(\n // document.scrollingElement.scrollTop,\n // document.documentElement.scrollTop\n // );\n const location = document.documentElement.scrollTop;\n if (HeaderStore.isAllTimeBasicViewMode || location > this.viewModeYbp) {\n HeaderStore.viewMode = 'basic';\n } else {\n HeaderStore.viewMode = 'special';\n }\n }\n\n UpdateBodyClass() {\n this.siteWrapper.classList.remove('basic-pc-mode');\n this.siteWrapper.classList.remove('basic-sp-mode');\n this.siteWrapper.classList.remove('special-pc-mode');\n this.siteWrapper.classList.remove('special-sp-mode');\n this.siteWrapper.classList.add(`${HeaderStore.viewMode}-${HeaderStore.deviceMode}-mode`);\n }\n\n render() {\n this.gnavWrap.render();\n this.headerLead.render();\n this.navsContainer.render();\n this.gnav.render();\n this.logoWrap.render();\n this.logo.render();\n this.specialLogo.render();\n this.utilNavWrap.render();\n this.utilNav.render();\n Array.prototype.slice.call(this.openers, 0).forEach((opener) => {\n opener.changeIconToPlus();\n opener.hideTarget();\n });\n this.UpdateBodyClass();\n }\n}\n\nexport default Header;\n","/* eslint-disable */\n\n// [note]\n// 「たびくら」にも本スクリプトを転用しなければならない。\n// たびくら環境ではes6構文を書くことができない\n// ※ 正確には「書かないほうが無難」\n// ※ ページヘッダー実装後、発覚\n// そのためfooterに関しては初めからes5で書いておく\n\n// ------------------------\n// Store\n// ------------------------\n\nvar FooterStore = function (args) {\n this.mainClassInstance = args.mainClassInstance || null;\n this.spBp = 768; // css sm size breakpoint\n this.activeOpenerId = null;\n};\n\n// ------------------------\n// Main Class (Footer)\n// ------------------------\n\nvar Footer = function () {\n this.store = new FooterStore({ mainClassInstance: this });\n\n // openers\n this.openersSelector = document.querySelectorAll(\n '[data-role=\"footer-menu-blob-opener\"]'\n );\n this.openers = [];\n Array.prototype.slice.call(this.openersSelector, 0).forEach(\n function (opener) {\n this.openers.push(\n new FooterMenuBlobOpener({ store: this.store, node: opener })\n );\n }.bind(this)\n );\n\n // contents\n this.contentsSelector = document.querySelectorAll(\n '[data-role=\"footer-menu-blob\"]'\n );\n this.contents = [];\n Array.prototype.slice.call(this.contentsSelector, 0).forEach(\n function (content) {\n this.contents.push(\n new FooterMenuBlob({ store: this.store, node: content })\n );\n }.bind(this)\n );\n\n // init views\n this.render();\n};\n\nFooter.prototype = {\n render: function () {\n this.openers.forEach(\n function (opener) {\n opener.changeIconToDown();\n if (opener.id === this.store.activeOpenerId) opener.changeIconToUp();\n }.bind(this)\n );\n this.contents.forEach(\n function (content) {\n content.hide();\n if (content.id === this.store.activeOpenerId) content.show();\n }.bind(this)\n );\n },\n};\n\n// ------------------------\n// Opener\n// ------------------------\n\nvar FooterMenuBlobOpener = function (args) {\n this.store = args.store;\n this.node = args.node;\n this.id = args.node.dataset.id;\n this.downIcon = args.node.querySelector(\n '.site-footer-nav__list-ttl-opener-down'\n );\n this.upIcon = args.node.querySelector('.site-footer-nav__list-ttl-opener-up');\n this.node.addEventListener(\n 'click',\n function () {\n if (window.innerWidth <= this.store.spBp) {\n this.updateStore(this.id);\n this.store.mainClassInstance.render();\n }\n }.bind(this)\n );\n};\n\nFooterMenuBlobOpener.prototype = {\n updateStore: function (id) {\n if (this.store.activeOpenerId === id) {\n this.store.activeOpenerId = null;\n } else {\n this.store.activeOpenerId = id;\n }\n },\n changeIconToDown: function () {\n this.downIcon.classList.add('d-block');\n this.downIcon.classList.remove('d-none');\n this.upIcon.classList.add('d-none');\n this.upIcon.classList.remove('d-block');\n },\n changeIconToUp: function () {\n this.node.classList.add('is-active');\n this.upIcon.classList.add('d-block');\n this.upIcon.classList.remove('d-none');\n this.downIcon.classList.add('d-none');\n this.downIcon.classList.remove('d-block');\n },\n};\n\n// ------------------------\n// Content\n// ------------------------\n\nvar FooterMenuBlob = function (args) {\n this.store = args.store;\n this.node = args.node;\n this.id = args.node.dataset.id;\n};\n\nFooterMenuBlob.prototype = {\n show: function () {\n this.node.classList.remove('d-none');\n },\n hide: function () {\n this.node.classList.add('d-none');\n },\n};\n\nexport default Footer;\n","// HowtoModal\n// VERSION: 2.0.1\n\n// [note: Overview]\n// - The modal element uses Bootstrap modal component.\n// - The following script only defines the behavior of the content inside the modal.\n// - ※ HowtoModalは1ページにおいて1つしか存在しない要素として想定されています。\n\n// [note: Usage]\n// You only give data param like the following way on HTML.\n//\n//
\n//
\n//
\n//
x n\n//\n// and adjust HTML\n// - give `.d-none` to the second and subsequent `howto-modal-content`.\n//\n// and create and initialize instance..\n// const howtoModal = new HowtoModal();\n// howtoModal.init();\n\n// [note: Usage (Optional)]\n// If you don't want to use data params, you can use css classes or ID.\n// The following example shows how to do this and how to use the other options.\n//\n// html:\n//
\n//
\n//
\n//
\n//\n// js:\n// const howtoModal = new HowtoModal({\n// selector: {\n// modal: '.foo-modal',\n// pagerNext: '.foo-next-pager',\n// pagerPrev: '.foo-prev-pager',\n// content: '.foo-contents',\n// },\n// config: {\n// pagerDisabledClassName: 'foo-disabled',\n// contentHideClassName: 'foo-d-none',\n// },\n// state: {\n// currentPageIndex: 1,\n// }\n// });\n\nclass HowtoModal {\n constructor(opts) {\n if (!opts) opts = {};\n if (!opts.selector) opts.selector = {};\n if (!opts.selector.state) opts.state = {};\n if (!opts.selector.config) opts.config = {};\n this.version = '2.0.0';\n this.selector = {\n modal: opts.selector.modal\n ? document.querySelector(opts.selector.modal)\n : document.querySelector('[data-role=\"howto-modal\"]'),\n pagerNext: opts.selector.pagerNext\n ? document.querySelector(opts.selector.pagerNext)\n : document.querySelector('[data-role=\"howto-modal-next-pager\"]'),\n pagerPrev: opts.selector.pagerPrev\n ? document.querySelector(opts.selector.pagerPrev)\n : document.querySelector('[data-role=\"howto-modal-prev-pager\"]'),\n contents: opts.selector.content\n ? document.querySelectorAll(opts.selector.content)\n : document.querySelectorAll('[data-role=\"howto-modal-content\"]'),\n };\n\n this.config = {\n startPageIndex: 0,\n endPageIndex: this.selector.contents.length - 1,\n pagerDisabledClassName: opts.config.pagerDisabledClassName\n ? opts.config.pagerDisabledClassName\n : 'disabled',\n contentHideClassName: opts.config.contentHideClassName\n ? opts.config.contentHideClassName\n : 'd-none',\n };\n\n this.state = {\n currentPageIndex: opts.state.currentPageIndex\n ? opts.state.currentPageIndex\n : 0,\n nextPagerState: true,\n prevPagerState: false,\n };\n\n this.selector.pagerPrev.addEventListener('click', () => {\n this.countDownPageNum();\n this.updateDesign();\n this.updateContents();\n });\n\n this.selector.pagerNext.addEventListener('click', () => {\n this.countUpPageNum();\n this.updateDesign();\n this.updateContents();\n });\n }\n\n countUpPageNum() {\n if (this.state.currentPageIndex < this.config.endPageIndex) {\n this.state.currentPageIndex += 1;\n }\n }\n\n countDownPageNum() {\n if (this.state.currentPageIndex > this.config.startPageIndex) {\n this.state.currentPageIndex -= 1;\n }\n }\n\n updateDesign() {\n this.selector.pagerPrev.classList.remove(\n this.config.pagerDisabledClassName\n );\n this.selector.pagerNext.classList.remove(\n this.config.pagerDisabledClassName\n );\n if (this.state.currentPageIndex === this.config.startPageIndex) {\n this.selector.pagerPrev.classList.add(this.config.pagerDisabledClassName);\n }\n if (this.state.currentPageIndex === this.config.endPageIndex) {\n this.selector.pagerNext.classList.add(this.config.pagerDisabledClassName);\n }\n }\n\n updateContents() {\n Array.prototype.slice.call(this.selector.contents, 0).forEach((content) => {\n content.classList.add(this.config.contentHideClassName);\n });\n this.selector.contents[this.state.currentPageIndex].classList.remove(\n this.config.contentHideClassName\n );\n }\n\n init() {\n this.updateDesign();\n this.updateContents();\n }\n}\n\nexport default HowtoModal;\n","export default class Store {\n constructor(opts = {}) {\n this._masterInstance = null;\n this._crId = opts.crId || 'a';\n this._listMode = 'vertical';\n this._nodeName = {\n master: '[data-role=\"markerAndListSync\"]',\n marker: '[data-role=\"marker\"]',\n lists: '[data-role=\"listWrapper\"]',\n list: '[data-role=\"list\"]',\n };\n this._className = {\n markerActive: 'marker-and-list-sync-marker-active',\n listActive: 'marker-and-list-sync-list-active',\n };\n }\n get masterInstance() {\n return this._masterInstance;\n }\n set masterInstance(val) {\n this._masterInstance = val;\n }\n get crId() {\n return this._crId;\n }\n set crId(val) {\n this._crId = val;\n }\n get listMode() {\n return this._listMode;\n }\n set listMode(val) {\n this._listMode = val;\n }\n get nodeName() {\n return this._nodeName;\n }\n get className() {\n return this._className;\n }\n set className(val) {\n this._className = val;\n }\n}\n","export default class Marker {\n constructor(opts = {}) {\n this.store = opts.store;\n this.node = opts.node;\n this.id = this.node.dataset.id;\n this.node.addEventListener('click', () => {\n this.handleClick();\n });\n }\n\n handleClick() {\n this.rewriteIdStore();\n this.store.masterInstance.render();\n }\n\n rewriteIdStore() {\n this.store.crId = this.id;\n }\n\n active() {\n this.node.classList.add(this.store.className.markerActive);\n }\n\n inactive() {\n this.node.classList.remove(this.store.className.markerActive);\n }\n}\n","import Marker from './Marker';\n\nexport default class Markers {\n constructor(opts = {}) {\n this.store = opts.store;\n this.children = [];\n Array.prototype.slice\n .call(\n document.querySelectorAll(\n `${this.store.nodeName.master} ${this.store.nodeName.marker}`\n ),\n 0\n )\n .forEach((node) => {\n this.children.push(new Marker({ store: this.store, node: node }));\n });\n }\n\n inActiveMarkers() {\n this.children.forEach((marker) => {\n marker.inactive();\n });\n }\n\n activeCrMarker() {\n this.children.forEach((marker) => {\n if (marker.id === this.store.crId) marker.active();\n });\n }\n\n render() {\n this.inActiveMarkers();\n this.activeCrMarker();\n }\n}\n","export default class List {\n constructor(opts = {}) {\n this.store = opts.store;\n this.node = opts.node;\n this.id = this.node.dataset.id;\n this.rectTop = this.node.getBoundingClientRect().top;\n this.node.addEventListener('click', () => {\n this.handleClick();\n });\n }\n\n handleClick() {\n this.rewriteIdStore();\n // MarkerAndListSync.getInstance().render();\n this.store.masterInstance.render();\n }\n\n rewriteIdStore() {\n this.store.crId = this.id;\n }\n\n active() {\n this.node.classList.add(this.store.className.listActive);\n }\n\n inactive() {\n this.node.classList.remove(this.store.className.listActive);\n }\n}\n","import List from './List';\n\nexport default class Lists {\n constructor(opts = {}) {\n this.store = opts.store;\n this.node = document.querySelector(\n `${this.store.nodeName.master} ${this.store.nodeName.lists}`\n );\n this.children = [];\n\n Array.prototype.slice\n .call(\n document.querySelectorAll(\n `${this.store.nodeName.master} ${this.store.nodeName.list}`\n ),\n 0\n )\n .forEach((node) => {\n this.children.push(new List({ store: this.store, node: node }));\n });\n this.scrollAnimInterval = 10;\n this.scrollAnimSteps = 20; // アニメーションを何段階で刻むか\n }\n\n inActiveLists() {\n this.children.forEach((list) => {\n list.inactive();\n });\n }\n\n activeCrList() {\n this.children.forEach((list) => {\n if (list.id === this.store.crId) list.active();\n });\n }\n\n adjustCrListYpositionByScrolling() {\n this.children.forEach((list) => {\n if (list.id === this.store.crId) {\n const wrapperRectTop = this.node.getBoundingClientRect().top;\n const wrapperScrollTop = this.node.scrollTop;\n const itemRectTop = list.node.getBoundingClientRect().top;\n const itemHeight = list.node.clientHeight;\n const wrapperHeight = this.node.clientHeight;\n const offset = wrapperHeight / 2 - itemHeight / 2;\n const arrivalVerticalLoc =\n itemRectTop - wrapperRectTop + wrapperScrollTop - offset;\n let movingDistance = arrivalVerticalLoc - wrapperScrollTop;\n let vector = null;\n // 現在地と到達地の「方向」を決定する。\n // またmovingDistanceは単に二点間の差を保持しているため、\n // マイナス値を保持している場合はプラス値に変換\n if (movingDistance >= 0) {\n vector = 'down';\n } else {\n movingDistance = movingDistance * -1;\n vector = 'up';\n }\n const unitOfMoving = movingDistance / this.scrollAnimSteps;\n let sum = 0;\n const scrollFn = () => {\n sum += unitOfMoving;\n // 合計距離が既に目的の数量に達するとき\n if (sum >= movingDistance) {\n this.node.scrollTop = arrivalVerticalLoc;\n clearInterval(scrollId);\n return;\n }\n // 現在のカレントアイテムよりも下のものを選ぶ場合\n if (vector === 'down') {\n this.node.scrollTop += unitOfMoving;\n }\n // 現在のカレントアイテムよりも上のものを選ぶ場合\n if (vector === 'up') {\n this.node.scrollTop -= unitOfMoving;\n }\n };\n const scrollId = setInterval(scrollFn, this.scrollAnimInterval);\n }\n });\n }\n\n adjustCrListXpositionByScrolling() {\n this.children.forEach((list) => {\n if (list.id === this.store.crId) {\n const wrapperRectLeft = this.node.getBoundingClientRect().left;\n const wrapperScrollLeft = this.node.scrollLeft;\n const itemRectLeft = list.node.getBoundingClientRect().left;\n const itemWidth = list.node.clientWidth;\n const wrapperWidth = this.node.clientWidth;\n const offset = wrapperWidth / 2 - itemWidth / 2;\n const arrivalHrizonLoc =\n itemRectLeft - wrapperRectLeft + wrapperScrollLeft - offset;\n let movingDistance = arrivalHrizonLoc - wrapperScrollLeft;\n let vector = null;\n // 現在地と到達地の「方向」を決定する。\n // またmovingDistanceは単に二点間の差を保持しているため、\n // マイナス値を保持している場合はプラス値に変換\n if (movingDistance >= 0) {\n vector = 'left';\n } else {\n movingDistance = movingDistance * -1;\n vector = 'right';\n }\n const unitOfMoving = movingDistance / this.scrollAnimSteps;\n let sum = 0;\n const scrollFn = () => {\n sum += unitOfMoving;\n // 合計距離が既に目的の数量に達するとき\n if (sum >= movingDistance) {\n this.node.scrollLeft = arrivalHrizonLoc;\n clearInterval(scrollId);\n return;\n }\n // 現在のカレントアイテムよりも右のものを選ぶ場合\n if (vector === 'left') {\n this.node.scrollLeft += unitOfMoving;\n }\n // 現在のカレントアイテムよりも左のものを選ぶ場合\n if (vector === 'right') {\n this.node.scrollLeft -= unitOfMoving;\n }\n };\n const scrollId = setInterval(scrollFn, this.scrollAnimInterval);\n }\n });\n }\n\n render() {\n this.inActiveLists();\n this.activeCrList();\n if (this.store.listMode === 'vertical') {\n this.adjustCrListYpositionByScrolling();\n } else if (this.store.listMode === 'horizon') {\n this.adjustCrListXpositionByScrolling();\n }\n }\n}\n","// ----------------------------\n// [note]\n// Listsクラスと対応したHTML要素には必ず、スタイルシートで\n// 以下をスタイリングしておくこと\n//\n// verticalモード時↓\n// overflow-x: hidden;\n// overflow-y: auto;\n//\n// horizonモード時↓\n// overflow-x: auto;\n// overflow-y: hidden;\n// ----------------------------\n\nimport Store from './Store';\nimport Markers from './Markers';\nimport Lists from './Lists';\n\nexport default class MarkerAndListSync {\n constructor(opts = {}) {\n // 全class instance間で使い回すデータを生成 & 格納\n this.store = new Store();\n this.store.masterInstance = this;\n\n // 初期化の際のstoreの書き換え指定を反映\n if (opts.crId) this.store.crId = opts.crId;\n if (opts.className) {\n if (opts.className.markerActive)\n this.store.className.markerActive = opts.className.markerActive;\n if (opts.className.listActive)\n this.store.className.listActive = opts.className.listActive;\n }\n\n // 自身のnode及び、サブラッパーたちのインスタンスはこのメインクラスで管理\n this.node = document.querySelector(this.store.nodeName.master);\n this.markers = new Markers({ store: this.store });\n this.lists = new Lists({ store: this.store });\n\n this.render();\n\n window.addEventListener('resize', () => {\n this.handleClick();\n });\n }\n\n handleClick() {\n this.render();\n }\n\n updateStore() {\n this.store.listMode = this.getListModeFromCss();\n }\n\n render() {\n this.updateStore();\n this.markers.render();\n this.lists.render();\n }\n\n getListModeFromCss() {\n const listNode = document.querySelector(this.store.nodeName.lists);\n // リストが縦スクロールモードか横スクロールモードかをcssから判別\n const overflowY = window.getComputedStyle(listNode).overflowY;\n const overflowX = window.getComputedStyle(listNode).overflowX;\n if (\n (overflowY === 'auto' || overflowY === 'scroll') &&\n overflowX === 'hidden'\n ) {\n return 'vertical';\n }\n if (\n (overflowX === 'auto' || overflowX === 'scroll') &&\n overflowY === 'hidden'\n ) {\n return 'horizon';\n }\n return false;\n }\n\n // static getInstance() {\n // if (!this.instance) this.instance = new MarkerAndListSync();\n // return this.instance;\n // }\n}\n","// [note]\n// data for all classes.\n// Classes get and set only from this class instance.\nexport default class JalanExperienceStore {\n constructor(args = {}) {\n this.requestBaseURI = args.requestBaseURI;\n this.itemSizePerPage = args.itemSizePerPage;\n this.requestQuery = args.requestQuery;\n this.fetchData = null;\n this.fetchStatus = null;\n this.jalanStatus = null;\n // user design option\n this.view = {};\n this.view.noImagePath = args.view.noImagePath;\n this.view.sortButtonActiveClassName = args.view.sortButtonActiveClassName;\n this.view.pagerItemActiveClassName = args.view.pagerItemActiveClassName;\n }\n}\n","export default class Util {\n static getUrlQueryAsHash() {\n const queryStr = window.location.search.slice(1); // 文頭?除外\n let queries = {};\n\n // クエリがない場合は空のオブジェクト返却\n if (!queryStr) return queries;\n\n queryStr.split('&').forEach(function (queryStr) {\n const queryArr = queryStr.split('=');\n queries[queryArr[0]] = queryArr[1];\n });\n\n return queries;\n }\n\n static getQueryStrFromHash(hash) {\n let s = '';\n for (let key in hash) {\n s += `${key}=${hash[key]}&`;\n }\n return s.slice(0, -1);\n }\n}\n","import Util from './Util';\n\nexport default class SortButtons {\n constructor(args = {}) {\n this.store = args.store;\n this.nodes = document.querySelectorAll('[data-role=\"jalan-sort-btn\"]');\n Array.prototype.slice.call(this.nodes, 0).forEach((sortBtn) => {\n sortBtn.addEventListener('click', (e) => {\n location.href = `${location.origin}${\n location.pathname\n }?${this.getQueryWithNewSortParam(e)}`;\n });\n });\n }\n\n getQueryWithNewSortParam(event) {\n const queryHash = Util.getUrlQueryAsHash();\n queryHash.activeSort = event.target.dataset.activesort;\n // 併せてページャーのリセット\n if (queryHash.displayFrom) queryHash.displayFrom = 1;\n return Util.getQueryStrFromHash(queryHash);\n }\n\n render() {\n Array.prototype.slice.call(this.nodes, 0).forEach((btn) => {\n btn.classList.remove(this.store.view.sortButtonActiveClassName);\n });\n Array.prototype.slice.call(this.nodes, 0).forEach((btn) => {\n if (\n Number(btn.dataset.activesort) ===\n Number(this.store.requestQuery.activeSort)\n ) {\n btn.classList.add(this.store.view.sortButtonActiveClassName);\n }\n });\n }\n}\n","import Util from './Util';\n\nexport default class Form {\n constructor(args = {}) {\n this.store = args.store;\n this.node = document.querySelector('[data-role=\"jalan-form\"]');\n // inputs\n this.areaInputs = document.querySelectorAll('input[name=\"lrgCd\"]');\n this.catInputs = document.querySelectorAll('input[name=\"category\"]');\n this.commitInputs = document.querySelectorAll('input[name=\"kdCond\"]');\n }\n\n noCheckAllInputs(nodes) {\n Array.prototype.slice.call(nodes, 0).forEach((input) => {\n input.checked = false;\n });\n }\n\n checkCrInput(nodes, queryKey) {\n const queries = Util.getUrlQueryAsHash();\n Array.prototype.slice.call(nodes, 0).forEach((input) => {\n if (input.value === queries[queryKey]) input.checked = true;\n });\n }\n\n updateFormView() {\n this.checkCrInput(this.areaInputs, 'lrgCd');\n this.checkCrInput(this.catInputs, 'category');\n this.checkCrInput(this.commitInputs, 'kdCond');\n }\n\n render() {\n this.updateFormView();\n }\n}\n","export default class StatusText {\n constructor(args = {}) {\n this.store = args.store;\n this.node = document.querySelector('[data-role=\"jalan-status\"]');\n }\n\n getItemsStatusMsg() {\n const crPageNum = Math.floor(this.store.fetchData.displayFrom / this.store.itemSizePerPage) + 1;\n\n return `全${this.store.fetchData.numberOfResults}件のうち、${crPageNum}ページ目を表示しています。`;\n }\n\n getNoItemMsg() {\n return `該当するスポットがありません。`;\n }\n\n getInvalidMsg() {\n return `無効です。`;\n }\n\n getSystemErrorMsg() {\n return `エラーが発生しました。申し訳ございませんが、少し時間をあけてからご利用ください。`;\n }\n\n render() {\n switch (this.store.jalanStatus) {\n case 'systemError':\n this.node.innerHTML = this.getSystemErrorMsg();\n break;\n case 'invalidRequest':\n this.node.innerHTML = this.getInvalidMsg();\n break;\n case 'noItem':\n this.node.innerHTML = this.getNoItemMsg();\n break;\n case 'hasItem':\n this.node.innerHTML = this.getItemsStatusMsg();\n break;\n default:\n break;\n }\n }\n}\n","export default class Item {\n constructor(args = {}) {\n this.store = args.store;\n this.info = args.tagInfo;\n }\n\n render() {\n let description;\n if (this.info.description) {\n description = `

${this.info.description}

`;\n } else {\n description = '';\n }\n return `\n
\n
\n
\n \n
\n
\n
\n ${this.info.area}\n
\n \n
\n ${this.info.address}\n
\n ${description}\n

\n
\n 評価:${this.info.rating || '---'}\n
\n \n \n もっと見る\n \n \n \n
\n
\n
\n `;\n }\n}\n","import Item from './Item';\n\nexport default class Items {\n constructor(args = {}) {\n this.store = args.store;\n this.node = document.querySelector('[data-role=\"jalan-items\"]');\n }\n\n getItemTags() {\n let tags = '';\n this.store.fetchData.kankou.forEach((info) => {\n let item = new Item({\n store: this.store,\n tagInfo: {\n area: info.area.cityName,\n name: info.spotEventName,\n address: info.address,\n description: info.summary,\n rating: info.totalKuchikomiRating,\n picPath: info.planList[0].imageUri01\n ? info.planList[0].imageUri01\n : false,\n permalink: info.planList[0].planUrl,\n },\n });\n tags += item.render();\n item = null;\n });\n return tags;\n }\n\n getNoItemTags() {\n return '表示できるものがありません。';\n }\n\n getErrorTags() {\n return 'このURLは無効です。';\n }\n\n render() {\n switch (this.store.jalanStatus) {\n case 'invalidRequest':\n this.node.innerHTML = this.getErrorTags();\n break;\n case 'noItem':\n this.node.innerHTML = this.getNoItemTags();\n break;\n case 'hasItem':\n this.node.innerHTML = this.getItemTags();\n break;\n default:\n break;\n }\n }\n}\n","import Util from './Util';\n\nexport default class Pager {\n constructor(args = {}) {\n this.store = args.store;\n this.node = document.querySelector('[data-role=\"jalan-pager\"]');\n\n document.querySelector('body').addEventListener('click', (e) => {\n if (e.target.dataset.role === 'jalan-pager-normal-item') {\n const pageNum = Number(e.target.dataset.pagenum);\n location.href = `${location.origin}${\n location.pathname\n }?${this.getQueryWithNewDisplayFromParam(pageNum)}`;\n }\n });\n }\n\n getQueryWithNewDisplayFromParam(num) {\n const queryHash = Util.getUrlQueryAsHash();\n const theDisplayFrom = Number(this.store.itemSizePerPage) * (num - 1) + 1;\n queryHash.displayFrom = theDisplayFrom;\n return Util.getQueryStrFromHash(queryHash);\n }\n\n render() {\n const allItemSize = this.store.fetchData.numberOfResults;\n const pagerItemLength = Math.ceil(allItemSize / this.store.itemSizePerPage);\n const crPageNum =\n Math.floor(\n this.store.fetchData.displayFrom / this.store.itemSizePerPage\n ) + 1;\n\n let tags = '';\n for (let i = 1; i <= pagerItemLength; i += 1) {\n if (i === crPageNum) {\n tags += `
  • ${i}
  • `;\n } else {\n tags += `
  • ${i}
  • `;\n }\n }\n this.node.innerHTML = tags;\n }\n}\n","export default class Loading {\n constructor() {\n this.node = document.querySelector('[data-role=\"jalan-loading\"]');\n }\n\n show() {\n this.node.classList.remove('d-none');\n }\n\n hide() {\n setTimeout(() => {\n this.node.classList.add('d-none');\n }, 200);\n }\n}\n","import $ from 'jquery';\nimport Store from './Store';\nimport SortButtons from './SortButtons';\nimport Form from './Form';\nimport StatusText from './StatusText';\nimport Items from './Items';\nimport Pager from './Pager';\nimport Loading from './Loading';\nimport Util from './Util';\n\nexport default class JalanExperience {\n constructor(args = {}) {\n this.itemSizePerPage = args.itemSizePerPage || 24;\n // init store\n this.store = new Store({\n requestBaseURI: args.requestBaseURI || null,\n itemSizePerPage: this.itemSizePerPage,\n requestQuery: {\n kenCd: args.prefId || null,\n displayFrom: this.itemSizePerPage * (args.initPageNum - 1) + 1,\n displayCount: this.itemSizePerPage,\n activeSort: args.sortType || 1,\n ...Util.getUrlQueryAsHash(), // 既に定義済みのhashを持つ場合、上書き\n },\n view: {\n noImagePath: args.view.noImagePath,\n sortButtonActiveClassName:\n args.view.sortButtonActiveClassName || 'is-active',\n },\n });\n\n this.form = new Form({ store: this.store });\n this.statusText = new StatusText({ store: this.store });\n this.items = new Items({ store: this.store });\n this.pager = new Pager({ store: this.store });\n this.sortButtons = new SortButtons({ store: this.store });\n this.loading = new Loading();\n\n this.scrollPositionNode = document.querySelector(\n '[data-role=\"jalan-result-scroll-position\"]'\n );\n\n // init view\n this.render();\n }\n\n updateStoreWithFetchData(fetchData, fetchStatus) {\n // fetchしてきたデータをstoreに丸々コピー\n this.store.fetchData = fetchData;\n this.store.fetchStatus = fetchStatus;\n\n // fetch内容の状態を示す補助storeを更新\n if (Number(fetchData.result) === 1) {\n this.store.jalanStatus = 'invalidRequest';\n } else if (\n Number(fetchData.result) === 0 &&\n Number(fetchData.numberOfResults) === 0\n ) {\n this.store.jalanStatus = 'noItem';\n } else if (Number(fetchData.result) === 2) {\n this.store.jalanStatus = 'systemError';\n } else {\n this.store.jalanStatus = 'hasItem';\n }\n }\n\n scrollResultLocation(args = {}) {\n document.documentElement.scrollTop = 0;\n const destinationLoc =\n this.scrollPositionNode.getBoundingClientRect().top - args.offset;\n const unitOfMoving = 10;\n const duration = 5;\n let sum = 0;\n let scrollId;\n\n const scrollFn = () => {\n sum += unitOfMoving;\n if (sum >= destinationLoc) {\n document.documentElement.scrollTop = destinationLoc;\n clearInterval(scrollId);\n return;\n }\n document.documentElement.scrollTop = sum;\n };\n scrollId = setInterval(scrollFn, duration);\n }\n\n render() {\n this.loading.show();\n $.ajax({\n url: `${this.store.requestBaseURI}?${Util.getQueryStrFromHash(\n this.store.requestQuery\n )}`,\n dataType: 'json',\n success: (data, status) => {\n // update store\n this.updateStoreWithFetchData(data, status);\n\n // debug\n // console.log('storeは => ', this.store);\n // console.log(\n // 'リクエストしたURLは => ',\n // `${this.store.requestBaseURI}?${Util.getQueryStrFromHash(\n // this.store.requestQuery\n // )}`\n // );\n\n // render\n this.form.render();\n this.statusText.render();\n this.sortButtons.render();\n this.items.render();\n this.pager.render();\n\n this.loading.hide();\n if (window.location.search) this.scrollResultLocation({ offset: 200 });\n },\n error: (data, status) => {\n // サーバにてエラーがあった場合、画面にエラーメッセージを表示する\n // じゃらんAPIのresultは 0:正常 1:エラーの2パターンの為、新たに2を定義し、システムエラーとして扱います\n this.updateStoreWithFetchData({ result: 2 }, data.status);\n this.statusText.render();\n this.loading.hide();\n },\n });\n }\n}\n","export default class Loader {\n constructor(args = {}) {\n this.roleId = args.roleId || 'loader-instance';\n }\n\n show() {\n const node = document.createElement('div');\n node.dataset.role = this.roleId;\n node.innerHTML = `\n
    \n
    \n
    \n Loading...\n
    \n
    \n
    \n `;\n document.body.appendChild(node);\n }\n\n hide() {\n document.querySelector(`[data-role=${this.roleId}]`).remove();\n }\n}\n","// TwitterWidgetManager\n//\n// VERSION: v0.1.0\n// WRITEN_BY: masa-suimoto (masa-sumimoto@gmail.com)\n// DESCRIPTION: Twitterの埋め込みタイムラインの読み込みをリサイズ(レスポンシブ)などのイベントに対し最適化する\n//\n// OPTIONS: コンストラクタに渡す単一のオブジェクトのメンバの詳細\n// wrapElm: string => Facebookのウィジェットiframeと差し代わるaタグ自身をラップするhtmlエレメント\n// pb: number => この値以上を「Lサイズ」と定義。値未満は「Sサイズ」\n// sizeL: object => webサイトがLサイズ時のelmのスタイル定義\n// sizeL.w: number or string => Lサイズ時のelmのwidth\n// sizeL.h: number or string => Lサイズ時のelmのheight\n// sizeS: object => webサイトがSサイズ時のelmのスタイル定義\n// sizeS.w: number or string => Sサイズ時のelmのwidth\n// sizeS.h: number or string => Sサイズ時のelmのheight\n// resizeDelayTime: number => windowのリサイズ時の際に実行されるスクリプトの遅延時間。あまり長いと素早いリサイズ行為に対し、windowのサイズ取得の処理を読み飛ばす傾向にある。なのでデフォルト値100を特段変える必要無し\n\nclass TwitterWidgetManager {\n constructor({ wrapElm, bp, sizeL, sizeS, resizeDelayTime }) {\n this.wrapElm = wrapElm;\n this.bp = bp || 992;\n this.sizeL = {\n w: sizeL ? sizeL.w : '400px',\n h: sizeL ? sizeL.h : '600px',\n };\n this.sizeS = {\n w: sizeS ? sizeS.w : '300px',\n h: sizeS ? sizeS.h : '500px',\n };\n\n // [note] 性質上TwitterはFacebookと違い、ウィジェットのスタイル成形のためのwidth, height指定にcss styleを利用できる。\n // すなわち '200px', 'auto', '100%' などである。ただ兄弟スクリプトであるFacebookWidgetと使用感を統一するため\n // ユーザーはインスタンス生成時には数値を利用すると良い。そのため以下、それを想定した処理を別途追加している。\n this.sizeL.w = typeof this.sizeL.w === 'number' ? `${this.sizeL.w}px` : this.sizeL.w;\n this.sizeL.h = typeof this.sizeL.h === 'number' ? `${this.sizeL.h}px` : this.sizeL.h;\n this.sizeS.w = typeof this.sizeS.w === 'number' ? `${this.sizeS.w}px` : this.sizeS.w;\n this.sizeS.h = typeof this.sizeS.h === 'number' ? `${this.sizeS.h}px` : this.sizeS.h;\n\n this.timerId = null;\n this.resizeDelayTime = resizeDelayTime || 100;\n\n this.state = {\n sizeFlg: window.innerWidth >= this.bp ? 'L' : 'S',\n timerId: null,\n };\n\n window.addEventListener('load', () => {\n this.handleLoad();\n });\n\n window.addEventListener('resize', () => {\n this.handleResize();\n });\n }\n\n handleLoad() {\n this.render();\n }\n\n handleResize() {\n const nowSize = window.innerWidth >= this.bp ? 'L' : 'S';\n if (nowSize !== this.state.sizeFlg) this.render();\n }\n\n delay(...fns) {\n if (this.state.timerId) return;\n this.state.timerId = setTimeout(() => {\n this.state.timerId = null;\n for (let i = 0; i < fns.length; i += 1) {\n const fn = fns[i];\n fn();\n }\n }, this.resizeDelayTime);\n }\n\n setSizeL() {\n const widget = this.wrapElm.querySelector('iframe');\n if (widget) {\n widget.style.width = this.sizeL.w;\n widget.style.height = this.sizeL.h;\n }\n }\n\n setSizeS() {\n const widget = this.wrapElm.querySelector('iframe');\n if (widget) {\n widget.style.width = this.sizeS.w;\n widget.style.height = this.sizeS.h;\n }\n }\n\n setSizeFlgState() {\n this.state.sizeFlg = window.innerWidth >= this.bp ? 'L' : 'S';\n }\n\n render() {\n if (window.innerWidth >= this.bp) {\n this.delay(this.setSizeL.bind(this), this.setSizeFlgState.bind(this));\n } else {\n this.delay(this.setSizeS.bind(this), this.setSizeFlgState.bind(this));\n }\n }\n}\n\nexport default TwitterWidgetManager;\n","// FacebookWidgetManager\n//\n// VERSION: v0.1.0\n// WRITEN_BY: masa-suimoto (masa-sumimoto@gmail.com)\n// DESCRIPTION: Facebookの埋め込みタイムラインの読み込みをリサイズ(レスポンシブ)などのイベントに対し最適化する\n//\n// OPTIONS: コンストラクタに渡す単一のオブジェクトのメンバの詳細\n// elm: string => Facebookのウィジェットiframe自身\n// pb: number => この値以上を「Lサイズ」と定義。値未満は「Sサイズ」\n// sizeL: object => webサイトがLサイズ時のelmのスタイル定義\n// sizeL.w: number => Lサイズ時のelmのwidth\n// sizeL.h: number => Lサイズ時のelmのheight\n// sizeS: object => webサイトがSサイズ時のelmのスタイル定義\n// sizeS.w: number => Sサイズ時のelmのwidth\n// sizeS.h: number => Sサイズ時のelmのheight\n// resizeDelayTime: number => windowのリサイズ時の際に実行されるスクリプトの遅延時間。あまり長いと素早いリサイズ行為に対し、windowのサイズ取得の処理を読み飛ばす傾向にある。なのでデフォルト値100を特段変える必要無し\n\nclass FacebookWidgetManager {\n constructor({ elm, bp, sizeL, sizeS, resizeDelayTime }) {\n this.elm = elm;\n this.bp = bp || 992;\n this.sizeL = {\n w: sizeL ? sizeL.w : 400,\n h: sizeL ? sizeL.h : 600,\n };\n this.sizeS = {\n w: sizeS ? sizeS.w : 300,\n h: sizeS ? sizeS.h : 500,\n };\n this.timerId = null;\n this.resizeDelayTime = resizeDelayTime || 100;\n this.state = {\n sizeFlg: window.innerWidth >= this.bp ? 'L' : 'S',\n timerId: null,\n };\n\n this.reloadWidget = () => {\n if (window.FB && window.FB.XFBL) {\n window.FB.XFBML.parse();\n }\n };\n\n window.addEventListener('load', () => {\n this.handleLoad();\n });\n\n window.addEventListener('resize', () => {\n this.handleResize();\n });\n }\n\n handleLoad() {\n this.render();\n }\n\n handleResize() {\n const nowSize = window.innerWidth >= this.bp ? 'L' : 'S';\n if (nowSize !== this.state.sizeFlg) this.render();\n }\n\n delay(...fns) {\n if (this.state.timerId) return;\n this.state.timerId = setTimeout(() => {\n this.state.timerId = null;\n for (let i = 0; i < fns.length; i += 1) {\n const fn = fns[i];\n fn();\n }\n }, this.resizeDelayTime);\n }\n\n setSizeL() {\n if (this.elm && this.elm.dataset) {\n this.elm.dataset.width = this.sizeL.w;\n this.elm.dataset.height = this.sizeL.h;\n }\n }\n\n setSizeS() {\n if (this.elm && this.elm.dataset) {\n this.elm.dataset.width = this.sizeS.w;\n this.elm.dataset.height = this.sizeS.h;\n }\n }\n\n setSizeFlgState() {\n this.state.sizeFlg = window.innerWidth >= this.bp ? 'L' : 'S';\n }\n\n render() {\n if (window.innerWidth >= this.bp) {\n this.delay(this.setSizeL.bind(this), this.reloadWidget.bind(this), this.setSizeFlgState.bind(this));\n } else {\n this.delay(this.setSizeS.bind(this), this.reloadWidget.bind(this), this.setSizeFlgState.bind(this));\n }\n }\n}\n\nexport default FacebookWidgetManager;\n","import $ from 'jquery';\nimport objectFitImages from 'object-fit-images';\nimport Swiper from 'swiper/bundle';\nimport AicUi from './libs/AicUi';\nimport PageScrollUsingSelector from './utils/PageScrollUsingSelector';\nimport Header from './components/Header';\nimport Footer from './components/Footer';\nimport HowtoModal from './components/HowtoModal';\n// import UrgentNewsModal from './components/UrgentNewsModal';\nimport MarkerAndListSync from './components/MarkerAndListSync/MarkerAndListSync';\nimport JalanExperience from './components/JalanExperience/JalanExperience';\nimport Loader from './components/Loader';\nimport TwitterWidgetManager from './components/TwitterWidgetManager';\nimport FacebookWidgetManager from './components/FacebookWidgetManager';\n\n// -----------------------------------\n// Global utility style class\n// -----------------------------------\n\n// Object Fit Style Polyfill for IE11\n// [doc] https://github.com/fregante/object-fit-images\nif (document.querySelector('.object-fit-cover-cc') !== null) {\n objectFitImages(document.querySelectorAll('.object-fit-cover-cc'));\n}\n\nif (document.querySelector('.object-fit-contain-cc') !== null) {\n objectFitImages(document.querySelectorAll('.object-fit-contain-cc'));\n}\n\n// -----------------------------------\n// Global layout parts\n// -----------------------------------\n\n// [note] 第3階層のページのみ、headerは常にbasicモード\nif (Number(document.querySelector('body').dataset.isShowPage)) {\n const siteHeader = new Header({ isAllTimeBasicViewMode: true });\n} else {\n const siteHeader = new Header();\n}\n\nconst siteFooter = new Footer();\n\n// -----------------------------------\n// Global component parts\n// -----------------------------------\n\n// ページヘッダー内のJTP説明用のモーダルの制御\nif (document.querySelector('[data-role=\"howto-modal\"]') !== null) {\n const howToModal = new HowtoModal();\n howToModal.init();\n}\n\n// if (document.querySelector('[data-role=\"urgent-news-modal\"]') !== null) {\n// const urgentNewsModal = new UrgentNewsModal();\n// urgentNewsModal.init();\n// }\n\n// -----------------------------------\n// Shared parts\n// -----------------------------------\n\n// サブページのスライド式メインビジュアル用のswiper\nif (document.querySelector('.sub-page-mv-swiper-container') !== null) {\n const subPageMvSwiper = new Swiper('.sub-page-mv-swiper-container.swiper-container', {\n slidesPerColumn: 1,\n effect: 'fade',\n fadeEffect: {\n crossFade: true,\n },\n speed: 1000,\n autoplay: {\n delay: 4000,\n },\n pagination: {\n el: '.sub-page-mv-swiper-container .swiper-pagination',\n clickable: true,\n },\n loop: true,\n });\n}\n\n// 検索フォームが存在するページにおいて、urlにクエリが存在する場合はスクロール処理を入れる\n// spots index & courses index & events index 共通\n//\n// [note 2022.08.01]\n// 旧仕様においてローダーの表示非表示に「LoadListener.js」というスクリプトを間に挟んで処理していたが、\n// 現時点でこれは必要ないと判断するため削除した。\nif (document.querySelector('#postFormSearchResult') !== null && window.location.search) {\n const loader = new Loader();\n const scroller = new PageScrollUsingSelector({\n destinationSelectorName: '#postFormSearchResult',\n offset: -320,\n });\n\n // [note] 現仕様においてはロードしている雰囲気を出すためにローダーを配置しているにすぎない\n loader.show();\n setTimeout(() => {\n scroller.scroll();\n loader.hide();\n }, 300);\n}\n\n// AICとJTPのページにおけるアラート処理 for IE11\n(() => {\n function showIeBrowserErrorAlert() {\n const errorMsg =\n 'こちらのページの閲覧推奨ブラウザは、Chrome, Safari, Firefox です。IE11は非対応となっており、推奨のブラウザのご利用をお願いいたします。';\n const userAgent = window.navigator.userAgent.toUpperCase();\n if (userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('TRIDENT') === -1) {\n console.log('not IE');\n } else {\n alert(errorMsg);\n }\n }\n\n // 処理はIE11に対応していない特定のページに限る\n if (document.querySelector('.japan-concierge') !== null || document.querySelector('#page_conciergesIndex') !== null) {\n showIeBrowserErrorAlert();\n }\n})();\n\n// -----------------------------------\n// For page\n// -----------------------------------\n\n// spot一覧用のCarousel\nif (document.querySelector('.page-carousel-swiper-container') !== null) {\n // eslint-disable-next-line no-unused-vars\n const spotsShowSwiper = new Swiper('.page-carousel-swiper-container .swiper-container', {\n slidesPerView: 1,\n spaceBetween: 30,\n centeredSlides: true,\n loop: true,\n speed: 600,\n navigation: {\n nextEl: '.page-carousel-swiper-container .swiper-btn--type_next',\n prevEl: '.page-carousel-swiper-container .swiper-btn--type_prev',\n },\n breakpoints: {\n 1200: {\n slidesPerView: 3,\n spaceBetween: 20,\n },\n 992: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 10,\n },\n 420: {\n slidesPerView: 1,\n spaceBetween: 30,\n },\n },\n });\n}\n\n// spot一覧用のCarousel(関連するブランニューアキタ)\nif (document.querySelector('.page-carousel-swiper-container-brandnew') !== null) {\n const slideLength = document.querySelectorAll('.page-carousel-swiper-container-brandnew .swiper-slide').length;\n const swiperElm = document.querySelector('.page-carousel-swiper-container-brandnew');\n\n if (slideLength === 1) {\n swiperElm.classList.add('page-carousel-swiper-container-brandnew--type_col-1');\n\n const slidesPerView = 1;\n const isSlidable =\n document.querySelector('.page-carousel-swiper-container-brandnew .swiper-slide').length > slidesPerView;\n const containerModifierClass = isSlidable ? 'is-active swiper-container-' : 'swiper-container-';\n // eslint-disable-next-line no-unused-vars\n const topAreasSwiper = new Swiper('.page-carousel-swiper-container-brandnew .swiper-container', {\n containerModifierClass,\n speed: 400,\n spaceBetween: 40,\n slidesPerView,\n loop: isSlidable,\n navigation: {\n nextEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_next',\n prevEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_prev',\n },\n watchOverflow: true,\n });\n }\n\n if (slideLength === 2) {\n swiperElm.classList.add('page-carousel-swiper-container-brandnew--type_col-2');\n\n const slidesPerView = 1;\n const isSlidable =\n document.querySelector('.page-carousel-swiper-container-brandnew .swiper-slide').length > slidesPerView;\n const containerModifierClass = isSlidable ? 'is-active swiper-container-' : 'swiper-container-';\n // eslint-disable-next-line no-unused-vars\n const topAreasSwiper = new Swiper('.page-carousel-swiper-container-brandnew .swiper-container', {\n containerModifierClass,\n speed: 400,\n spaceBetween: 40,\n slidesPerView,\n loop: true,\n navigation: {\n nextEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_next',\n prevEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_prev',\n },\n watchOverflow: true,\n breakpoints: {\n 1200: {\n slidesPerView: 3,\n spaceBetween: 20,\n loop: isSlidable,\n },\n 992: {\n slidesPerView: 2,\n spaceBetween: 20,\n loop: isSlidable,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 10,\n loop: isSlidable,\n },\n 420: {\n slidesPerView: 1,\n spaceBetween: 30,\n },\n },\n });\n }\n\n if (slideLength === 3) {\n swiperElm.classList.add('page-carousel-swiper-container-brandnew--type_col-2');\n\n const slidesPerView = 1;\n const isSlidable =\n document.querySelector('.page-carousel-swiper-container-brandnew .swiper-slide').length > slidesPerView;\n const containerModifierClass = isSlidable ? 'is-active swiper-container-' : 'swiper-container-';\n // eslint-disable-next-line no-unused-vars\n const topAreasSwiper = new Swiper('.page-carousel-swiper-container-brandnew .swiper-container', {\n containerModifierClass,\n speed: 400,\n spaceBetween: 40,\n slidesPerView,\n loop: true,\n navigation: {\n nextEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_next',\n prevEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_prev',\n },\n watchOverflow: true,\n breakpoints: {\n 1200: {\n slidesPerView: 3,\n spaceBetween: 20,\n loop: isSlidable,\n },\n 992: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 10,\n },\n 420: {\n slidesPerView: 1,\n spaceBetween: 30,\n },\n },\n });\n }\n\n if (slideLength > 3) {\n const swiperElm = document.querySelector('.page-carousel-swiper-container-brandnew');\n\n // eslint-disable-next-line no-unused-vars\n const spotsShowSwiper = new Swiper('.page-carousel-swiper-container-brandnew .swiper-container', {\n slidesPerView: 1,\n spaceBetween: 30,\n centeredSlides: true,\n loop: true,\n speed: 600,\n navigation: {\n nextEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_next',\n prevEl: '.page-carousel-swiper-container-brandnew .swiper-btn--type_prev',\n },\n breakpoints: {\n 1200: {\n slidesPerView: 3,\n spaceBetween: 20,\n },\n 992: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 10,\n },\n 420: {\n slidesPerView: 1,\n spaceBetween: 30,\n },\n },\n });\n }\n}\n\n// top page areas section Carousel\nif (document.querySelector('.top-areas-carousel-swiper-container') !== null) {\n const slidesPerView = 1;\n const isSlidable =\n document.querySelector('.top-areas-carousel-swiper-container .swiper-slide').length > slidesPerView;\n const containerModifierClass = isSlidable ? 'is-active swiper-container-' : 'swiper-container-';\n // eslint-disable-next-line no-unused-vars\n const topAreasSwiper = new Swiper('.top-areas-carousel-swiper-container .swiper-container', {\n containerModifierClass,\n speed: 400,\n spaceBetween: 40,\n slidesPerView,\n loop: isSlidable,\n navigation: {\n nextEl: '.top-areas-carousel-swiper-container .swiper-btn--type_next',\n prevEl: '.top-areas-carousel-swiper-container .swiper-btn--type_prev',\n },\n watchOverflow: true,\n breakpoints: {\n 1200: {\n slidesPerView: 3,\n spaceBetween: 20,\n },\n 992: {\n slidesPerView: 2,\n spaceBetween: 20,\n loop: true,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 10,\n loop: true,\n },\n 420: {\n slidesPerView: 1,\n spaceBetween: 30,\n loop: true,\n },\n },\n });\n}\n\n// topページのmovieエリア\nif (document.querySelector('#topMovieModal') !== null) {\n // サムネイルクリック時のモーダル内動画src指定\n Array.prototype.slice.call(document.querySelectorAll('.js-top-movie-modal-trigger'), 0).forEach((node) => {\n node.addEventListener('click', () => {\n const { url } = node.dataset;\n document.querySelector('#topYoutubeMovie').src = url;\n });\n });\n // モーダル閉じた時のモーダル内動画src空に\n $('#topMovieModal').on('hide.bs.modal', () => {\n document.querySelector('#topYoutubeMovie').src = '';\n });\n}\n\n// topページのmapエリアのパーツ\nif (document.querySelector('[data-role=\"markerAndListSync\"]') !== null) {\n const markerAndListSync = new MarkerAndListSync({\n crId: 'a',\n className: {\n markerActive: 'top-map__marker--status_active',\n listActive: 'top-map__list--status_active',\n },\n });\n}\n\n// For AI Plan Page\nif (document.querySelector('[data-role=\"aic-form\"]') !== null) {\n const aicUi = new AicUi({\n apikey: 'd0wI2Hldi2itkfCPzR4j', // dummmy\n place: 'akita_pref', // dummmy\n aicAPIBaseURI: '/aiplan.js',\n defaultLang: 'ja',\n crLang: 'ja',\n styles: {\n radarInnerFillColor: '#a3bffa',\n },\n chartParams: {\n labels: {\n ja: ['A.体験', 'B.歴史・文化', 'C.買い物', 'D.癒し', 'E.自然'],\n },\n },\n });\n aicUi.init();\n}\n\n// reservationページのじゃらん体験\nif (document.querySelector('[data-role=\"jalan-form\"]') !== null) {\n const jalanExperience = new JalanExperience({\n requestBaseURI: '/jalan_experiences',\n prefId: '050000',\n itemSizePerPage: 24,\n initPageNum: 1,\n sortType: 1,\n view: {\n noImagePath: document.querySelector('[data-role=\"jalan-no-img-path\"]').src,\n sortButtonActiveClassName: '--active',\n },\n });\n}\n\n// bookingページ: たびくらフォームのサブミットの定義\nif (document.querySelector('[data-role=\"booking-form\"]') !== null) {\n document.querySelector('[data-role=\"booking-submit\"]').addEventListener('click', (e) => {\n // Formより参照した値を利用\n const url = document.bookingForm.action;\n const prefVal = document.bookingForm.pf.value;\n const sectionVal = document.bookingForm.rg.value;\n const areaVal = document.bookingForm.ar.value;\n const numberOfPeopleVal = document.bookingForm.cp.value;\n const numberOfRoomVal = document.bookingForm.rn.value;\n const minBudgetVal = document.bookingForm.pn.value;\n const maxBudgetVal = document.bookingForm.px.value;\n const roomTypeVal = document.bookingForm.rt.value;\n const mealTypeVal = document.bookingForm.mc.value;\n const keywordsVal = document.bookingForm.kw.value;\n\n // Formから参照した値を加工し利用\n const dateVal = document.bookingForm.sd.value.replace(/-/g, '');\n const kodawariNodes = document.bookingForm.kd;\n const kodawariVals = [];\n Array.prototype.slice.call(kodawariNodes, 0).forEach((node) => {\n if (node.checked) kodawariVals.push(node.value);\n });\n\n const requestURL = `${url}?pf=${prefVal}&rg=${sectionVal}&ar=${areaVal}&sd=${dateVal}&cp=${numberOfPeopleVal}&rn=${numberOfRoomVal}&pn=${minBudgetVal}&px=${maxBudgetVal}&rt=${roomTypeVal}&mc=${mealTypeVal}&kw=${keywordsVal}&kd=${kodawariVals}`;\n\n // debug\n // console.log(requestURL);\n\n window.location.href = requestURL;\n return false;\n });\n}\n\n// for top page SNS widgets\nif (\n document.querySelector('[data-js-role=\"facebook-widget-wrap\"]') !== null &&\n document.querySelector('[data-js-role=\"twitter-widget-wrap\"]') !== null\n) {\n // [note]\n // TwitterのウィジェットのみPageSpeed Insightのwebp関連の改善項目に引っ掛かるので\n // 遅延読み込みする\n let inActiveTwitterWedget = true;\n const offsetYRectTop = -700;\n window.addEventListener('scroll', () => {\n const twitterWidgetRectTop = document\n .querySelector('[data-js-role=\"twitter-widget-wrap\"]')\n .getBoundingClientRect().top;\n const targetYLocation = twitterWidgetRectTop + offsetYRectTop;\n\n // 所定の場所に到達したらtwitter weget用のscriptを読み込む\n if (targetYLocation < 0 && inActiveTwitterWedget) {\n inActiveTwitterWedget = false;\n const script = document.createElement('script');\n script.src = 'https://platform.twitter.com/widgets.js';\n document.body.appendChild(script);\n }\n });\n\n // [note]\n // ウィジェットはレスポンシブに対応していないため\n // windowのリサイズの際にウィジェットの見た目を監視するスクリプトを用意する\n\n // eslint-disable-next-line\n new FacebookWidgetManager({\n elm: document.querySelector('.fb-page'),\n bp: 1132,\n sizeL: {\n w: 400,\n h: 600,\n },\n sizeS: {\n w: 300,\n h: 500,\n },\n });\n // eslint-disable-next-line\n new TwitterWidgetManager({\n wrapElm: document.querySelector('[data-js-role=\"twitter-widget-wrap\"]'),\n bp: 1132,\n sizeL: {\n w: 400,\n h: 600,\n },\n sizeS: {\n w: 300,\n h: 500,\n },\n });\n}\n\n// tab\n//\n// 汎用 jquery利用\nif (document.querySelector('#tab-cmn') !== null) {\n $(() => {\n $('.tab-cmn-menu__item').on('click', function () {\n let tabWrap = $(this).parents('#tab-cmn');\n let tabBtn = tabWrap.find('.tab-cmn-menu__item');\n let tabContents = tabWrap.find('.tab-cmn-contents');\n tabBtn.removeClass('is-active');\n $(this).addClass('is-active');\n let elmIndex = tabBtn.index(this);\n tabContents.removeClass('is-active');\n tabContents.eq(elmIndex).addClass('is-active');\n });\n });\n}\n"],"names":["AicUi","constructor","opts","styles","elms","chartParams","contentsConfig","this","version","apikey","place","aicAPIBaseURI","defaultLang","crLang","startSpotIdSelect","document","querySelector","durationSelect","startTimeSelect","daysSelect","transportationSelect","sliders","querySelectorAll","radarChartCanvas","radarBtns","submitBtn","loading","noItemMsg","contents","resultMsg","resultBtnsArea","copyBtn","hideClassName","wrapBgColor","radarInnerFillColor","raderOutLineFillColor","textFontFamily","textFill","textAlign","vals","range","targetAxis","labels","en","ja","th","Array","prototype","slice","call","forEach","btn","addEventListener","e","hundleRadarBtnClick","hundleSubmitBtnClick","preventDefault","hundleRadarMouseDown","hundleRadarMouseMove","hundleRadarMouseUp","init","showProfile","scrollTop","window","pageYOffset","documentElement","scrollLeft","pageXOffset","rectTop","getBoundingClientRect","top","rectLeft","left","cW","offsetWidth","cH","offsetHeight","degree","Math","atan2","pageX","pageY","PI","length","round","setRadarChart","self","currentTarget","cat","dataset","vector","changeProfileWithCatAndVector","updateForGaVals","requestURI","getRequestParamsForAic","console","log","showLoading","axios","headers","request","use","config","Rails","csrfToken","then","res","getElementById","innerHTML","data","aiRoutePlannerSubmitBtnScroller","scroll","hideLoading","catch","err","targetElmIdName","yOffset","animInterval","stepCount","stepNum","targetElmYloc","distance","scrollNode","setInterval","scrollBy","clearInterval","params","includeSecretParams","gaAicSubmitQueries","paramsForGTA","map","param","gaAicPref","toString","updateView","resetView","fetchingData","webSpots","aic","showView","status","code","showNoItemView","hideNoItemMsg","hideResultUtilPartsTags","removeContentsTags","showResultUtilPartsTags","generateContentsDataForView","showContentsTags","aicUiResultTags","getTags","contentsData","lang","showNoItemMsg","tags","classList","remove","add","tasteArr","slider","push","Number","value","rdSize","min","angle","pos","sqrt","cos","max","pos2weight","position","i","drawRadarChart","canvas","val","label","width","height","ctx","getContext","n","fillStyle","fillRect","beginPath","moveTo","lineTo","sin","closePath","fill","strokeStyle","stroke","j","arc","font","fillText","weight","changeProfile","index","num","tmpChgProfile","totalPoint","totalWeight","changeNum","changeSize","PageScrollUsingSelector","args","$destinationNode","$","destinationSelectorName","offset","nodeTop","animate","HeaderStore","viewMode","isAllTimeBasicViewMode","deviceMode","isSpContentOpen","activeSubItemsId","HeaderTransformElm","elm","specialPcModeClassNames","basicPcModeClassNames","changeBasicView","c","changeSpecialView","render","HeaderLead","super","HeaderGnavWrap","HeaderNavsContainer","HeaderGnav","HeaderLogoWrap","HeaderLogo","HeaderSpecialLogo","HeaderUtilNavWrap","HeaderUtilNav","HeaderToggler","barsIcon","timesIcon","target","renderAndUpdateStore","changeIconToTimes","changeIconToBars","showTarget","hideTarget","HeaderSubItemOpener","id","openers","targets","selfPlusIcon","selfMinusIcon","handleClick","subNav","stopPropagation","handleMouseover","handleMouseout","hideAllTarget","changeAllIconToPlus","changeIconToMinus","changeIconToPlus","opener","HeaderLangOpener","state","isShow","hideNav","showNav","viewModeYbp","deviceModeBp","siteWrapper","navsContainer","headerLead","gnavWrap","gnav","logoWrap","logo","specialLogo","utilNavWrap","utilNav","toggler","langNavNode","langOpener","updatateLangNav","updateViewModeStore","updateDeviceModeStore","innerWidth","location","UpdateBodyClass","FooterStore","mainClassInstance","spBp","activeOpenerId","Footer","store","openersSelector","FooterMenuBlobOpener","node","bind","contentsSelector","content","FooterMenuBlob","changeIconToDown","changeIconToUp","hide","show","downIcon","upIcon","updateStore","selector","modal","pagerNext","pagerPrev","startPageIndex","endPageIndex","pagerDisabledClassName","contentHideClassName","currentPageIndex","nextPagerState","prevPagerState","countDownPageNum","updateDesign","updateContents","countUpPageNum","Store","_masterInstance","_crId","crId","_listMode","_nodeName","master","marker","lists","list","_className","markerActive","listActive","masterInstance","listMode","nodeName","className","Marker","rewriteIdStore","active","inactive","Markers","children","inActiveMarkers","activeCrMarker","List","Lists","scrollAnimInterval","scrollAnimSteps","inActiveLists","activeCrList","adjustCrListYpositionByScrolling","wrapperRectTop","wrapperScrollTop","itemRectTop","itemHeight","clientHeight","arrivalVerticalLoc","movingDistance","unitOfMoving","sum","scrollId","scrollFn","adjustCrListXpositionByScrolling","wrapperRectLeft","wrapperScrollLeft","itemRectLeft","itemWidth","clientWidth","arrivalHrizonLoc","MarkerAndListSync","markers","getListModeFromCss","listNode","overflowY","getComputedStyle","overflowX","JalanExperienceStore","requestBaseURI","itemSizePerPage","requestQuery","fetchData","fetchStatus","jalanStatus","view","noImagePath","sortButtonActiveClassName","pagerItemActiveClassName","Util","static","queryStr","search","queries","split","queryArr","hash","s","key","SortButtons","nodes","sortBtn","href","origin","pathname","getQueryWithNewSortParam","event","queryHash","getUrlQueryAsHash","activeSort","activesort","displayFrom","getQueryStrFromHash","Form","areaInputs","catInputs","commitInputs","noCheckAllInputs","input","checked","checkCrInput","queryKey","updateFormView","StatusText","getItemsStatusMsg","crPageNum","floor","numberOfResults","getNoItemMsg","getInvalidMsg","getSystemErrorMsg","Item","info","tagInfo","description","picPath","area","permalink","name","address","rating","Items","getItemTags","kankou","item","cityName","spotEventName","summary","totalKuchikomiRating","planList","imageUri01","planUrl","getNoItemTags","getErrorTags","Pager","role","pageNum","pagenum","getQueryWithNewDisplayFromParam","theDisplayFrom","allItemSize","pagerItemLength","ceil","Loading","setTimeout","JalanExperience","kenCd","prefId","initPageNum","displayCount","sortType","form","statusText","items","pager","sortButtons","scrollPositionNode","updateStoreWithFetchData","result","scrollResultLocation","destinationLoc","url","dataType","success","error","Loader","roleId","createElement","body","appendChild","wrapElm","bp","sizeL","sizeS","resizeDelayTime","w","h","timerId","sizeFlg","handleLoad","handleResize","delay","fns","fn","setSizeL","widget","style","setSizeS","setSizeFlgState","reloadWidget","FB","XFBL","XFBML","parse","objectFitImages","isShowPage","Header","HowtoModal","Swiper","slidesPerColumn","effect","fadeEffect","crossFade","speed","autoplay","pagination","el","clickable","loop","loader","scroller","userAgent","navigator","toUpperCase","indexOf","alert","showIeBrowserErrorAlert","slidesPerView","spaceBetween","centeredSlides","navigation","nextEl","prevEl","breakpoints","slideLength","swiperElm","isSlidable","containerModifierClass","watchOverflow","src","on","bookingForm","action","prefVal","pf","sectionVal","rg","areaVal","ar","numberOfPeopleVal","cp","numberOfRoomVal","rn","minBudgetVal","pn","maxBudgetVal","px","roomTypeVal","rt","mealTypeVal","mc","keywordsVal","kw","dateVal","sd","replace","kodawariNodes","kd","kodawariVals","requestURL","inActiveTwitterWedget","offsetYRectTop","script","FacebookWidgetManager","TwitterWidgetManager","tabWrap","parents","tabBtn","find","tabContents","removeClass","addClass","elmIndex","eq"],"sourceRoot":""}