{"version":3,"file":"js/application-c2f52f57ad8d40a7ae67.js","mappings":"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,QACR,CAACC,EAAQjE,IAASiE,EAAOC,OAAO,CAAEjC,IAAKjC,EAAKiC,IAAKC,IAAKlC,EAAKkC,OAC3D,IAAI1P,OAAO4P,OAAOC,KAAK8B,cAG7B,GCrDF,MAfA,MACE1L,aAAY,IAAE8B,IACZ3G,KAAK2G,IAAMA,EACX3G,KAAKwQ,SAAWxQ,KAAK2G,IAAI5B,cAAc,SACvC/E,KAAKyQ,UAAYzQ,KAAK2G,IAAIO,mBAC1BlH,KAAKwQ,SAAStS,iBAAiB,SAAS,MACR,IAA1B8B,KAAKwQ,SAASpI,QAChBpI,KAAKyQ,UAAUC,UAAW,EAE1B1Q,KAAKyQ,UAAUC,UAAW,CAC5B,GAEJ,GCZF,GACEC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,UAAW,CACT,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,YAAa,CACX,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFL,SAAU,CACR,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFM,IAAK,CACH,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,U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","sources":["webpack://kanko_mie/./app/javascript/controllers/japan_concierge/ sync _controller\\.js$","webpack://kanko_mie/./app/javascript/controllers/ sync _controller\\.js$","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/iframe_auth.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/index.js","webpack://kanko_mie/./app/javascript/controllers/index.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/auto_redirect_sns_controller.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/export_mail_controller.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/favorite_count_controller.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/favorite_spot_button_controller.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/iframe_token.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/jorudan_publish_controller.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/load_user_controller.js","webpack://kanko_mie/./app/javascript/controllers/japan_concierge/plan_spots_controller.js","webpack://kanko_mie/./app/javascript/sprinkles/components/GlobalHeader.js","webpack://kanko_mie/./app/javascript/sprinkles/components/GlobalFooter.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_ContentCloser.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_ContentWrap.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_Content.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_Selector.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_CheckboxGroup.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_AreaPartialMapImg.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_AreaImagemapArea.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_AreaListBtn.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_AreaCheckboxGroup.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/_ImagemapResizer.js","webpack://kanko_mie/./app/javascript/sprinkles/components/ArchiveFilter/ArchiveFilter.js","webpack://kanko_mie/./app/javascript/sprinkles/components/Tab.js","webpack://kanko_mie/./app/javascript/sprinkles/components/SwiperCmn.js","webpack://kanko_mie/./app/javascript/sprinkles/components/SwiperSingle.js","webpack://kanko_mie/./app/javascript/sprinkles/components/SwiperCircle.js","webpack://kanko_mie/./app/javascript/sprinkles/components/SwiperGallery.js","webpack://kanko_mie/./app/javascript/sprinkles/components/SwiperPhoto.js","webpack://kanko_mie/./app/javascript/sprinkles/components/IndexMarkersMap.js","webpack://kanko_mie/./app/javascript/sprinkles/components/form.js","webpack://kanko_mie/./app/javascript/sprinkles/components/FlowerParam/colorset.js","webpack://kanko_mie/./app/javascript/sprinkles/components/FlowerParam/FlowerParam.js","webpack://kanko_mie/./app/javascript/sprinkles/components/RecommendContentsPopup.js","webpack://kanko_mie/./app/javascript/sprinkles/components/TopMv.js","webpack://kanko_mie/./app/javascript/sprinkles/components/TopMap/_PartialImg.js","webpack://kanko_mie/./app/javascript/sprinkles/components/TopMap/_Area.js","webpack://kanko_mie/./app/javascript/sprinkles/components/TopMap/_CardSwiper.js","webpack://kanko_mie/./app/javascript/sprinkles/components/TopMap/_ImagemapResizer.js","webpack://kanko_mie/./app/javascript/sprinkles/components/TopMap/TopMap.js","webpack://kanko_mie/./app/javascript/sprinkles/components/hayawakariMv.js","webpack://kanko_mie/./app/javascript/sprinkles/base.js","webpack://kanko_mie/./app/javascript/sprinkles/spot.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/formUi/Form.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/formUi/TasteBundlerBtn.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/formUi/PrefBundlerBtn.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/formUi/PrefSlider.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/formUi/TasteSlider.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/formUi/Select.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/formUi/SubmitBtn.js","webpack://kanko_mie/./app/javascript/sprinkles/AicUi/App.js","webpack://kanko_mie/./app/javascript/sprinkles/concierge.js","webpack://kanko_mie/./app/javascript/sprinkles/top.js","webpack://kanko_mie/./app/javascript/sprinkles/side_content.js","webpack://kanko_mie/./app/javascript/sprinkles/photocon.js","webpack://kanko_mie/./app/javascript/sprinkles/topics.js","webpack://kanko_mie/./app/javascript/sprinkles/premium_mymap.js","webpack://kanko_mie/./app/javascript/sprinkles/header_feature_menu.js","webpack://kanko_mie/./app/javascript/sprinkles/mypage.js","webpack://kanko_mie/./app/javascript/sprinkles/media.js","webpack://kanko_mie/./app/javascript/packs/application.js","webpack://kanko_mie/./app/javascript/sprinkles/festival.js","webpack://kanko_mie/./app/javascript/sprinkles/yado.js"],"sourcesContent":["var map = {\n\t\"./auto_redirect_sns_controller.js\": 9427,\n\t\"./export_mail_controller.js\": 5973,\n\t\"./favorite_count_controller.js\": 3701,\n\t\"./favorite_spot_button_controller.js\": 4226,\n\t\"./jorudan_publish_controller.js\": 9549,\n\t\"./load_user_controller.js\": 7941,\n\t\"./plan_spots_controller.js\": 6318,\n\t\"controllers/japan_concierge/auto_redirect_sns_controller.js\": 9427,\n\t\"controllers/japan_concierge/export_mail_controller.js\": 5973,\n\t\"controllers/japan_concierge/favorite_count_controller.js\": 3701,\n\t\"controllers/japan_concierge/favorite_spot_button_controller.js\": 4226,\n\t\"controllers/japan_concierge/jorudan_publish_controller.js\": 9549,\n\t\"controllers/japan_concierge/load_user_controller.js\": 7941,\n\t\"controllers/japan_concierge/plan_spots_controller.js\": 6318\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4811;","var map = {\n\t\"./japan_concierge/auto_redirect_sns_controller.js\": 9427,\n\t\"./japan_concierge/export_mail_controller.js\": 5973,\n\t\"./japan_concierge/favorite_count_controller.js\": 3701,\n\t\"./japan_concierge/favorite_spot_button_controller.js\": 4226,\n\t\"./japan_concierge/jorudan_publish_controller.js\": 9549,\n\t\"./japan_concierge/load_user_controller.js\": 7941,\n\t\"./japan_concierge/plan_spots_controller.js\": 6318,\n\t\"controllers/japan_concierge/auto_redirect_sns_controller.js\": 9427,\n\t\"controllers/japan_concierge/export_mail_controller.js\": 5973,\n\t\"controllers/japan_concierge/favorite_count_controller.js\": 3701,\n\t\"controllers/japan_concierge/favorite_spot_button_controller.js\": 4226,\n\t\"controllers/japan_concierge/jorudan_publish_controller.js\": 9549,\n\t\"controllers/japan_concierge/load_user_controller.js\": 7941,\n\t\"controllers/japan_concierge/plan_spots_controller.js\": 6318\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7074;","import { getToken } from './iframe_token';\n\ndocument.addEventListener('ajax:beforeSend', ({ detail: [xhr] }) => {\n const token = getToken();\n\n if (token) {\n xhr.setRequestHeader('USER-TOKEN', token);\n }\n});\n\ndocument.addEventListener('turbolinks:request-start', ({ data: { xhr } }) => {\n const token = getToken();\n\n if (token) {\n xhr.setRequestHeader('USER-TOKEN', token);\n }\n});\n","import './iframe_auth';\nimport { definitionsFromContext } from '@hotwired/stimulus-webpack-helpers';\nimport planConfigureStore from '../../japan_concierge/active_plan/store';\nimport exportConfigureStore from '../../japan_concierge/export/store';\nimport { setClientHeight, setIframeTop } from '../../japan_concierge/slices/modalSlice';\n\n// eslint-disable-next-line no-undef\nconst context = require.context('controllers/japan_concierge', true, /_controller\\.js$/);\nexport default definitionsFromContext(context);\n\nwindow.iFrameResizer = {\n onMessage(message) {\n if (message.clientHeight) {\n planConfigureStore.dispatch(setClientHeight(message.clientHeight));\n exportConfigureStore.dispatch(setClientHeight(message.clientHeight));\n }\n if (message.iframeRect) {\n planConfigureStore.dispatch(setIframeTop(message.iframeRect));\n exportConfigureStore.dispatch(setIframeTop(message.iframeRect));\n }\n },\n};\n","// Load all the controllers within this directory and all subdirectories.\n// Controller files must be named *_controller.js.\n\nimport { Application } from '@hotwired/stimulus';\nimport { definitionsFromContext } from '@hotwired/stimulus-webpack-helpers';\nimport controllers from './japan_concierge';\nimport planConfigureStore from '../japan_concierge/active_plan/store';\n\nconst application = Application.start();\nconst context = require.context('controllers', true, /_controller\\.js$/);\napplication.planStore = planConfigureStore;\napplication.load(definitionsFromContext(context));\napplication.load(controllers);\n","import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n static targets = ['submitButton'];\n\n connect() {\n // 自動的にSNSログイン画面へ遷移させる為にformボタンのclickイベントを発火させる\n this.submitButtonTarget.click();\n }\n}\n","import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n static targets = ['message'];\n\n message(event) {\n const [message] = event.detail;\n\n this.messageTarget.innerHTML = message;\n }\n}\n","import { Controller } from '@hotwired/stimulus';\nimport { ajax, fire } from '@rails/ujs';\n\nconst UPDATE_EVENT = 'favorite-spot-updated';\nconst REQUEST_EVENT = 'favorite-spot-requested';\nexport const RECEIVE_EVENT = 'all-favorite-spots';\n\nexport function sendFavoriteSpotUpdated() {\n const event = new CustomEvent(UPDATE_EVENT);\n document.dispatchEvent(event);\n}\n\nexport function requestFavoriteSpots() {\n const event = new CustomEvent(REQUEST_EVENT);\n document.dispatchEvent(event);\n}\n\nexport default class extends Controller {\n connect() {\n this.getAll();\n document.addEventListener(UPDATE_EVENT, this.getAll, false);\n document.addEventListener(REQUEST_EVENT, this.sendAll, false);\n }\n\n disconnect() {\n document.removeEventListener(UPDATE_EVENT, this.getAll, false);\n document.removeEventListener(REQUEST_EVENT, this.sendAll, false);\n }\n\n getAll = () => {\n ajax({\n url: this.path,\n type: 'GET',\n beforeSend: (xhr, options) => {\n // Set user token for iframe case.\n fire(this.element, 'ajax:beforeSend', [xhr, options]);\n return true;\n },\n success: (ids) => {\n this.ids = ids;\n this.element.innerHTML = ids.length;\n this.sendAll();\n },\n });\n };\n\n sendAll = () => {\n const event = new CustomEvent(RECEIVE_EVENT, { detail: this.ids || [] });\n document.dispatchEvent(event);\n };\n\n get path() {\n return this.data.get('path');\n }\n}\n","import { Controller } from '@hotwired/stimulus';\nimport { requestFavoriteSpots, sendFavoriteSpotUpdated, RECEIVE_EVENT } from './favorite_count_controller';\n\nexport default class extends Controller {\n static targets = ['add', 'remove'];\n\n connect() {\n document.addEventListener(RECEIVE_EVENT, this.setState, false);\n requestFavoriteSpots();\n }\n\n disconnect() {\n document.removeEventListener(RECEIVE_EVENT, this.setState, false);\n }\n\n setState = ({ detail: ids }) => {\n if (ids.includes(this.id)) {\n this.addTarget.classList.add('d-none');\n this.removeTarget.classList.remove('d-none');\n } else {\n this.addTarget.classList.remove('d-none');\n this.removeTarget.classList.add('d-none');\n }\n };\n\n added() {\n this.addTarget.classList.add('d-none');\n this.removeTarget.classList.remove('d-none');\n sendFavoriteSpotUpdated();\n }\n\n removed() {\n this.addTarget.classList.remove('d-none');\n this.removeTarget.classList.add('d-none');\n sendFavoriteSpotUpdated();\n }\n\n get id() {\n return parseInt(this.data.get('id'), 10);\n }\n}\n","const TOKEN_IDENTIFIER = 'iframe-user-token';\n\nexport function getToken() {\n return localStorage.getItem(TOKEN_IDENTIFIER);\n}\n\nexport function setToken(token) {\n localStorage.setItem(TOKEN_IDENTIFIER, token);\n}\n","import { Controller } from '@hotwired/stimulus';\n\n// Jorudan VisitのTrip Blender連携が有効な場合にのみエクスポートページに表示されるボタン押下時に、\n// エクスポートプランをTrip Blenderのモデルコースとして公開するための情報を親フレームに送信する。\n\nexport default class extends Controller {\n static targets = ['courseInfo'];\n\n click() {\n this.postCourseInfoMessageToJorudan();\n }\n\n postCourseInfoMessageToJorudan() {\n // eslint-disable-next-line no-undef\n const receiverOrigin = process.env.JORUDAN_POST_MESSAGE_HOST || '*';\n window.parent.postMessage(\n {\n action: 'PostCourse',\n message: this.courseInfo,\n },\n receiverOrigin\n );\n }\n\n get courseInfo() {\n return this.courseInfoTarget.value;\n }\n}\n","import { Controller } from '@hotwired/stimulus';\nimport { setToken } from './iframe_token';\n\nexport default class extends Controller {\n connect() {\n window.addEventListener('message', this.tokenEvent, false);\n }\n\n disconnect() {\n window.removeEventListener('message', this.tokenEvent, false);\n }\n\n tokenEvent = (event) => {\n if (event.data.type === 'userToken') {\n setToken(event.data.token);\n window.Turbolinks.clearCache();\n window.Turbolinks.visit(this.loadUrl, { action: 'replace' });\n }\n };\n\n get loadUrl() {\n return this.data.get('url');\n }\n}\n","import { Controller } from '@hotwired/stimulus';\nimport { Sortable } from 'sortablejs';\nimport { sortToApi } from '../../japan_concierge/slices/planSpotSlice';\nimport { deleteTransit } from '../../japan_concierge/slices/transitSlice';\n\nexport default class extends Controller {\n connect() {\n Sortable.create(this.element, {\n handle: '.sort-handle',\n onEnd: ({ newIndex, oldIndex }) => {\n if (newIndex !== oldIndex) {\n // react+reduxへ処理を委託\n const planSpotIds = this.application.planStore.getState().planSpot.ids;\n const planSpotEntities = this.application.planStore.getState().planSpot.entities;\n const swapSourcePlanSpot = planSpotEntities[planSpotIds[oldIndex]];\n const swapTargetPlanSpot = planSpotEntities[planSpotIds[newIndex]];\n\n // planSpotが更新された場合、再レンダリングが走り、非同期で移動情報取得が行われるため正しいデータを削除してしまう可能性がある\n // 移動したplanSpotの移動情報を削除し、再取得する\n this.application.planStore.dispatch(deleteTransit(swapSourcePlanSpot.id));\n this.application.planStore.dispatch(deleteTransit(swapTargetPlanSpot.id));\n\n this.application.planStore.dispatch(sortToApi({ id: swapSourcePlanSpot.id, position: newIndex }));\n }\n },\n });\n }\n}\n","export default class GlobalHeader {\n constructor() {\n this.header = document.querySelector('[data-role=\"miepref-header\"]');\n this.contents = document.querySelector('[data-role=\"miepref-header-contents\"]');\n this.opener = document.querySelector('[data-role=\"miepref-header-opener\"]');\n this.gSearch = document.querySelector('[data-role=\"miepref-header-g-search\"]');\n\n this.state = {\n isSpOpen: false,\n pageYpos: 0,\n };\n\n this.opener.addEventListener('click', () => {\n if (!this.state.isSpOpen) this.state.pageYpos = window.pageYOffset;\n this.state.isSpOpen = !this.state.isSpOpen;\n this.renderAll();\n return false;\n });\n\n window.addEventListener(this.getResponsiveEventName(), () => {\n if (this.state.isSpOpen) {\n this.state.isSpOpen = false;\n this.renderAll();\n }\n });\n\n window.addEventListener('load', () => {\n this.init();\n });\n }\n\n init() {\n // Googleカスタム検索のプレースホルダーだけ処理。\n // ただし本パーツはたびくらなどの場合存在しないため制御構文を用いておく\n const inputElm = this.gSearch.querySelector('#gsc-i-id1');\n if (inputElm) {\n inputElm.placeholder = '検索キーワードを入力してください';\n }\n }\n\n getResponsiveEventName() {\n const ua = navigator.userAgent;\n if (\n (ua.indexOf('iPhone') > 0 && ua.indexOf('iPad') === -1) ||\n ua.indexOf('iPod') > 0 ||\n ua.indexOf('Android') > 0\n ) {\n return 'orientationchange';\n }\n return 'resize';\n }\n\n fixBody() {\n const html = document.querySelector('html');\n const body = document.querySelector('body');\n html.style.overflow = 'hidden';\n body.style.overflow = 'hidden';\n html.style.height = '100%';\n body.style.height = '100%';\n html.style.scrollBehavior = 'auto';\n body.style.scrollBehavior = 'auto';\n }\n\n initialBody() {\n const html = document.querySelector('html');\n const body = document.querySelector('body');\n html.style.overflow = 'visible';\n body.style.overflow = 'visible';\n html.style.height = 'auto';\n body.style.height = 'auto';\n window.scrollTo(0, this.state.pageYpos);\n html.style.scrollBehavior = 'smooth';\n body.style.scrollBehavior = 'smooth';\n }\n\n renderAll() {\n if (this.state.isSpOpen) {\n this.header.dataset.state = 'sp-open';\n this.contents.dataset.state = 'active';\n this.opener.dataset.state = 'active';\n this.fixBody();\n } else {\n delete this.header.dataset.state;\n delete this.contents.dataset.state;\n delete this.opener.dataset.state;\n this.initialBody();\n }\n }\n}\n","export default class GlobalFooter {\n constructor() {\n // [hard cord]\n // 状態をデータ管理しない。DOMの状態から適切な挙動を判別\n\n this.elm = document.querySelector('[data-role=\"miepref-footer\"]');\n this.menuOpeners = document.querySelectorAll('[data-role=\"miepref-footer-menu-opener\"]');\n\n Array.from(this.menuOpeners).forEach((elm) => {\n elm.addEventListener('click', () => {\n const opener = elm;\n const content = opener.nextElementSibling;\n const isSpDesign = getComputedStyle(elm.querySelector('img')).getPropertyValue('display') === 'block';\n\n if (isSpDesign) {\n opener.dataset.state === 'active' ? delete opener.dataset.state : (opener.dataset.state = 'active');\n content.dataset.state === 'active' ? delete content.dataset.state : (content.dataset.state = 'active');\n } else {\n return false;\n }\n });\n });\n }\n}\n","class ContentCloser {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n\n this.elm.addEventListener('click', () => {\n this.app.state.isContentActive = false;\n this.app.state.activeContentId = null;\n this.app.render();\n\n return false;\n });\n }\n}\n\nexport default ContentCloser;\n","class ContentWrap {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n }\n\n render() {\n if (this.app.state.isContentActive)\n this.elm.classList.remove(this.app.state.hideClassName);\n\n if (!this.app.state.isContentActive)\n this.elm.classList.add(this.app.state.hideClassName);\n }\n}\n\nexport default ContentWrap;\n","class Content {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n this.id = this.elm.dataset.contentId;\n }\n\n render() {\n if (this.app.state.activeContentId === this.id)\n this.elm.classList.remove(this.app.state.hideClassName);\n\n if (this.app.state.activeContentId !== this.id)\n this.elm.classList.add(this.app.state.hideClassName);\n }\n}\n\nexport default Content;\n","class Selector {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n this.contentId = this.elm.dataset.contentId;\n\n this.elm.addEventListener('click', (e) => {\n e.preventDefault();\n\n const isActiveSelector = () => this.contentId === this.app.state.activeContentId;\n\n if (isActiveSelector()) {\n this.app.state.isContentActive = false;\n this.app.state.activeContentId = null;\n } else {\n this.app.state.isContentActive = true;\n this.app.state.activeContentId = this.contentId;\n }\n\n this.app.render();\n\n return false;\n });\n }\n\n render() {\n const isActiveSelector = () => this.contentId === this.app.state.activeContentId;\n\n if (isActiveSelector()) {\n this.elm.dataset.state = 'active';\n } else {\n delete this.elm.dataset.state;\n }\n }\n}\n\nexport default Selector;\n","class CheckboxGroup {\n constructor({ parentElm, parentSelectorName, app }) {\n this.parentElm = parentElm;\n this.app = app;\n this.groupId = this.parentElm.dataset.groupId;\n this.childElms = document.querySelectorAll(\n `[data-group-id=\"${this.groupId}\"]:not(${parentSelectorName})`\n );\n\n this.parentElm.addEventListener(\"click\", () => {\n this.updateChildrenState();\n });\n\n this.childElms.forEach((elm) => {\n elm.addEventListener(\"click\", () => {\n this.updateParentCheckState();\n });\n });\n }\n\n activeParent() {\n this.parentElm.checked = true;\n }\n\n inactiveParent() {\n this.parentElm.checked = false;\n }\n\n activeChildren() {\n this.childElms.forEach((elm) => {\n elm.checked = true;\n });\n }\n\n inactiveChildren() {\n this.childElms.forEach((elm) => {\n elm.checked = false;\n });\n }\n\n updateChildrenState() {\n if (this.parentElm.checked) this.activeChildren();\n if (!this.parentElm.checked) this.inactiveChildren();\n }\n\n updateParentCheckState() {\n const hasUncheckedChildMember = () =>\n Array.from(this.childElms).find((elm) => elm.checked === false);\n\n if (hasUncheckedChildMember()) this.inactiveParent();\n if (!hasUncheckedChildMember()) this.activeParent();\n }\n}\n\nexport default CheckboxGroup;\n","class AreaPartialMapImg {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n this.id = this.elm.dataset.areaId;\n }\n\n render() {\n const isActiveArea = () => this.app.state.activeAreaIds.find((id) => this.id === id);\n\n if (isActiveArea()) this.elm.dataset.state = 'active';\n if (!isActiveArea()) delete this.elm.dataset.state;\n }\n}\n\nexport default AreaPartialMapImg;\n","class AreaImagemapArea {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n this.id = this.elm.dataset.areaId;\n\n this.elm.addEventListener('click', (e) => {\n e.preventDefault();\n\n if (this.elm.dataset.state === 'active')\n this.app.state.activeAreaIds = this.app.state.activeAreaIds.filter((id) => id !== this.id);\n if (this.elm.dataset.state !== 'active') this.app.state.activeAreaIds.push(this.id);\n\n this.app.render();\n\n return false;\n });\n }\n\n render() {\n const isActiveArea = () => this.app.state.activeAreaIds.find((id) => this.id === id);\n\n if (isActiveArea()) this.elm.dataset.state = 'active';\n if (!isActiveArea()) delete this.elm.dataset.state;\n }\n}\n\nexport default AreaImagemapArea;\n","class AreaListBtn {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n this.id = this.elm.dataset.areaId;\n\n this.elm.addEventListener('click', (e) => {\n e.preventDefault();\n\n if (this.elm.dataset.state === 'active')\n this.app.state.activeAreaIds = this.app.state.activeAreaIds.filter((id) => id !== this.id);\n if (this.elm.dataset.state !== 'active') this.app.state.activeAreaIds.push(this.id);\n\n this.app.render();\n\n return false;\n });\n }\n\n render() {\n const isActiveArea = () => this.app.state.activeAreaIds.find((id) => this.id === id);\n\n if (isActiveArea()) this.elm.dataset.state = 'active';\n if (!isActiveArea()) delete this.elm.dataset.state;\n }\n}\n\nexport default AreaListBtn;\n","import CheckboxGroup from \"./_CheckboxGroup\";\n\nclass AreaCheckboxGroup extends CheckboxGroup {\n constructor({ parentElm, parentSelectorName, app }) {\n super({ parentElm, parentSelectorName, app });\n\n this.parentElm.addEventListener(\"click\", () => {\n this.updateAreaIdsState();\n });\n\n this.childElms.forEach((elm) => {\n elm.addEventListener(\"click\", () => {\n this.updateAreaIdsState();\n });\n });\n }\n\n updateAreaIdsState() {\n if (this.parentElm.checked) this.app.state.activeAreaIds.push(this.groupId);\n if (!this.parentElm.checked)\n this.app.state.activeAreaIds = this.app.state.activeAreaIds.filter(\n (id) => id !== this.groupId\n );\n\n this.app.render();\n }\n\n render() {\n const isActiveArea = () =>\n this.app.state.activeAreaIds.find((id) => this.groupId === id);\n const hasUncheckedChildMember = () =>\n Array.from(this.childElms).find((elm) => elm.checked === false);\n\n if (isActiveArea()) {\n this.activeParent();\n this.activeChildren();\n }\n\n if (!isActiveArea()) {\n this.inactiveParent();\n }\n\n // [note]\n // エリアが「非アクティブ」である時、\n // 同一のエリアに属する子checkboxは、もれなくチェックが入っている場合のみ\n // 連動して非アクティブとなる。\n if (!isActiveArea() && !hasUncheckedChildMember()) {\n this.inactiveChildren();\n }\n }\n}\n\nexport default AreaCheckboxGroup;\n","class ImagemapResizer {\n constructor({ app }) {\n this.app = app;\n\n this.map = document.querySelector('[data-role=\"active-filter-area-map\"]');\n this.baseImg = document.querySelector('[data-role=\"archive-filter-area-base-map-img\"]');\n this.originW = Number(this.map.dataset.originW);\n this.originH = Number(this.map.dataset.originH);\n\n this.areas = this.map.querySelectorAll('area');\n this.areaCoordsArrs = [];\n this.areas.forEach((area) => {\n const coords = area.coords\n .replace(/ /g, '')\n .split(',')\n .map((n) => Number(n));\n this.areaCoordsArrs.push(coords);\n });\n\n // this.area = this.map.querySelector('area');\n // this.areaCoordsArr = this.area.coords\n // .replace(/ /g, '')\n // .split(',')\n // .map((n) => Number(n));\n }\n\n render() {\n if (!this.app.state.isContentActive) return;\n\n const w = this.baseImg.getBoundingClientRect().width;\n const h = this.baseImg.getBoundingClientRect().height;\n const ratioW = w / this.originW;\n const ratioH = h / this.originH;\n\n this.areas.forEach((area, index) => {\n const areaNode = area;\n areaNode.coords = this.areaCoordsArrs[index]\n .map((n, i) => {\n if (i % 2 === 0) return Math.floor(n * ratioW);\n return Math.floor(n * ratioH);\n })\n .toString();\n });\n }\n}\n\nexport default ImagemapResizer;\n","// ArchiveFilter\n//\n// Version: v 0.1.0\n// Written: Masaaki Sumimoto\n//\n// アーカイブ一覧ページにおける絞り込みUIに対応したスクリプト。\n// (本パーツは1ページに1つしか存在しない想定で記述)\n\nimport ContentCloser from './_ContentCloser';\nimport ContentWrap from './_ContentWrap';\nimport Content from './_Content';\nimport Selector from './_Selector';\nimport CheckboxGroup from './_CheckboxGroup';\nimport AreaPartialMapImg from './_AreaPartialMapImg';\nimport AreaImagemapArea from './_AreaImagemapArea';\nimport AreaListBtn from './_AreaListBtn';\nimport AreaCheckboxGroup from './_AreaCheckboxGroup';\nimport ImagemapResizer from './_ImagemapResizer';\n\nclass ArchiveFilter {\n constructor() {\n // Setting\n //\n\n this.state = {\n activeContentId: null,\n hideClassName: null,\n isContentActive: false,\n activeAreaIds: [],\n };\n\n this.elm = document.querySelector('[data-role=\"archive-filter\"]');\n\n // Elements\n //\n\n this.selectors = [];\n document.querySelectorAll('[data-role=\"archive-filter-selector\"]').forEach((selector) => {\n this.selectors.push(new Selector({ elm: selector, app: this }));\n });\n\n this.contentCloser = new ContentCloser({\n elm: document.querySelector('[data-role=\"archive-filter-content-closer\"]'),\n app: this,\n });\n\n this.contentWrap = new ContentWrap({\n elm: document.querySelector('[data-role=\"archive-filter-content-wrap\"]'),\n app: this,\n });\n\n this.contents = [];\n document.querySelectorAll('[data-role=\"archive-filter-content\"]').forEach((content) => {\n this.contents.push(new Content({ elm: content, app: this }));\n });\n\n this.checkboxGroups = [];\n document.querySelectorAll('[data-role=\"archive-filter-parent-ck\"]').forEach((parentCk) => {\n this.checkboxGroups.push(\n new CheckboxGroup({\n parentElm: parentCk,\n parentSelectorName: '[data-role=\"archive-filter-parent-ck\"]',\n app: this,\n })\n );\n });\n\n // Area Filter Elements\n //\n\n this.areaPartialMapImgs = [];\n document.querySelectorAll('[data-role=\"archive-filter-area-partial-map-img\"]').forEach((slice) => {\n this.areaPartialMapImgs.push(\n new AreaPartialMapImg({\n elm: slice,\n app: this,\n })\n );\n });\n\n this.areaImagemapAreas = [];\n document.querySelectorAll('[data-role=\"archive-filter-area-imagemap-area\"]').forEach((btn) => {\n this.areaImagemapAreas.push(\n new AreaImagemapArea({\n elm: btn,\n app: this,\n })\n );\n });\n\n this.areaListBtns = [];\n document.querySelectorAll('[data-role=\"archive-filter-area-btn\"]').forEach((btn) => {\n this.areaListBtns.push(\n new AreaListBtn({\n elm: btn,\n app: this,\n })\n );\n });\n\n this.areaCheckboxGroups = [];\n document.querySelectorAll('[data-role=\"archive-filter-area-parent-ck\"]').forEach((parentCk) => {\n this.areaCheckboxGroups.push(\n new AreaCheckboxGroup({\n parentElm: parentCk,\n parentSelectorName: '[data-role=\"archive-filter-area-parent-ck\"]',\n app: this,\n })\n );\n });\n\n this.imagemapResizer = new ImagemapResizer({ app: this });\n\n // init\n //\n\n this.init();\n\n window.addEventListener('resize', () => {\n this.imagemapResizer.render();\n });\n }\n\n init() {\n this.state.hideClassName = this.elm.dataset.hideClassName;\n this.areaCheckboxGroups.forEach((ckGroup) => {\n if (ckGroup.parentElm.checked === true) {\n this.state.activeAreaIds.push(ckGroup.groupId);\n }\n });\n\n this.render();\n }\n\n render() {\n this.contentWrap.render();\n\n this.selectors.forEach((selector) => {\n selector.render();\n });\n\n this.contents.forEach((content) => {\n content.render();\n });\n\n this.areaImagemapAreas.forEach((area) => {\n area.render();\n });\n\n this.areaPartialMapImgs.forEach((img) => {\n img.render();\n });\n\n this.areaListBtns.forEach((btn) => {\n btn.render();\n });\n\n this.areaCheckboxGroups.forEach((ckGroup) => {\n ckGroup.render();\n });\n\n // getBoundingClientRectが正しく要素の高さを取得するためやや遅延させる\n setTimeout(() => {\n this.imagemapResizer.render();\n }, 300);\n }\n}\n\nexport default ArchiveFilter;\n","// Tab\n//\n// Version: v 0.1.0\n// Written: Masaaki Sumimoto\n\nclass Tab {\n constructor({ tablist }) {\n this.tablist = tablist;\n this.groupId = this.tablist.dataset.groupId;\n this.tabs = this.tablist.querySelectorAll('[data-role=\"tab\"]');\n this.initialActiveTabNavItem = Array.from(this.tabs).find((item) => item.dataset.state === 'active');\n this.tabpanelsWrap = document.querySelector(`[data-role=\"tab-contents\"][data-group-id=\"${this.groupId}\"]`);\n this.tabpanels = this.tabpanelsWrap.querySelectorAll('[data-role=\"tabpanel\"]');\n\n // init\n //\n const initialContentId = this.initialActiveTabNavItem.dataset.contentId;\n this.updateTabContents(initialContentId);\n\n // event\n //\n this.tabs.forEach((tabNavItem) => {\n tabNavItem.addEventListener('click', (e) => {\n e.preventDefault();\n this.render(tabNavItem);\n return false;\n });\n });\n }\n\n updateTabNavItem(id) {\n this.tabs.forEach((item) => {\n const tabItem = item;\n\n if (id === tabItem.dataset.contentId) {\n tabItem.dataset.state = 'active';\n tabItem.ariaSelected = true;\n }\n\n if (id !== tabItem.dataset.contentId) {\n delete tabItem.dataset.state;\n tabItem.ariaSelected = false;\n }\n });\n }\n\n updateTabContents(id) {\n this.tabpanels.forEach((item) => {\n const contentItem = item;\n if (id === contentItem.dataset.contentId) contentItem.dataset.state = 'active';\n if (id !== contentItem.dataset.contentId) delete contentItem.dataset.state;\n });\n }\n\n render(tabNavItem) {\n const id = tabNavItem.dataset.contentId;\n this.updateTabNavItem(id);\n this.updateTabContents(id);\n }\n}\n\nexport default Tab;\n","// SwiperCmn\n//\n\nimport Swiper from 'swiper/bundle';\n\nclass SwiperCmn {\n constructor({ elm }) {\n this.swiper = new Swiper(elm, {\n slidesPerView: 1,\n spaceBetween: 0,\n loop: true,\n breakpoints: {\n 768: {\n slidesPerView: 3,\n spaceBetween: 32,\n },\n },\n navigation: {\n nextEl: elm.querySelector(\"[data-role='cmn-swiper-next']\"),\n prevEl: elm.querySelector(\"[data-role='cmn-swiper-prev']\"),\n },\n });\n }\n}\n\nexport default SwiperCmn;\n","// SwiperSingle\n//\n\nimport Swiper from 'swiper/bundle';\n\nclass SwiperSingle {\n constructor({ elm }) {\n this.swiper = new Swiper(elm, {\n slidesPerView: 1,\n spaceBetween: 0,\n loop: true,\n pagination: {\n el: elm.querySelector(\"[data-role='single-swiper-pagination']\"),\n clickable: true,\n },\n navigation: {\n nextEl: elm.querySelector(\"[data-role='single-swiper-next']\"),\n prevEl: elm.querySelector(\"[data-role='single-swiper-prev']\"),\n },\n });\n }\n}\n\nexport default SwiperSingle;\n","// SwiperCircle\n//\n\nimport Swiper from 'swiper/bundle';\n\nclass SwiperCircle {\n constructor({ elm }) {\n this.swiper = new Swiper(elm, {\n slidesPerView: 2,\n spaceBetween: 16,\n loop: true,\n breakpoints: {\n 768: {\n slidesPerView: 3.8,\n spaceBetween: 24,\n },\n 992: {\n slidesPerView: 4.8,\n spaceBetween: 24,\n },\n },\n navigation: {\n nextEl: elm.querySelector(\"[data-role='circle-swiper-next']\"),\n prevEl: elm.querySelector(\"[data-role='circle-swiper-prev']\"),\n },\n });\n }\n}\n\nexport default SwiperCircle;\n","// SwiperGallery\n//\n// メインのswiperとそれを操作するサムネイルのswiperの2種類を生成する\n// そのためページ上にあるどれとどれがペアかを示してあげるためにdata-pairing-idの値を渡す必要がある\n\nimport Swiper from 'swiper/bundle';\n\nclass SwiperGallery {\n constructor({ pairingId }) {\n this.pairingId = pairingId;\n this.pics = document.querySelector(`[data-role=\"gallery-swiper\"][data-pairing-id=${this.pairingId}]`);\n this.thumbs = document.querySelector(`[data-role=\"gallery-thumb-swiper\"][data-pairing-id=${this.pairingId}]`);\n this.thumbItems = this.thumbs.querySelectorAll('[data-role=\"gallery-thumb-carousel-item\"]');\n\n this.thumbsSwiper = new Swiper(this.thumbs, {\n slidesPerView: 4,\n spaceBetween: 16,\n breakpoints: {\n 768: {\n slidesPerView: 4,\n spaceBetween: 32,\n },\n },\n });\n\n this.picSwiper = new Swiper(this.pics, {\n slidesPerView: 1,\n spaceBetween: 0,\n loop: true,\n pagination: {\n el: this.pics.querySelector(\"[data-role='gallery-swiper-pagination']\"),\n clickable: true,\n },\n navigation: {\n nextEl: this.pics.querySelector(\"[data-role='gallery-swiper-next']\"),\n prevEl: this.pics.querySelector(\"[data-role='gallery-swiper-prev']\"),\n },\n thumbs: {\n swiper: this.thumbsSwiper,\n },\n });\n }\n}\n\nexport default SwiperGallery;\n","// SwiperPhoto\n//\n\nimport Swiper from 'swiper/bundle';\n\nclass SwiperPhoto {\n constructor({ elm }) {\n this.swiper = new Swiper(elm, {\n slidesPerView: 2,\n spaceBetween: 16,\n loop: true,\n breakpoints: {\n 768: {\n slidesPerView: 3.8,\n spaceBetween: 24,\n },\n 992: {\n slidesPerView: 4.8,\n spaceBetween: 24,\n },\n },\n navigation: {\n nextEl: elm.querySelector(\"[data-role='photo-swiper-next']\"),\n prevEl: elm.querySelector(\"[data-role='photo-swiper-prev']\"),\n },\n });\n }\n}\n\nexport default SwiperPhoto;\n","// IndexMarkersMap\n//\n// Version: v 0.1.0\n// Written: Masaaki Sumimoto\n\nclass IndexMarkersMap {\n constructor({ elm }) {\n this.elm = elm;\n this.info = JSON.parse(elm.dataset.info);\n this.markerImage = this.elm.dataset.markerImage;\n\n // 結局fitboundsするので仮の値\n this.mapCenter = { lat: 34.734142369686474, lng: 136.51017902460762 }; // tmp\n this.zoom = 12; // tmp\n\n const getInfowindowTags = (info) =>\n `\n
\n
- 詳細ページへ
\n
- ページ内の情報へ
\n
\n `;\n\n this.map = new window.google.maps.Map(this.elm, {\n center: this.mapCenter,\n zoom: this.zoom,\n });\n this.markers = [];\n this.info.forEach((markerInfo) => {\n this.markers.push(\n new window.google.maps.Marker({\n position: { lat: markerInfo.lat, lng: markerInfo.lng },\n map: this.map,\n icon: this.markerImage,\n label: {\n text: markerInfo.position,\n color: '#20A793',\n fontSize: '16px',\n fontWeight: 'bold',\n className: 'index-markers-map-marker-txt',\n },\n optimized: true,\n })\n );\n });\n this.infowindow = new window.google.maps.InfoWindow();\n\n this.markers.forEach((marker, i) => {\n marker.addListener('click', () => {\n this.infowindow.setContent(getInfowindowTags(this.info[i]));\n this.infowindow.open({\n anchor: marker,\n map: this.map,\n shouldFocus: false,\n });\n });\n });\n\n this.init();\n }\n\n init() {\n this.map.fitBounds(\n this.info.reduce(\n (bounds, item) => bounds.extend({ lat: item.lat, lng: item.lng }),\n new window.google.maps.LatLngBounds()\n )\n );\n }\n}\n\nexport default IndexMarkersMap;\n","class checkAgreeBtn {\n constructor({ elm }) {\n this.elm = elm;\n this.checkBtn = this.elm.querySelector('input');\n this.submitBtn = this.elm.nextElementSibling;\n this.checkBtn.addEventListener('click', () => {\n if (this.checkBtn.checked === true) {\n this.submitBtn.disabled = false;\n } else {\n this.submitBtn.disabled = true;\n }\n });\n }\n}\n\nexport default checkAgreeBtn;\n","export default {\n kouyou: [\n '#54EA40',\n '#63E552',\n '#90E762',\n '#B6E971',\n '#D2EB7E',\n '#DEEB7E',\n '#EBE77E',\n '#EDE98A',\n '#F0F055',\n '#F0F05B',\n '#F5EE34',\n '#FFF250',\n '#FFEC07',\n '#FCEC28',\n '#FFD95C',\n '#FDC747',\n '#FFBB40',\n '#FD9D62',\n '#FF8B43',\n '#F07331',\n '#DC493D',\n '#D93D29',\n '#D52912',\n ],\n yellow: [\n '#FFF6BE',\n '#FEEFAE',\n '#FEF2B6',\n '#FEEBA6',\n '#FEE89E',\n '#FEE496',\n '#FDE18E',\n '#FDDE86',\n '#FDDA7E',\n '#FDD776',\n '#FDD36E',\n '#FDD066',\n '#FCCD5E',\n '#FCC956',\n '#FCC64E',\n '#FCC246',\n '#FCBF3E',\n '#FBBC36',\n '#FBB82E',\n '#FBB526',\n '#FBB11E',\n '#FBAE16',\n '#FBAB0F',\n ],\n purple: [\n '#fdf9ff',\n '#fbf4ff',\n '#f9eeff',\n '#f6e8ff',\n '#f4e2ff',\n '#f2ddfe',\n '#f0d7fe',\n '#eed1fe',\n '#eccbfe',\n '#eac6fe',\n '#e8c0fe',\n '#e5bafe',\n '#e3b4fe',\n '#e1affe',\n '#dfa9fe',\n '#dda3fe',\n '#db9dfe',\n '#d998fd',\n '#d48cfd',\n '#d792fd',\n '#d286fd',\n '#d081fd',\n '#ce7bfd',\n ],\n dark_pink: [\n '#fef6fa',\n '#fceef6',\n '#fbe5f1',\n '#f9dded',\n '#f8d4e8',\n '#f6cce3',\n '#f5c3df',\n '#f4bada',\n '#f2b2d6',\n '#f1a9d1',\n '#efa1cc',\n '#ee98c8',\n '#ec90c3',\n '#eb87be',\n '#e97fba',\n '#e876b5',\n '#e76db1',\n '#e565ac',\n '#e45ca7',\n '#de3a95',\n ],\n salmon_pink: [\n '#FFFFFF',\n '#FFF8F8',\n '#FFF1F1',\n '#FFEAEA',\n '#FFE3E3',\n '#FFDCDC',\n '#FFD5D5',\n '#FFCECE',\n '#FFC7C7',\n '#FFC0C0',\n '#FFB9B9',\n '#FFB2B2',\n '#FFABAB',\n '#FFA4A4',\n '#FF9D9D',\n '#FF9696',\n '#FF8F8F',\n '#FF8888',\n '#FF8181',\n '#FF7A7A',\n '#FF7373',\n '#FF6C6C',\n '#FF6666',\n ],\n disabled: [\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n '#DDDDDD',\n ],\n end: [\n '#F8F8F8',\n '#F2F2F2',\n '#F0F0F0',\n '#EEEEEE',\n '#EAEAEA',\n '#E5E5E5',\n '#E0E0E0',\n '#D0D0D0',\n '#D5D5D5',\n '#C7C7C7',\n '#B9B9B9',\n '#A3A3A3',\n '#A4A4A4',\n '#9D9D9D',\n '#979797',\n '#8E8E8E',\n '#898989',\n '#7A7A7A',\n '#737373',\n '#525252',\n '#404040',\n '#333333',\n '#050505',\n ],\n};\n","import colorset from './colorset';\n\nclass FlowerParam {\n constructor({ elm }) {\n this.elm = elm;\n this.type = this.elm.dataset.type;\n this.state = this.elm.dataset.state;\n this.config = {\n types: ['kouyou', 'yellow', 'purple', 'dark_pink', 'salmon_pink'],\n states: ['disabled', 'end', 'lv0', 'lv1', 'lv2', 'lv3', 'lv4', 'lv5'],\n };\n const isType = this.config.types.find((type) => type === this.type);\n const isState = this.config.states.find((state) => state === this.state);\n if (!(isType && isState)) throw Error('[FowerParam Error] data属性の指定に誤りがあります');\n\n // カラーセットはtype名と同じものが割り当てられるが、\n // stateが特別な場合、特殊カラーに上書きする\n this.colors = colorset[this.type];\n if (this.state === 'disabled') this.colors = colorset['disabled'];\n if (this.state === 'end') this.colors = colorset['end'];\n\n this.enableColorLenConfig = {\n disabled: this.colors.length,\n end: this.colors.length,\n lv0: 0,\n lv1: Math.round(this.colors.length * (1 / 5)),\n lv2: Math.round(this.colors.length * (2 / 5)),\n lv3: Math.round(this.colors.length * (3 / 5)),\n lv4: Math.round(this.colors.length * (4 / 5)),\n lv5: this.colors.length,\n };\n\n this.enableColorLen = this.enableColorLenConfig[this.state];\n\n this.create();\n }\n\n create() {\n const paramWrap = document.createElement('div');\n paramWrap.style.display = 'flex';\n paramWrap.style.justifyContent = 'space-between';\n\n this.colors.forEach((color, index) => {\n const paramItem = document.createElement('span');\n // 配置にはflexのspace-betweenを利用するため5はスペースを作るための加算\n paramItem.style.border = `1px solid #F0F0F0`;\n paramItem.style.borderRadius = '0.125rem';\n paramItem.style.width = `${100 / (this.colors.length + 5)}%`;\n paramItem.style.height = '32px';\n const noColor = 'white';\n\n if (index <= this.enableColorLen - 1) {\n paramItem.style.backgroundColor = color;\n } else {\n paramItem.style.backgroundColor = noColor;\n }\n\n paramWrap.append(paramItem);\n });\n\n this.elm.append(paramWrap);\n }\n}\n\nexport default FlowerParam;\n","import Swiper from 'swiper/bundle';\n\nclass RecommendContentsPopup {\n constructor({ elm, swiperElm, handle, carouselPrev, carouselNext, state }) {\n this.elm = elm;\n this.handle = handle;\n this.carouselPrev = carouselPrev;\n this.carouselNext = carouselNext;\n this.elmOffset = 12;\n\n this.state = {\n isOpen: state.isOpen,\n };\n\n this.swiper = new Swiper(swiperElm, {\n slidesPerView: 1.6,\n spaceBetween: 16,\n loop: true,\n centeredSlides: true,\n breakpoints: {\n 768: {\n slidesPerView: 3,\n spaceBetween: 16,\n },\n },\n navigation: {\n nextEl: this.carouselNext,\n prevEl: this.carouselPrev,\n },\n });\n\n const changeCloseDesign = () => {\n elm.style.bottom = `-${elm.clientHeight - this.elmOffset}px`;\n\n console.log(handle.querySelector('i'));\n handle.querySelector('i').classList.add('--down');\n };\n\n const changeOpenDesgin = () => {\n elm.style.bottom = 0;\n handle.querySelector('i').classList.remove('--down');\n };\n\n this.handle.addEventListener('click', () => {\n if (this.state.isOpen) {\n changeCloseDesign();\n } else {\n changeOpenDesgin();\n }\n this.state.isOpen = !this.state.isOpen;\n });\n\n window.addEventListener('resize', () => {\n changeCloseDesign();\n this.state.isOpen = false;\n });\n }\n}\n\nexport default RecommendContentsPopup;\n","import Swiper from 'swiper/bundle';\n\nclass TopMv {\n constructor() {\n this.topMvThumbSwiper = new Swiper(\"[data-role='top-mv-thumb-swiper']\", {\n slidesPerView: 2.5,\n centeredSlides: true,\n spaceBetween: 8,\n loop: true,\n });\n\n this.elm = document.querySelector(\"[data-role='top-mv-swiper']\");\n\n this.topMvSwiper = new Swiper(this.elm, {\n autoplay: {\n delay: 5000,\n disableOnInteraction: false,\n },\n speed: 1000,\n slidesPerView: 1,\n spaceBetween: 0,\n centeredSlides: true,\n loop: true,\n watchSlidesProgress: true,\n pagination: {\n el: \"[data-role='top-mv-swiper-pagination']\",\n clickable: true,\n },\n navigation: {\n nextEl: \"[data-role='top-mv-swiper-next']\",\n prevEl: \"[data-role='top-mv-swiper-prev']\",\n },\n thumbs: {\n swiper: this.topMvThumbSwiper,\n },\n });\n\n this.thumbItems = document.querySelectorAll('[data-role=\"top-mv-thumb-item\"]');\n this.topMvSwiper.on('slideChange', () => {\n this.thumbItems.forEach((thumb, index) => {\n const elm = thumb;\n if (this.topMvSwiper.realIndex === index) elm.dataset.state = 'active';\n if (this.topMvSwiper.realIndex !== index) delete elm.dataset.state;\n });\n });\n }\n}\n\nexport default TopMv;\n","class PartialImg {\n constructor({ elm, app }) {\n this.elm = elm;\n this.app = app;\n this.id = this.elm.dataset.areaId;\n }\n\n render() {\n const isActiveArea = this.app.state.activeAreaId === this.id;\n if (isActiveArea) this.elm.dataset.state = 'active';\n if (!isActiveArea) delete this.elm.dataset.state;\n }\n}\n\nexport default PartialImg;\n","class Area {\n constructor({ elm, app, scrollTarget }) {\n this.elm = elm;\n this.app = app;\n this.id = this.elm.dataset.areaId;\n this.scrollTarget = scrollTarget;\n\n this.elm.addEventListener('click', (e) => {\n e.preventDefault();\n this.app.state.activeAreaId = this.id;\n this.app.render();\n\n if (this.app.state.isSp) this.scrollTarget.scrollIntoView();\n\n return false;\n });\n }\n\n render() {\n const isActiveArea = this.app.state.activeAreaId === this.id;\n\n if (isActiveArea) this.elm.dataset.state = 'active';\n if (!isActiveArea) delete this.elm.dataset.state;\n }\n}\n\nexport default Area;\n","import Swiper from 'swiper/bundle';\n\nclass CardSwiper {\n constructor({ elm, app, prevElm, nextElm }) {\n this.elm = elm;\n this.prevElm = prevElm;\n this.nextElm = nextElm;\n this.app = app;\n\n this.swiper = new Swiper(this.elm, {\n slidesPerView: 1,\n spaceBetween: 0,\n loop: false,\n navigation: {\n nextEl: nextElm,\n prevEl: prevElm,\n },\n });\n\n this.swiper.on('slideChange', () => {\n const areaId = this.swiper.slides[this.swiper.activeIndex].dataset.areaId;\n this.app.state.activeAreaId = areaId;\n this.app.render();\n });\n }\n\n render() {\n const activeSwiperSlide = Array.from(this.swiper.slides).findIndex(\n (slide) => slide.dataset.areaId === this.app.state.activeAreaId\n );\n this.swiper.slideTo(activeSwiperSlide);\n }\n}\n\nexport default CardSwiper;\n","class ImagemapResizer {\n constructor({ app, imagemap, baseMapImg }) {\n this.app = app;\n this.imagemap = imagemap;\n this.baseMapImg = baseMapImg;\n\n this.originW = Number(this.imagemap.dataset.originW);\n this.originH = Number(this.imagemap.dataset.originH);\n\n this.areas = this.imagemap.querySelectorAll('area');\n\n this.areaCoordsArrs = [];\n this.areas.forEach((area) => {\n const coords = area.coords\n .replace(/ /g, '')\n .split(',')\n .map((n) => Number(n));\n this.areaCoordsArrs.push(coords);\n });\n\n // this.area = this.imagemap.querySelector('area');\n // this.areaCoordsArr = this.area.coords\n // .replace(/ /g, '')\n // .split(',')\n // .map((n) => Number(n));\n }\n\n render() {\n const w = this.baseMapImg.getBoundingClientRect().width;\n const h = this.baseMapImg.getBoundingClientRect().height;\n const ratioW = w / this.originW;\n const ratioH = h / this.originH;\n\n this.areas.forEach((area, index) => {\n const areaNode = area;\n areaNode.coords = this.areaCoordsArrs[index]\n .map((n, i) => {\n if (i % 2 === 0) return Math.floor(n * ratioW);\n return Math.floor(n * ratioH);\n })\n .toString();\n });\n }\n}\n\nexport default ImagemapResizer;\n","import PartialImg from './_PartialImg';\nimport Area from './_Area';\nimport CardSwiper from './_CardSwiper';\nimport ImagemapResizer from './_ImagemapResizer';\n\nclass TopMap {\n constructor(\n { activeAreaId, mapSelectScrollTarget } = {\n activeAreaId: 'area1',\n mapSelectScrollTarget: document.querySelector('.area-map-scroll-target'),\n }\n ) {\n // Setting\n //\n\n this.state = {\n bp: 1012,\n activeAreaId,\n isSp: false,\n };\n\n // Elms\n //\n\n this.appElm = document.querySelector('[data-role=\"top-map\"]');\n this.imagemap = this.appElm.querySelector('[data-role=\"top-map-imagemap\"]');\n this.baseMapImg = this.appElm.querySelector('[data-role=\"top-map-base-map-img\"]');\n this.partialImgs = [];\n this.appElm.querySelectorAll('[data-role=\"top-map-partial-map-img\"]').forEach((slice) => {\n this.partialImgs.push(\n new PartialImg({\n elm: slice,\n app: this,\n })\n );\n });\n this.areas = [];\n this.appElm.querySelectorAll('[data-role=\"top-map-imagemap-area\"]').forEach((btn) => {\n this.areas.push(\n new Area({\n elm: btn,\n app: this,\n scrollTarget: mapSelectScrollTarget,\n })\n );\n });\n this.cardSwiper = new CardSwiper({\n app: this,\n elm: this.appElm.querySelector(\"[data-role='top-map-card-swiper']\"),\n prevElm: this.appElm.querySelector(\"[data-role='top-map-card-swiper-prev']\"),\n nextElm: this.appElm.querySelector(\"[data-role='top-map-card-swiper-next']\"),\n });\n\n // util\n //\n\n this.imagemapResizer = new ImagemapResizer({ app: this, imagemap: this.imagemap, baseMapImg: this.baseMapImg });\n\n // events\n //\n\n window.addEventListener('resize', () => {\n this.state.isSp = this.isSp();\n this.render();\n });\n\n // init\n //\n\n let cnt = 0;\n\n this.partialImgs.forEach((img) => {\n img.elm.addEventListener('load', () => {\n console.log('ya');\n cnt++;\n if (cnt === this.partialImgs.length) {\n console.log('All images loaded!');\n this.render();\n }\n });\n });\n }\n\n isSp() {\n return window.innerWidth <= this.state.bp;\n }\n\n render() {\n this.areas.forEach((area) => {\n area.render();\n });\n this.partialImgs.forEach((img) => {\n img.render();\n });\n this.cardSwiper.render();\n\n // getBoundingClientRectが正しく要素の高さを取得するためやや遅延させる\n setTimeout(() => {\n this.imagemapResizer.render();\n }, 300);\n }\n}\n\nexport default TopMap;\n","import Swiper from 'swiper/bundle';\n\nclass hayawakariMv {\n constructor() {\n this.elm = document.querySelector(\"[data-role='hayawakari-swiper']\");\n\n this.hayawakarMvSwiper = new Swiper(this.elm, {\n slidesPerView: 1.05,\n spaceBetween: 12,\n centeredSlides: true,\n loop: true,\n autoplay: {\n delay: 5000,\n disableOnInteraction: false,\n },\n speed: 1000,\n watchSlidesProgress: true,\n });\n }\n}\n\nexport default hayawakariMv;\n","// Shared Components\nimport GlobalHeader from './components/GlobalHeader';\nimport GlobalFooter from './components/GlobalFooter';\nimport ArchiveFilter from './components/ArchiveFilter/ArchiveFilter';\nimport Tab from './components/Tab';\nimport SwiperCmn from './components/SwiperCmn';\nimport SwiperSingle from './components/SwiperSingle';\nimport SwiperCircle from './components/SwiperCircle';\nimport SwiperGallery from './components/SwiperGallery';\nimport SwiperPhoto from './components/SwiperPhoto';\nimport IndexMarkersMap from './components/IndexMarkersMap';\nimport checkAgreeBtn from './components/form';\nimport FlowerParam from './components/FlowerParam/FlowerParam';\nimport RecommendContentsPopup from './components/RecommendContentsPopup';\n\n// Page Components\nimport TopMv from './components/TopMv';\nimport TopMap from './components/TopMap/TopMap';\nimport hayawakariMv from './components/hayawakariMv';\n\n// Global Header & Footer\n//\n\nif (document.querySelector('[data-role=\"miepref-header\"]')) {\n new GlobalHeader();\n}\n\nif (document.querySelector('[data-role=\"miepref-footer\"]')) {\n new GlobalFooter();\n}\n\n// ArchiveFilter\n//\n// アーカイブ一覧ページにおける絞り込みフォーム要素パーツ\n\nif (document.querySelector('[data-role=\"archive-filter\"]')) {\n // eslint-disable-next-line no-new\n new ArchiveFilter();\n}\n\n// Tab\n//\n// ページに存在するdata-role=tab-navの数ぶん生成\n\nif (\n document.querySelectorAll('[data-role=\"tablist\"]').length &&\n document.querySelectorAll('[data-role=\"tab-contents\"]').length\n) {\n document.querySelectorAll('[data-role=\"tablist\"]').forEach((tablist) => {\n // eslint-disable-next-line no-new\n new Tab({ tablist });\n });\n}\n\n// Carousel\n//\n// 汎用 Swiper要素4種類\n\nconst cmnSwiperElms = document.querySelectorAll(\"[data-role='cmn-swiper']\");\nif (cmnSwiperElms.length) {\n cmnSwiperElms.forEach((elm) => {\n // eslint-disable-next-line no-new\n new SwiperCmn({ elm });\n });\n}\n\nconst singleSwiperElms = document.querySelectorAll(\"[data-role='single-swiper']\");\nif (singleSwiperElms.length) {\n singleSwiperElms.forEach((elm) => {\n // eslint-disable-next-line no-new\n new SwiperSingle({ elm });\n });\n}\n\nconst circleSwiperElms = document.querySelectorAll(\"[data-role='circle-swiper']\");\nif (circleSwiperElms.length) {\n circleSwiperElms.forEach((elm) => {\n // eslint-disable-next-line no-new\n new SwiperCircle({ elm });\n });\n}\n\nconst photoSwiperElms = document.querySelectorAll(\"[data-role='photo-swiper']\");\nif (photoSwiperElms.length) {\n photoSwiperElms.forEach((elm) => {\n // eslint-disable-next-line no-new\n new SwiperPhoto({ elm });\n });\n}\n\nconst gallerySwiperElms = document.querySelectorAll('[data-role=\"gallery-swiper\"]');\nif (gallerySwiperElms.length) {\n gallerySwiperElms.forEach((elm) => {\n // eslint-disable-next-line no-new\n new SwiperGallery({ pairingId: elm.dataset.pairingId });\n });\n}\n\n// form プライバシーポリシー同意\nconst agreePrivacyPolicyElms = document.querySelectorAll('[data-role=\"agree-privacy-policy\"]');\nif (agreePrivacyPolicyElms.length) {\n agreePrivacyPolicyElms.forEach((elm) => {\n // eslint-disable-next-line no-new\n new checkAgreeBtn({ elm });\n });\n}\n\n// トップページ - MV\n//\n// swiperをベースにデザイン表現を拡張\n\nif (document.querySelector(\"[data-role='top-mv-swiper']\")) {\n // eslint-disable-next-line no-new\n new TopMv();\n}\n\n// トップページ - map\n//\n\nif (document.querySelector('[data-role=\"top-map\"]')) {\n // eslint-disable-next-line no-new\n new TopMap({ activeAreaId: 'area1', mapSelectScrollTarget: document.querySelector('.area-map-scroll-target') });\n}\n\n// Index Markers Map\n//\n// 特定の詳細記事内部に配置される\n\nconst btnMap = document.querySelector('[data-role=\"btn-map\"]');\n\nif (btnMap) {\n btnMap.addEventListener('click', () => {\n const indexMarkersMaps = document.querySelector('[data-role=\"index-markers-map\"]');\n // eslint-disable-next-line no-new\n new IndexMarkersMap({ elm: indexMarkersMaps });\n btnMap.classList.add('d-none');\n indexMarkersMaps.classList.remove('d-none');\n indexMarkersMaps.classList.add('d-block');\n });\n}\n\n// 三重の見どころ 早わかり - MV\n//\nif (document.querySelector(\"[data-role='hayawakari-swiper']\")) {\n // eslint-disable-next-line no-new\n new hayawakariMv();\n}\n\n// Flower Param\n//\nconst flowerParams = document.querySelectorAll('[data-role=\"flower-param\"]');\nif (flowerParams.length) {\n flowerParams.forEach((elm) => {\n // eslint-disable-next-line no-new\n new FlowerParam({ elm });\n });\n}\n\nconst inpuDateFields = document.querySelectorAll('input[type=\"date\"]');\nif (inpuDateFields.length) {\n inpuDateFields.forEach((inputDate) => {\n inputDate.style.background = '#fff';\n inputDate.style.display = 'flex';\n inputDate.style.width = 'calc(100vw - 7rem - 20px)';\n });\n}\n\n/**\n * header内のカスタム検索に文字、BackSpaceを入力すると上に自動スクロールされる動作を解消させる\n */\n\n// 監視対象の要素を選択\nconst targetNode = document.querySelector('.miepref-global-header-g-search');\n\nif (targetNode !== null) {\n // オプションを設定\n const config = { childList: true, subtree: true };\n\n // 入力時およびバックスペース時のスクロールを制御する関数\n const preventScrollOnInput = (inputElement) => {\n let scrollPosition;\n\n const handleScroll = () => {\n // 入力が完了した後、スクロール位置を元に戻す\n setTimeout(() => {\n window.scrollTo(0, scrollPosition);\n }, 0);\n };\n\n // 入力イベントリスナー\n inputElement.addEventListener('input', () => {\n // 現在のスクロール位置を保存\n scrollPosition = window.pageYOffset;\n // スクロール位置を制御\n handleScroll();\n });\n\n // キーダウンイベントリスナー\n inputElement.addEventListener('keydown', (event) => {\n // バックスペースキーが押された場合\n if (event.key === 'Backspace') {\n // 現在のスクロール位置を保存\n scrollPosition = window.pageYOffset;\n // スクロール位置を制御\n handleScroll();\n }\n });\n };\n\n // MutationObserverのコールバック関数\n const callback = (mutationsList, observer) => {\n for (const mutation of mutationsList) {\n // 子要素が変更された場合\n if (mutation.type === 'childList') {\n // 追加されたノードをチェック\n for (const addedNode of mutation.addedNodes) {\n // input[type=\"text\"]が追加された場合\n if (addedNode.nodeName === 'INPUT' && addedNode.type === 'text') {\n // 入力時およびバックスペース時のスクロールを制御\n preventScrollOnInput(addedNode);\n // input[type=\"text\"]が見つかったので、監視を終了\n observer.disconnect();\n }\n }\n }\n }\n };\n\n // MutationObserverをインスタンス化\n const observer = new MutationObserver(callback);\n\n // DOM変更の監視を開始\n observer.observe(targetNode, config);\n}\n\n// 画像の保存禁止簡易処理\nfunction imageGuard(selector) {\n const guard_selector = document.querySelectorAll(selector);\n for (let n = 0; n < guard_selector.length; n++) {\n guard_selector[n].addEventListener(\n 'contextmenu',\n function (e) {\n e.preventDefault();\n },\n false\n );\n }\n const guard_style = {\n 'pointer-events': 'none',\n '-webkit-touch-callout': 'none',\n '-moz-touch-callout': 'none',\n 'touch-callout': 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n 'user-select': 'none',\n };\n Object.keys(guard_style).forEach((v, i, a) => {\n for (let n = 0; n < guard_selector.length; n++) {\n guard_selector[n].style[v] = guard_style[v];\n }\n });\n}\nwindow.addEventListener('load', function () {\n imageGuard('.copy-guard');\n});\n\n// Mediaページのカート追加ボタン\n//\nconst mediaCartBtns = document.querySelectorAll('.media-cart-btns');\n\nasync function cartRelatedAction(url, freePhotoID) {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content');\n\n // リクエストのボディに含めるデータ\n const data = {\n freePhotoID: freePhotoID\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'include', // Cookieをリクエストに含める\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': csrfToken, // CSRFトークンをヘッダーに含める\n },\n body: JSON.stringify(data),\n });\n\n if (!response.ok) {\n const errorMessage = await response.json();\n alert(errorMessage.message); // エラーメッセージをalertで表示\n return false; // 関数からfalseを返却\n }\n // レスポンスが正常(2xx)の場合\n const responseData = await response.json();\n console.log('Success:', responseData);\n return true; // 関数からtrueを返却\n } catch (error) {\n console.error('Fetch error:', error);\n return false; // 例外が発生した場合にfalseを返却\n }\n}\n\nif (mediaCartBtns.length) {\n const mediaCartBtnsConfig = {\n addBtnIconClassName: 'fa-cart-shopping',\n addBtnHvrIconClassName: 'fa-download',\n addedBtnTxt: 'カートに追加済み',\n addedBtnHvrTxt: 'カートから削除',\n addedBtnIconClassName: 'fa-check',\n addedBtnHvrIconClassName: 'fa-xmark',\n };\n\n mediaCartBtns.forEach((btns) => {\n const addBtn = btns.querySelector('.media-add-cart-btn');\n const addBtnIcon = addBtn.querySelector('.media-add-cart-btn__icon');\n\n const addedBtn = btns.querySelector('.media-added-cart-btn');\n const addedBtnIcon = addedBtn.querySelector('.media-added-cart-btn__icon');\n const addedBtnTxt = addedBtn.querySelector('.media-added-cart-btn__txt');\n\n addBtn.addEventListener('click', () => {\n const freePhotoID = addBtn.id.replace('addToCart', '');\n cartRelatedAction('/media/photo_free/add_to_cart', freePhotoID).then(result => {\n if (result){\n addedBtn.classList.remove('d-none');\n addBtn.classList.add('d-none');\n }\n })\n });\n\n addedBtn.addEventListener('click', () => {\n const freePhotoID = addedBtn.id.replace('removeFromCart', '');\n cartRelatedAction('/media/photo_free/remove_from_cart', freePhotoID).then(result => {\n if (result) {\n addBtn.classList.remove('d-none');\n addedBtn.classList.add('d-none');\n }\n });\n });\n\n addBtn.addEventListener('mouseover', () => {\n addBtnIcon.classList.remove(mediaCartBtnsConfig.addBtnIconClassName);\n addBtnIcon.classList.add(mediaCartBtnsConfig.addBtnHvrIconClassName);\n });\n\n addBtn.addEventListener('mouseout', () => {\n addBtnIcon.classList.remove(mediaCartBtnsConfig.addBtnHvrIconClassName);\n addBtnIcon.classList.add(mediaCartBtnsConfig.addBtnIconClassName);\n });\n\n addedBtn.addEventListener('mouseover', () => {\n addedBtnTxt.textContent = mediaCartBtnsConfig.addedBtnHvrTxt;\n addedBtnIcon.classList.remove(mediaCartBtnsConfig.addedBtnIconClassName);\n addedBtnIcon.classList.add(mediaCartBtnsConfig.addedBtnHvrIconClassName);\n });\n\n addedBtn.addEventListener('mouseout', () => {\n addedBtnTxt.textContent = mediaCartBtnsConfig.addedBtnTxt;\n addedBtnIcon.classList.remove(mediaCartBtnsConfig.addedBtnHvrIconClassName);\n addedBtnIcon.classList.add(mediaCartBtnsConfig.addedBtnIconClassName);\n });\n });\n}\n\n\n// websサイト最下部に表示されるリコメンドポップアップ\n\nif (document.querySelector('.recommend-contents-popup-carousel')) {\n const elm = document.querySelector('.recommend-contents-popup');\n const swiperElm = document.querySelector('[data-role=\"recommend-contents-popup-carousel-swiper\"]');\n const handle = document.querySelector('.recommend-contents-popup__handle');\n const carouselPrev = document.querySelector('.recommend-contents-popup-carousel__nav.--prev');\n const carouselNext = document.querySelector('.recommend-contents-popup-carousel__nav.--next');\n const state = {\n isOpen: true,\n };\n new RecommendContentsPopup({ elm, swiperElm, handle, carouselPrev, carouselNext, state });\n}\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\nimport Swiper from 'swiper/bundle';\n\n$(() => {\n // 各エリアのチェックボックスが選択された場合、全てのチェックをOff、\n // または全て手動でチェックされた場合は「全て」のチェックボックをOnにする\n function switchAreaAllCheckbox() {\n // 全てのチェックを外す\n $('input[name=\"spot_area_id[all]\"]').prop('checked', false);\n // 全て手動でチェックされた場合、チェックボックスの「全て」にチェックをつける\n if ($('input[name=\"q[areas_id_in][]\"]:checked').length === $('input[name=\"q[areas_id_in][]\"]').length - 1) {\n $('input[name=\"spot_area_id[all]\"]').prop('checked', true);\n }\n }\n\n // 各カテゴリーのチェックボックスが選択された場合、全てのチェックをOff、\n // または全て手動でチェックされた場合は「全て」のチェックボックをOnにする\n function switchCategoryAllCheckbox() {\n // 全てのチェックを外す\n $('input[name=\"spot_category_id[all]\"]').prop('checked', false);\n // 全て手動でチェックされた場合、チェックボックスの「全て」にチェックをつける\n if (\n $('input[name=\"q[categories_id_in][]\"]:checked').length ===\n $('input[name=\"q[categories_id_in][]\"]').length - 1\n ) {\n $('input[name=\"spot_category_id[all]\"]').prop('checked', true);\n }\n }\n\n // 現在地取得成功時のみサーバに処理を送信する\n function successGetPosition(position) {\n const url = $('#sort_distance').attr('href');\n $('#sort_distance').attr('href', `${url}&lat=${position.coords.latitude}&lng=${position.coords.longitude}`);\n window.location.href = `${url}&lat=${position.coords.latitude}&lng=${position.coords.longitude}`;\n }\n\n function failGetPosition(error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n alert('位置情報の取得が許可されませんでした');\n break;\n case error.POSITION_UNAVAILABLE:\n alert('電波状況などで位置情報が取得できませんでした');\n break;\n case error.TIMEOUT:\n alert('位置情報の取得にてタイムアウトが発生しました');\n break;\n case error.UNKNOWN_ERROR:\n alert('原因不明のエラーが発生しました');\n break;\n }\n }\n\n // 現在地に近いボタン押下時、現在地を取得する\n if ($('#sort_distance').length) {\n $('#sort_distance').click(function f() {\n const options = {\n enableHighAccuracy: true,\n timeout: 5000,\n maximumAge: 0,\n };\n\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(successGetPosition, failGetPosition, options);\n } else {\n alert('ご使用中のブラウザは現在地検索に対応されておりません');\n }\n return false;\n });\n }\n\n if ($('#spot_search').length) {\n // エリア全て選択時、エリアの状態も変更する\n $('input[name=\"spot_area_id[all]\"]').click((e) => {\n $('input[name=\"q[areas_id_in][]\"]').prop('checked', e.target.checked);\n });\n\n // エリア選択の場合、全ての選択状態を設定/解除を行う\n $('input[name=\"q[areas_id_in][]\"]').click(() => {\n switchAreaAllCheckbox();\n });\n\n // カテゴリー全て選択時、カテゴリーの状態も変更する\n $('input[name=\"spot_category_id[all]\"]').click((e) => {\n $('input[name=\"q[categories_id_in][]\"]').prop('checked', e.target.checked);\n });\n\n // カテゴリー選択の場合、全ての選択状態を設定/解除を行う\n $('input[name=\"q[categories_id_in][]\"]').click(() => {\n switchCategoryAllCheckbox();\n });\n }\n});\n\nif (document.querySelector('.near-contents')) {\n let nearContentsSwiper = new Swiper(\".near-contents [data-role='cmn-swiper']\", {\n slidesPerView: 2,\n spaceBetween: 16,\n loop: true,\n breakpoints: {\n 768: {\n slidesPerView: 3,\n spaceBetween: 32,\n },\n },\n navigation: {\n nextEl: \".near-contents [data-role='cmn-swiper-next']\",\n prevEl: \".near-contents [data-role='cmn-swiper-prev']\",\n },\n });\n}\n\n// 行きたいボタン押下時の吹き出し\nif (document.querySelector('.myplan-balloon')) {\n const balloonCnt = document.querySelector('.myplan-balloon');\n const addBtn = document.querySelector(\"[data-target='favorite-spot-button.add']\");\n const removeBtn = document.querySelector(\"[data-target='favorite-spot-button.remove']\");\n const closeBtn = document.querySelector('.myplan-balloon__close');\n addBtn.addEventListener('click', function () {\n balloonCnt.classList.add('is-show');\n });\n removeBtn.addEventListener('click', function () {\n balloonCnt.classList.remove('is-show');\n });\n closeBtn.addEventListener('click', function () {\n balloonCnt.classList.remove('is-show');\n });\n}\n","export default class Form {\n constructor({ app, node }) {\n this.app = app;\n this.node = node;\n this.store = app.store;\n\n this.hideClassName = this.node.dataset.hideClass;\n }\n\n show() {\n this.node.classList.remove(this.hideClassName);\n }\n\n hide() {\n this.node.classList.add(this.hideClassName);\n }\n\n render() {\n this.hide();\n if (this.app.getState('isShownForm')) {\n this.show();\n }\n }\n}\n","export default class TasteBundlerBtn {\n constructor({ app, node }) {\n this.app = app;\n this.node = node;\n this.store = app.store;\n this.id = this.node.dataset.id;\n this.params = {\n taste1: Number(this.node.dataset.taste1),\n taste2: Number(this.node.dataset.taste2),\n taste3: Number(this.node.dataset.taste3),\n };\n\n this.activeClassName = this.store.config.designActiveClassName;\n\n this.node.addEventListener('click', () => {\n this.handleClick();\n });\n }\n\n handleClick() {\n this.app.setState('activeTasteBundlerBtnId', this.id);\n this.setTasteState();\n }\n\n setTasteState() {\n const newState = { ...this.app.getState('taste'), ...this.params };\n this.app.setState('taste', newState);\n }\n\n active() {\n this.node.classList.add(this.activeClassName);\n }\n\n inactive() {\n this.node.classList.remove(this.activeClassName);\n }\n\n render() {\n if (this.app.getState('activeTasteBundlerBtnId') === this.id) {\n this.active();\n } else {\n this.inactive();\n }\n }\n}\n","export default class PrefBundlerBtn {\n constructor({ app, node }) {\n this.app = app;\n this.node = node;\n this.store = app.store;\n this.id = this.node.dataset.id;\n this.params = {\n pref1: Number(this.node.dataset.pref1),\n pref2: Number(this.node.dataset.pref2),\n pref3: Number(this.node.dataset.pref3),\n pref4: Number(this.node.dataset.pref4),\n pref5: Number(this.node.dataset.pref5),\n };\n\n this.activeClassName = this.store.config.designActiveClassName;\n\n this.node.addEventListener('click', () => {\n this.handleClick();\n });\n }\n\n handleClick() {\n this.app.setState('activePrefBundlerBtnId', this.id);\n this.setPrefState();\n }\n\n setPrefState() {\n this.app.setState('pref', this.params);\n }\n\n active() {\n this.node.classList.add(this.activeClassName);\n }\n\n inactive() {\n this.node.classList.remove(this.activeClassName);\n }\n\n render() {\n if (this.app.getState('activePrefBundlerBtnId') === this.id) {\n this.active();\n } else {\n this.inactive();\n }\n }\n}\n","export default class PrefSlider {\n constructor({ app, node }) {\n this.app = app;\n this.node = node;\n this.store = app.store;\n this.target = this.node.dataset.target;\n\n this.node.addEventListener('change', () => {\n this.handleChange();\n });\n }\n\n handleChange() {\n const newState = {};\n const prefState = this.app.getState('pref');\n Object.keys(prefState).forEach((member) => {\n if (Object.hasOwnProperty.call(prefState, member)) {\n if (member === this.target) {\n newState[member] = Number(this.node.value);\n } else {\n newState[member] = prefState[member];\n }\n }\n });\n this.app.setState('pref', newState);\n }\n\n render() {\n this.node.value = this.app.getState('pref')[this.target];\n }\n}\n","export default class TasteSlider {\n constructor({ app, node }) {\n this.app = app;\n this.node = node;\n this.store = app.store;\n this.params = { taste4: Number(this.node.value) };\n\n this.node.addEventListener('change', () => {\n this.handleChange();\n });\n }\n\n handleChange() {\n this.params = { taste4: Number(this.node.value) };\n this.setTasteState();\n }\n\n setTasteState() {\n const newState = { ...this.app.getState('taste'), ...this.params };\n this.app.setState('taste', newState);\n }\n}\n","export default class Select {\n constructor({ app, node, type }) {\n this.app = app;\n this.node = node;\n this.store = app.store;\n this.type = type;\n\n this.node.addEventListener('change', () => {\n this.handleChange();\n });\n }\n\n handleChange() {\n this.app.setState(this.type, this.node.value);\n }\n}\n","import axios from 'axios';\nimport { csrfToken } from '@rails/ujs';\n\nexport default class SubmitBtn {\n constructor({ app, node }) {\n this.app = app;\n this.node = node;\n this.store = app.store;\n\n this.node.addEventListener('click', (e) => {\n e.preventDefault();\n if (!this.app.getState('firstSubmit')) this.app.setState('firstSubmit', true);\n\n const requestURI = `${this.store.config.aicAPIBaseURI}?${this.app.getQueries()}`;\n\n // [note] まずリクエスト開始前にローディングぐるぐるパーツを表示します。\n this.app.setState('isFetching', true);\n\n axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest';\n axios.interceptors.request\n .use(config => ({ ...config, headers: { ...config.headers, 'X-CSRF-Token': csrfToken() } }));\n\n // [note] リクエストしています\n axios\n .get(requestURI)\n .then((res) => {\n // [note] 結果タグ(html)を表示に追加する\n const result = document.getElementById('aic_search_result');\n result.innerHTML = res.data;\n\n // 結果部分にスクロール\n this.app.aiRoutePlannerSubmitBtnScroller.scroll();\n\n // [note] ローディングダイアログを停止します。\n this.app.setState('isFetching', false);\n })\n .catch((err) => {\n console.log(err.response); // eslint-disable-line no-console\n // [note] ローディングダイアログを停止します。\n this.app.setState('isFetching', false);\n return null;\n });\n });\n }\n}\n","import Form from './formUi/Form';\nimport TasteBundlerBtn from './formUi/TasteBundlerBtn';\nimport PrefBundlerBtn from './formUi/PrefBundlerBtn';\nimport PrefSlider from './formUi/PrefSlider';\nimport TasteSlider from './formUi/TasteSlider';\nimport Select from './formUi/Select';\nimport SubmitBtn from './formUi/SubmitBtn';\n// import Loader from './assistUi/Loader';\n\nexport default class App {\n constructor({\n aicAPIBaseURI,\n apiKey,\n place,\n activeTasteBundlerBtnId = 'taste-bundler-btn-1',\n activePrefBundlerBtnId = 'pref-bundler-btn-1',\n designActiveClassName = 'is-selected',\n }) {\n // Store\n // - 全てのデザインコンポーネントが共有する情報の集合\n // - stateはコンストラクタ内、最後に定義\n\n this.store = {\n config: {\n aicAPIBaseURI,\n apiKey,\n place,\n designActiveClassName,\n selector: {\n form: '[data-mp-role=\"aic-form\"]',\n tasteBundlerBtn: '[data-mp-role=\"aic-taste-bundler-btn\"]',\n prefBundlerBtn: '[data-mp-role=\"aic-pref-bundler-btn\"]',\n prefSlider: '[data-mp-role=\"aic-pref-slider\"]',\n tasteSlider: '[data-mp-role=\"aic-taste-slider\"]',\n startSpotSelect: '[data-mp-role=\"aic-start-spot-select\"]',\n durationSelect: '[data-mp-role=\"aic-duration-select\"]',\n startTimeSelect: '[data-mp-role=\"aic-start-time-select\"]',\n daysSelect: '[data-mp-role=\"aic-days-select\"]',\n transportationSelect: '[data-mp-role=\"aic-transportation-select\"]',\n submitBtn: '[data-mp-role=\"aic-submit-btn\"]',\n // loader: '[data-mp-role=\"aic-loader\"]',\n },\n selectTypes: ['startSpot', 'duration', 'startTime', 'days', 'transportation'],\n },\n\n state: {\n _activeTasteBundlerBtnId: undefined,\n _activePrefBundlerBtnId: undefined,\n _taste: {\n taste1: undefined,\n taste2: undefined,\n taste3: undefined,\n taste4: undefined,\n },\n _pref: {\n pref1: undefined,\n pref2: undefined,\n pref3: undefined,\n pref4: undefined,\n pref5: undefined,\n },\n _startSpot: undefined,\n _duration: undefined,\n _startTime: undefined,\n _days: undefined,\n _transportation: undefined,\n _aicAPIInfo: undefined,\n _wpAPIInfo: undefined,\n _mixInfo: undefined,\n _hasValidSpotData: undefined,\n _firstSubmit: false, // 一度でも検索を行ったかを取得可能\n _isShownForm: true,\n },\n };\n\n // Design Components\n // - DOMにマッピングされたインスタンス群\n\n // Node of Form UI\n\n this.form = new Form({\n app: this,\n node: document.querySelector(this.store.config.selector.form),\n });\n\n this.tasteBundlerBtns = [];\n document.querySelectorAll(this.store.config.selector.tasteBundlerBtn).forEach((node) => {\n this.tasteBundlerBtns.push(new TasteBundlerBtn({ app: this, node }));\n });\n\n this.prefBundlerBtns = [];\n document.querySelectorAll(this.store.config.selector.prefBundlerBtn).forEach((node) => {\n this.prefBundlerBtns.push(new PrefBundlerBtn({ app: this, node }));\n });\n\n this.prefSliders = [];\n document.querySelectorAll(this.store.config.selector.prefSlider).forEach((node) => {\n this.prefSliders.push(new PrefSlider({ app: this, node }));\n });\n\n this.tasteSlider = new TasteSlider({\n app: this,\n node: document.querySelector(this.store.config.selector.tasteSlider),\n });\n\n this.selects = [];\n this.store.config.selectTypes.forEach((select) => {\n this.selects.push(\n new Select({\n app: this,\n node: document.querySelector(this.store.config.selector[`${select}Select`]),\n type: select,\n })\n );\n });\n\n this.submitBtns = [];\n document.querySelectorAll(this.store.config.selector.submitBtn).forEach((node) => {\n this.submitBtns.push(\n new SubmitBtn({\n app: this,\n node,\n })\n );\n });\n\n // Node of Assist UI\n\n // [to FE]\n // Loaderのパーツがviewになかったので、一時的にコメントアウト\n // this.loader = new Loader({\n // app: this,\n // node: document.querySelector(this.store.config.selector.loader),\n // });\n\n // Initial State & Render View\n // - 現在undefinedとなっているstateの初回割り当てを行う\n // - これにより各stateに関係したデザインコンポーネントがrenderメソッドにより見た目を更新する\n\n // A. アプリ実行者側の指定で初期値が決まるstateの初期化\n this.setState('activePrefBundlerBtnId', activePrefBundlerBtnId);\n this.setState('activeTasteBundlerBtnId', activeTasteBundlerBtnId);\n const activeTasteBundlerBtn = this.tasteBundlerBtns.find(\n (btn) => btn.id === this.getState('activeTasteBundlerBtnId')\n );\n this.setState('taste', {\n ...activeTasteBundlerBtn.params,\n ...this.tasteSlider.params,\n });\n\n const activePrefBundlerBtn = this.prefBundlerBtns.find((btn) => btn.id === this.getState('activePrefBundlerBtnId'));\n this.setState('pref', activePrefBundlerBtn.params);\n\n // B. 初期htmlパーツの状態を元に初期値が決まるstateの初期化\n this.selects.forEach((select) => {\n this.setState(select.type, select.node.value);\n });\n }\n\n getState(targetState) {\n return this.store.state[`_${targetState}`];\n }\n\n setState(targetState, v) {\n this.store.state[`_${targetState}`] = v;\n\n // Bind Design Component Render\n\n switch (targetState) {\n case 'activeTasteBundlerBtnId':\n this.tasteBundlerBtns.forEach((btn) => {\n btn.render();\n });\n break;\n\n case 'activePrefBundlerBtnId':\n this.prefBundlerBtns.forEach((btn) => {\n btn.render();\n });\n break;\n\n case 'activeTasteRadioId':\n this.tasteRadios.forEach((radio) => {\n radio.render();\n });\n break;\n\n case 'pref':\n this.prefSliders.forEach((slider) => {\n slider.render();\n });\n break;\n\n case 'isFetching':\n // this.loader.render(); [to FE] Loadingパーツがないため、一時的にコメントアウト\n // this.spotItems.render();\n // this.courseCopyBtn.render();\n // this.resultMsg.render();\n // this.resultNoItemMsg.render();\n break;\n\n case 'isShownForm':\n this.reSearchBtn.render();\n this.form.render();\n break;\n\n default:\n break;\n }\n\n // Save All Store to HTML Tag\n this.form.node.dataset.state = JSON.stringify(this.store.state);\n // console.log(JSON.parse(this.form.node.dataset.state)); // 取得方法\n\n // [Debug] stateが更新監視・出力\n // console.log(`[debug] ${targetState}情報が更新されました`, this.store.state);\n }\n\n getQueries() {\n const taste = this.getState('taste');\n const pref = this.getState('pref');\n let params = '';\n\n params += `apikey=${this.store.config.apiKey}`;\n params += `&place=${this.store.config.place}`;\n params += `&start_spot_id=${this.getState('startSpot')}`;\n params += `&duration=${this.getState('duration')}`;\n params += `&start_time=${this.getState('startTime')}`;\n params += `&days=${this.getState('days')}`;\n params += `&transportation=${this.getState('transportation')}`;\n params += `&taste=${taste.taste1},${taste.taste2},${taste.taste3},${taste.taste4}`;\n params += `&pref=${pref.pref1},${pref.pref2},${pref.pref3},${pref.pref4},${pref.pref5}`;\n\n return params;\n }\n\n aiRoutePlannerSubmitBtnScroller = {\n targetElmIdName: 'aic_search_result',\n yOffset: -200,\n animInterval: 15,\n stepCount: 1,\n stepNum: 20,\n scroll() {\n document.documentElement.scrollTop = 0;\n const targetElmYloc = document.getElementById(this.targetElmIdName).getBoundingClientRect().top;\n // let { stepCount } = this;\n // const { stepNum } = this;\n const distance = targetElmYloc + this.yOffset;\n window.scrollBy(0, distance);\n // const scrollNode = setInterval(() => {\n // if (stepCount <= stepNum) {\n // window.scrollBy(0, distance / stepNum);\n // stepCount += 1;\n // } else {\n // clearInterval(scrollNode);\n // }\n // }, this.animInterval);\n },\n };\n\n // [todo] ハードコードです。\n // [note] rails版では利用しないと思われるためコメントアウト\n // scrollAppTopLoc() {\n // const rect = document.querySelector('#conciergeMenuHead').getBoundingClientRect();\n // document.documentElement.scrollTop = rect.top + window.pageYOffset;\n // }\n}\n","import AicUi from './AicUi/App';\n\n// ------------------------------\n// For Concierge Index Page\n// ------------------------------\n\nif (document.querySelector('[data-mp-role=\"aic-form\"]')) {\n // eslint-disable-next-line no-unused-vars\n const aicUi = new AicUi({\n aicAPIBaseURI: `/course/concierge/index.js`,\n apiKey: 'd0wI2Hldi2itkfCPzR4j', // dummy\n place: 'kanko_mie', // dummy\n });\n}\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\n\nfunction lazyLoadHTML(outputIdSelector, ajaxURL) {\n if ($(outputIdSelector).length) {\n $.ajax({\n url: ajaxURL,\n beforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n },\n type: 'GET',\n timeout: 5000,\n });\n }\n}\n\nfunction onClickLazyLoadHTML(buttonIdSelector, outputIdSelector, ajaxURL){\n let isLoaded = false;\n $(buttonIdSelector).click(()=>{\n if (!isLoaded){\n lazyLoadHTML(outputIdSelector,ajaxURL);\n isLoaded = true;\n }\n });\n}\n\nlet isTopPageLoaded = false;\n$(window).on('load',()=>{\n $(window).scroll(() => {\n if (!isTopPageLoaded) {\n lazyLoadHTML('#top-pickup', '/top_mie_article');\n lazyLoadHTML('#daily-event', '/top_event');\n lazyLoadHTML('#ranking-report', '/top_ranking_report')\n lazyLoadHTML('#top-theme', '/top_pickup_mie');\n lazyLoadHTML('#instagram', '/top_instagram');\n isTopPageLoaded = true;\n }\n });\n});\n\nonClickLazyLoadHTML('#ranking-spot-btn', '#ranking-spot','/top_ranking_spot');\nonClickLazyLoadHTML('#ranking-gourmet-btn', '#ranking-gourmet', '/top_ranking_gourmet');\nonClickLazyLoadHTML('#ranking-event-btn', '#ranking-event', '/top_ranking_event');\nonClickLazyLoadHTML('#ranking-activity-btn', '#ranking-activity', '/top_ranking_activity');\nonClickLazyLoadHTML('#ranking-ai-btn', '#recommend_spot', '/top_ai_recommend');\n\n// ブラウザ幅が広い時のみ読み込み時グロナビの位置をMV下にする\nif (document.querySelector('.miepref-global-header--home') !== null) {\n let gnavFixed = () => {\n const globalHeader = document.querySelector('.miepref-global-header');\n const totopBtn = document.querySelector('.totop-btn--top');\n const globalHeaderHeight = 100;\n const windowHeight = window.innerHeight;\n const scroll = window.pageYOffset || document.documentElement.scrollTop;\n if (scroll > windowHeight - globalHeaderHeight) {\n globalHeader.classList.remove('is-xl-absolute');\n totopBtn.classList.remove('is-mv-show');\n } else {\n globalHeader.classList.add('is-xl-absolute');\n totopBtn.classList.add('is-mv-show');\n }\n };\n window.addEventListener('load', gnavFixed);\n window.addEventListener('scroll', gnavFixed);\n}\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\n\n$(() => {\n //\n if ($('.side_content_ai_recommend_spot').length) {\n $.ajax({\n url: '/side_content_ai_recommend',\n beforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n },\n type: 'GET',\n timeout: 5000,\n });\n }\n\n if ($('.side_content_ai_item_recommend_spot').length) {\n const content_id = $('.side_content_ai_item_recommend_spot').data('contentId');\n $.ajax({\n url: '/side_content_ai_item_recommend_spot',\n beforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n },\n type: 'GET',\n timeout: 5000,\n data: { id: content_id },\n });\n }\n\n if ($('.side_content_ai_item_recommend_event').length) {\n const content_id = $('.side_content_ai_item_recommend_event').data('contentId');\n $.ajax({\n url: '/side_content_ai_item_recommend_event',\n beforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n },\n type: 'GET',\n timeout: 5000,\n data: { id: content_id },\n });\n }\n\n if ($('.side_content_ai_item_recommend_activity').length) {\n const content_id = $('.side_content_ai_item_recommend_activity').data('contentId');\n $.ajax({\n url: '/side_content_ai_item_recommend_activity',\n beforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n },\n type: 'GET',\n timeout: 5000,\n data: { id: content_id },\n });\n }\n\n if ($('.side_content_ai_item_recommend_report').length) {\n const content_id = $('.side_content_ai_item_recommend_report').data('contentId');\n $.ajax({\n url: '/side_content_ai_item_recommend_report',\n beforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n },\n type: 'GET',\n timeout: 5000,\n data: { id: content_id },\n });\n }\n\n if ($('.side_content_ai_item_recommend_feature_page').length) {\n const content_id = $('.side_content_ai_item_recommend_feature_page').data('contentId');\n $.ajax({\n url: '/side_content_ai_item_recommend_feature_page',\n beforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n },\n type: 'GET',\n timeout: 5000,\n data: { id: content_id },\n });\n }\n});\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\n\n$(() => {\n const START_LAT = 34.73402180789384;\n const START_LNG = 136.51022286856377;\n let marker;\n\n function initMap() {\n // マップの初期化\n const map = new google.maps.Map(document.getElementById('lat_lng_map_field'), {\n zoom: 13,\n center: {lat: START_LAT, lng: START_LNG }\n });\n\n // クリックイベントを追加\n map.addListener('click', function(e) {\n getClickLatLng(e.latLng, map);\n });\n\n // 住所検索ボタンをクリックされたらジオコーディング\n $(\"#map_search_btn\").on('click', function () {\n let address = document.getElementById('map_address').value\n geocodeAddress(address, map)\n });\n };\n\n function getClickLatLng(lat_lng, map) {\n // 座標を表示\n document.getElementById('photocon_photocon_image_attributes_inq_lat').value = lat_lng.lat();\n document.getElementById('photocon_photocon_image_attributes_inq_lng').value = lat_lng.lng();\n // マーカーを設置\n if (marker == undefined){\n marker = new google.maps.Marker({\n position: lat_lng,\n map: map\n })\n } else {\n marker.setPosition(lat_lng)\n };\n // マップの中心を移動\n map.panTo(lat_lng);\n };\n\n function geocodeAddress(address, map) {\n // photo_contestsコントローラーのgeocodingアクションへ投げる\n $.ajax({\n url: \"geocoding\",\n type: \"GET\",\n data: { address: address },\n dataType: \"html\",\n }).done(function (data) {\n var data_json = JSON.parse(data);\n // 地図に反映\n var lat = parseFloat(data_json[\"lat\"])\n var lng = parseFloat(data_json[\"lng\"])\n let latLng = new google.maps.LatLng(lat, lng)\n getClickLatLng(latLng, map)\n });\n };\n\n if ($('#lat_lng_map_field').length) {\n initMap()\n };\n});\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\n\n$(() => {\n if ($('#recommend_feature_page').length) {\n // 2022.12.20 ooshima 後日非同期で表示する対応を行う予定。現状コメントアウト\n // $.ajax({\n // url: '/feature_page_ai_recommend',\n // beforeSend(xhr) {\n // xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n // },\n // type: 'GET',\n // timeout: 5000,\n // });\n }\n});\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\n\n$(() => {\n if ($('#jc_user_token').length) {\n // jc_user_tokenをローカルストレージに保存する\n const div = document.getElementById(\"jc_user_token\");\n localStorage.setItem(\"japan-concierge-user-token\", div.dataset.token);\n }\n});\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\n\n$(() => {\n if ($('#special-matsuzaka').length) {\n // 2023.1.5 大島\n // 特設サイト「松阪牛」のメニュー表示のイベントトラッキング\n if (typeof ga !== 'undefined') {\n ga('send', 'event', 'Navi', 'Impression', '17:Main:Top', '1');\n }\n }\n});\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport $ from 'jquery';\n\n$(() => {\n if ($('#crm_user_token').length) {\n // CRMのユーザートークンをformの項目に追加\n document.getElementById(\"crm_user_token\").value = localStorage.getItem(\"customerconcierge-token\");\n }\n\n if ($('#user_account_form').length) {\n // 登録フォーム画面での入力パスワードチェック処理\n const form = document.getElementById('user_account_form');\n const passwordInput = document.getElementById('mypage_account_password_input');\n const confirmPasswordInput = document.getElementById('mypage_account_password_conf_input');\n\n if (passwordInput && confirmPasswordInput) {\n form.addEventListener('submit', function(event) {\n if (passwordInput.value !== confirmPasswordInput.value) {\n alert('\"パスワード\"と\"パスワード確認用\"の入力内容が異なります。同じ内容を設定してください。');\n event.preventDefault(); // フォームの送信をキャンセル\n }\n });\n };\n }\n});\n","import { Modal } from 'bootstrap';\n\nclass MovieListItem {\n constructor({ cardElm }) {\n this.elm = cardElm;\n this.contentElm = this.elm.querySelector('.movie-list-item__content');\n this.modalElm = this.elm.querySelector('.modal');\n this.applyBtn = this.elm.querySelector('.modal-apply-btn');\n this.modalIFrameElm = this.modalElm.querySelector('iframe');\n this.bsModal = new Modal(this.modalElm);\n this.movieId = this.elm.getAttribute('data-movie-id')\n this.youTubeId = this.elm.getAttribute('data-youtube-id');\n this.applyLinkUrl = this.applyBtn.getAttribute('data-base-url');\n\n const showModal = () => {\n this.bsModal.show();\n this.modalIFrameElm.src = `https://www.youtube.com/embed/${this.youTubeId}`;\n };\n\n const sendAnalyticsData = () => {\n const xhr = new XMLHttpRequest();\n xhr.open(\"GET\", `/media/movie/${this.movieId}`, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n if (xhr.status === 200) {\n const response = JSON.parse(xhr.responseText);\n console.log(response);\n } else {\n console.error(\"アクセス集計でエラーが発生しました\");\n }\n }\n };\n xhr.send();\n };\n\n const stopMovie = () => {\n this.modalIFrameElm.src = ``;\n }\n\n const openApplyPage = () => {\n window.location.href = `${this.applyLinkUrl}?movie_id=${this.movieId}`;\n };\n\n this.contentElm.addEventListener('click', () => {\n showModal();\n sendAnalyticsData();\n });\n\n this.applyBtn.addEventListener('click', () => {\n openApplyPage();\n });\n\n this.modalElm.addEventListener('hide.bs.modal', () => {\n stopMovie();\n })\n }\n}\n\nif (document.querySelectorAll('.movie-list-item').length) {\n document.querySelectorAll('.movie-list-item').forEach((cardElm) => {\n new MovieListItem({ cardElm });\n });\n}\n\nif (document.querySelectorAll('.media-cart-btns').length){\n window.addEventListener('pageshow', () => {\n const entries = performance.getEntriesByType(\"navigation\");\n entries.forEach(function (entry) {\n if (entry.type === \"back_forward\") {\n window.location.reload();\n }\n });\n });\n}\n","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport Rails from '@rails/ujs';\n// import * as ActiveStorage from '@rails/activestorage';\n// import '../channels';\nimport 'controllers';\nimport '../sprinkles';\n\nRails.start();\n// ActiveStorage.start();\n","$(document).ready(function () {\n var flug = false;\n // 閉じる\n $('.accordion-content').slideToggle();\n\n $('.accordion-button').on('click', function () {\n if (flug) {\n $(this).removeClass('is-open');\n $('.accordion-content').slideUp();\n $(this).text('もっと見る');\n flug = false;\n } else {\n $(this).addClass('is-open');\n $('.accordion-content').slideDown();\n $(this).text('閉じる');\n flug = true;\n }\n });\n});\n","// bookingページ: たびくらフォームのサブミットの定義\nif (document.querySelector('[data-role=\"booking-form\"]') !== null) {\n document.querySelectorAll('[data-role=\"booking-filter-btn\"]').forEach((elm) => {\n const input = elm.querySelector('input');\n input.addEventListener('click', (e) => {\n if (elm.classList.contains('is-active')) {\n elm.classList.remove('is-active');\n } else {\n elm.classList.add('is-active');\n }\n });\n });\n\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 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}&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"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","document","addEventListener","detail","xhr","token","getToken","setRequestHeader","data","context","require","definitionsFromContext","window","iFrameResizer","onMessage","message","clientHeight","planConfigureStore","dispatch","setClientHeight","exportConfigureStore","iframeRect","setIframeTop","application","Application","start","planStore","load","controllers","Controller","static","connect","this","submitButtonTarget","click","event","messageTarget","innerHTML","UPDATE_EVENT","REQUEST_EVENT","RECEIVE_EVENT","sendFavoriteSpotUpdated","CustomEvent","dispatchEvent","requestFavoriteSpots","getAll","sendAll","disconnect","removeEventListener","ajax","url","path","type","beforeSend","options","fire","element","success","ids","length","get","setState","includes","addTarget","classList","add","removeTarget","remove","added","removed","parseInt","TOKEN_IDENTIFIER","localStorage","getItem","setToken","setItem","postCourseInfoMessageToJorudan","receiverOrigin","process","env","JORUDAN_POST_MESSAGE_HOST","parent","postMessage","action","courseInfo","courseInfoTarget","value","tokenEvent","Turbolinks","clearCache","visit","loadUrl","Sortable","create","handle","onEnd","newIndex","oldIndex","planSpotIds","getState","planSpot","planSpotEntities","entities","swapSourcePlanSpot","swapTargetPlanSpot","deleteTransit","sortToApi","position","GlobalHeader","constructor","header","querySelector","contents","opener","gSearch","state","isSpOpen","pageYpos","pageYOffset","renderAll","getResponsiveEventName","init","inputElm","placeholder","ua","navigator","userAgent","indexOf","fixBody","html","body","style","overflow","height","scrollBehavior","initialBody","scrollTo","dataset","GlobalFooter","elm","menuOpeners","querySelectorAll","Array","from","forEach","content","nextElementSibling","getComputedStyle","getPropertyValue","app","isContentActive","activeContentId","render","hideClassName","contentId","preventDefault","isActiveSelector","parentElm","parentSelectorName","groupId","childElms","updateChildrenState","updateParentCheckState","activeParent","checked","inactiveParent","activeChildren","inactiveChildren","hasUncheckedChildMember","find","areaId","isActiveArea","activeAreaIds","filter","push","CheckboxGroup","super","updateAreaIdsState","baseImg","originW","Number","originH","areas","areaCoordsArrs","area","coords","replace","split","n","w","getBoundingClientRect","width","h","ratioW","ratioH","index","i","Math","floor","toString","selectors","selector","Selector","contentCloser","ContentCloser","contentWrap","ContentWrap","Content","checkboxGroups","parentCk","areaPartialMapImgs","slice","AreaPartialMapImg","areaImagemapAreas","btn","AreaImagemapArea","areaListBtns","AreaListBtn","areaCheckboxGroups","AreaCheckboxGroup","imagemapResizer","ImagemapResizer","ckGroup","img","setTimeout","tablist","tabs","initialActiveTabNavItem","item","tabpanelsWrap","tabpanels","initialContentId","updateTabContents","tabNavItem","updateTabNavItem","tabItem","ariaSelected","contentItem","swiper","Swiper","slidesPerView","spaceBetween","loop","breakpoints","navigation","nextEl","prevEl","pagination","el","clickable","pairingId","pics","thumbs","thumbItems","thumbsSwiper","picSwiper","info","JSON","parse","markerImage","mapCenter","lat","lng","zoom","google","maps","Map","center","markers","markerInfo","Marker","icon","label","text","color","fontSize","fontWeight","className","optimized","infowindow","InfoWindow","marker","addListener","setContent","permalink","location","pathname","page_fragment","open","anchor","shouldFocus","fitBounds","reduce","bounds","extend","LatLngBounds","checkBtn","submitBtn","disabled","kouyou","yellow","purple","dark_pink","salmon_pink","end","config","types","states","isType","isState","colors","colorset","enableColorLenConfig","lv0","lv1","round","lv2","lv3","lv4","lv5","enableColorLen","paramWrap","createElement","display","justifyContent","paramItem","border","borderRadius","backgroundColor","append","swiperElm","carouselPrev","carouselNext","elmOffset","isOpen","centeredSlides","changeCloseDesign","bottom","console","log","topMvThumbSwiper","topMvSwiper","autoplay","delay","disableOnInteraction","speed","watchSlidesProgress","on","thumb","realIndex","activeAreaId","scrollTarget","isSp","scrollIntoView","prevElm","nextElm","slides","activeIndex","activeSwiperSlide","findIndex","slide","slideTo","imagemap","baseMapImg","mapSelectScrollTarget","bp","appElm","partialImgs","PartialImg","Area","cardSwiper","CardSwiper","cnt","innerWidth","hayawakarMvSwiper","ArchiveFilter","Tab","cmnSwiperElms","SwiperCmn","singleSwiperElms","SwiperSingle","circleSwiperElms","SwiperCircle","photoSwiperElms","SwiperPhoto","gallerySwiperElms","SwiperGallery","agreePrivacyPolicyElms","checkAgreeBtn","TopMv","TopMap","btnMap","indexMarkersMaps","IndexMarkersMap","hayawakariMv","flowerParams","FlowerParam","inpuDateFields","inputDate","background","targetNode","childList","subtree","preventScrollOnInput","inputElement","scrollPosition","handleScroll","key","callback","mutationsList","observer","mutation","addedNode","addedNodes","nodeName","MutationObserver","observe","guard_selector","guard_style","v","a","imageGuard","mediaCartBtns","async","cartRelatedAction","freePhotoID","csrfToken","getAttribute","response","fetch","method","credentials","headers","stringify","ok","errorMessage","json","alert","responseData","error","mediaCartBtnsConfig","addBtnIconClassName","addBtnHvrIconClassName","addedBtnTxt","addedBtnHvrTxt","addedBtnIconClassName","addedBtnHvrIconClassName","btns","addBtn","addBtnIcon","addedBtn","addedBtnIcon","then","result","textContent","RecommendContentsPopup","$","successGetPosition","attr","latitude","longitude","href","failGetPosition","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","enableHighAccuracy","timeout","maximumAge","geolocation","getCurrentPosition","prop","target","balloonCnt","removeBtn","closeBtn","Form","node","store","hideClass","show","hide","TasteBundlerBtn","params","taste1","taste2","taste3","activeClassName","designActiveClassName","handleClick","setTasteState","newState","active","inactive","PrefBundlerBtn","pref1","pref2","pref3","pref4","pref5","setPrefState","PrefSlider","handleChange","prefState","member","hasOwnProperty","call","TasteSlider","taste4","Select","SubmitBtn","requestURI","aicAPIBaseURI","getQueries","axios","request","use","res","getElementById","aiRoutePlannerSubmitBtnScroller","scroll","catch","err","App","apiKey","place","activeTasteBundlerBtnId","activePrefBundlerBtnId","form","tasteBundlerBtn","prefBundlerBtn","prefSlider","tasteSlider","startSpotSelect","durationSelect","startTimeSelect","daysSelect","transportationSelect","selectTypes","_activeTasteBundlerBtnId","undefined","_activePrefBundlerBtnId","_taste","_pref","_startSpot","_duration","_startTime","_days","_transportation","_aicAPIInfo","_wpAPIInfo","_mixInfo","_hasValidSpotData","_firstSubmit","_isShownForm","tasteBundlerBtns","prefBundlerBtns","prefSliders","selects","select","submitBtns","activeTasteBundlerBtn","activePrefBundlerBtn","targetState","tasteRadios","radio","slider","reSearchBtn","taste","pref","targetElmIdName","yOffset","animInterval","stepCount","stepNum","documentElement","scrollTop","distance","top","scrollBy","AicUi","lazyLoadHTML","outputIdSelector","ajaxURL","onClickLazyLoadHTML","buttonIdSelector","isLoaded","isTopPageLoaded","gnavFixed","globalHeader","totopBtn","windowHeight","innerHeight","content_id","getClickLatLng","lat_lng","setPosition","panTo","latLng","address","dataType","done","data_json","parseFloat","LatLng","geocodeAddress","initMap","div","ga","passwordInput","confirmPasswordInput","MovieListItem","cardElm","contentElm","modalElm","applyBtn","modalIFrameElm","bsModal","Modal","movieId","youTubeId","applyLinkUrl","showModal","src","sendAnalyticsData","XMLHttpRequest","onreadystatechange","readyState","DONE","status","responseText","send","stopMovie","openApplyPage","performance","getEntriesByType","entry","reload","Rails","ready","flug","slideToggle","removeClass","slideUp","addClass","slideDown","contains","bookingForm","prefVal","pf","numberOfPeopleVal","cp","numberOfRoomVal","rn","minBudgetVal","pn","maxBudgetVal","px","roomTypeVal","rt","mealTypeVal","mc","keywordsVal","kw","dateVal","sd","kodawariNodes","kd","kodawariVals","prototype","requestURL"],"sourceRoot":""}