{"version":3,"file":"js/panoramas/embed-0d4dab633610f36530a3.js","mappings":"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AAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,QAAY,UAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,SAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,SAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,UAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,UAAY,UAChD,WAAY,WAAY,WAAY,WAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,UAAY,UAAY,UAChD,WAAY,UAAY,WAAY,UAAY,WAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,UAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,WAAY,WAAY,UAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,UAAY,WAAY,UAAY,UAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,SAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,UAChD,UAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,SAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,UAAY,UAChD,SAAY,WAAY,WAAY,WAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,QAChD,UAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,UAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,UAAY,SAAY,WAChD,SAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,SAAY,SAAY,WAAY,WAChD,WAAY,WAAY,UAAY,UAAY,WAChD,UAAY,WAAY,WAAY,SAAY,WAChD,UAAY,WAAY,WAA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","sources":["webpack:///./app/javascript/src/panoramas/store/themes/index.js","webpack:///./app/javascript/src/panoramas/store/themes/default.js","webpack:///./app/javascript/src/panoramas/store/themes/theme1.js","webpack:///./app/javascript/src/panoramas/store/state.js","webpack:///./app/javascript/src/panoramas/store/helpers.js","webpack:///./app/javascript/src/panoramas/store/getters.ts","webpack:///./app/javascript/src/panoramas/store/mutations.js","webpack:///./app/javascript/src/shared/event_subjects.ts","webpack:///./app/javascript/src/panoramas/store/analytics.js","webpack:///./app/javascript/src/panoramas/store/actions.js","webpack:///./app/javascript/src/panoramas/store/index.js","webpack:///./app/javascript/src/panoramas/components/loading.vue","webpack:///./app/javascript/src/panoramas/components/loading.vue?86ae","webpack:///./app/javascript/src/panoramas/components/loading.vue?e336","webpack:///./app/javascript/src/panoramas/components/loading.vue?7806","webpack:///./app/javascript/src/panoramas/components/error-message.vue","webpack:///./app/javascript/src/panoramas/components/error-message.vue?ba5b","webpack:///./app/javascript/src/panoramas/components/error-message.vue?795c","webpack:///./app/javascript/src/panoramas/components/error-message.vue?081a","webpack:///./app/javascript/src/panoramas/components/item/mixins/transition2d.js","webpack:///./app/javascript/src/panoramas/components/item/item-image.vue","webpack:///./app/javascript/src/panoramas/components/item/item-image.vue?e10c","webpack:///./app/javascript/src/panoramas/components/item/item-image.vue?6df1","webpack:///./app/javascript/src/panoramas/components/item/item-image.vue?a731","webpack:///./app/javascript/src/panoramas/components/video-controls-bus.js","webpack:///./app/javascript/src/panoramas/components/item/mixins/video-player.ts","webpack:///./app/javascript/src/panoramas/components/item/video-overlay.vue","webpack:///./app/javascript/src/panoramas/components/item/video-overlay.vue?60dc","webpack:///./app/javascript/src/panoramas/components/item/video-overlay.vue?48db","webpack:///./app/javascript/src/panoramas/components/item/video-overlay.vue?d034","webpack:///./app/javascript/src/panoramas/components/medium-cache-provider.ts","webpack:///./app/javascript/src/panoramas/components/item/item-video.vue","webpack:///./app/javascript/src/panoramas/components/item/item-video.vue?e639","webpack:///./app/javascript/src/panoramas/components/item/item-video.vue?298f","webpack:///./app/javascript/src/panoramas/components/item/item-video.vue?3cfd","webpack:///./app/javascript/src/panoramas/components/item/mixins/transition3d-base.js","webpack:///./app/javascript/src/panoramas/components/item/mixins/transition3d-fade.js","webpack:///./app/javascript/src/panoramas/components/item/mixins/transition3d-forward.js","webpack:///./app/javascript/src/panoramas/components/item/mixins/transition3d-null.js","webpack:///./app/javascript/src/panoramas/components/item/mixins/transition3d.js","webpack:///./app/javascript/src/panoramas/components/item/mixins/gesture.js","webpack:///./app/javascript/src/panoramas/components/item/item-base-object.ts","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-image-object.ts","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-image.vue","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-image.vue?8a80","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-image.vue?d127","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-image.vue?f48d","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-video-object.ts","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-video.vue?e8bb","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-video.vue","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-video.vue?0efd","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-video.vue?4150","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-image-object.ts","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-image.vue","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-image.vue?9e33","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-image.vue?8b30","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-image.vue?7bd6","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-video-object.ts","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-video.vue?711a","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-video.vue","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-video.vue?9a09","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-video.vue?81ac","webpack:///./app/javascript/src/panoramas/components/item/item-swing-image.vue?acc9","webpack:///./app/javascript/src/panoramas/components/item/item-swing-image.vue","webpack:///./app/javascript/src/panoramas/components/item/item-swing-image.vue?156c","webpack:///./app/javascript/src/panoramas/components/item/item-swing-image.vue?124d","webpack:///./app/javascript/src/panoramas/components/item/item-empty.vue","webpack:///./app/javascript/src/panoramas/components/item/item-empty.vue?478a","webpack:///./app/javascript/src/panoramas/components/item/item-empty.vue?230d","webpack:///./app/javascript/src/panoramas/components/item/item-empty.vue?cd31","webpack:///./node_modules/three-stdlib/effects/StereoEffect.js","webpack:///./app/javascript/src/panoramas/components/item/vr-object.ts","webpack:///./app/javascript/src/panoramas/components/item/three-context.ts","webpack:///./app/javascript/src/panoramas/components/item/item-view.vue","webpack:///./app/javascript/src/panoramas/components/item/item-view.vue?a87d","webpack:///./app/javascript/src/panoramas/components/item/item-view.vue?8cd1","webpack:///./app/javascript/src/panoramas/components/item/item-view.vue?42cf","webpack:///./app/javascript/src/panoramas/components/ui/telop.vue?0ee0","webpack:///./app/javascript/src/panoramas/components/ui/telop.vue?7ba6","webpack:///./app/javascript/src/panoramas/components/ui/telop.vue","webpack:///./app/javascript/src/panoramas/components/ui/excuse-text.vue","webpack:///./app/javascript/src/panoramas/components/ui/excuse-text.vue?b607","webpack:///./app/javascript/src/panoramas/components/ui/excuse-text.vue?5627","webpack:///./app/javascript/src/panoramas/components/ui/excuse-text.vue?9949","webpack:///./app/javascript/src/panoramas/components/ui/scrollable.vue?41fb","webpack:///./app/javascript/src/panoramas/components/ui/scrollable.vue","webpack:///./app/javascript/src/panoramas/components/ui/scrollable.vue?044b","webpack:///./app/javascript/src/panoramas/components/ui/scrollable.vue?bf4c","webpack:///./app/javascript/src/panoramas/components/ui/point-thumbnails.vue","webpack:///./app/javascript/src/panoramas/components/ui/point-thumbnails.vue?63c1","webpack:///./app/javascript/src/panoramas/components/ui/point-thumbnails.vue?77e6","webpack:///./app/javascript/src/panoramas/components/ui/point-thumbnails.vue?85de","webpack:///./app/javascript/src/panoramas/components/ui/item-thumbnails.vue","webpack:///./app/javascript/src/panoramas/components/ui/item-thumbnails.vue?fc09","webpack:///./app/javascript/src/panoramas/components/ui/item-thumbnails.vue?6b83","webpack:///./app/javascript/src/panoramas/components/ui/item-thumbnails.vue?652c","webpack:///./app/javascript/src/panoramas/components/ui/button-icon.vue","webpack:///./app/javascript/src/panoramas/components/ui/button-icon.vue?da3d","webpack:///./app/javascript/src/panoramas/components/ui/button-icon.vue?60d5","webpack:///./app/javascript/src/panoramas/components/ui/button-icon.vue?636e","webpack:///./app/javascript/src/panoramas/components/ui/title-bar.vue?ded3","webpack:///./app/javascript/src/panoramas/components/ui/title-bar.vue","webpack:///./app/javascript/src/panoramas/components/ui/title-bar.vue?d250","webpack:///./app/javascript/src/panoramas/components/ui/title-bar.vue?a6ae","webpack:///./app/javascript/src/panoramas/components/ui/external-link.vue","webpack:///./app/javascript/src/panoramas/components/ui/external-link.vue?d337","webpack:///./app/javascript/src/panoramas/components/ui/external-link.vue?5bdc","webpack:///./app/javascript/src/panoramas/components/ui/external-link.vue?9f78","webpack:///./app/javascript/src/panoramas/components/ui/bottom-bar.vue","webpack:///./app/javascript/src/panoramas/components/ui/bottom-bar.vue?a7e6","webpack:///./app/javascript/src/panoramas/components/ui/bottom-bar.vue?678f","webpack:///./app/javascript/src/panoramas/components/ui/bottom-bar.vue?a471","webpack:///./app/javascript/src/panoramas/components/ui/slider.vue?c4be","webpack:///./app/javascript/src/panoramas/components/ui/slider.vue","webpack:///./app/javascript/src/panoramas/components/ui/slider.vue?87cb","webpack:///./app/javascript/src/panoramas/components/ui/slider.vue?d7a3","webpack:///./app/javascript/src/panoramas/components/ui/panorama-zoom.vue","webpack:///./app/javascript/src/panoramas/components/ui/panorama-zoom.vue?0a14","webpack:///./app/javascript/src/panoramas/components/ui/panorama-zoom.vue?0900","webpack:///./app/javascript/src/panoramas/components/ui/panorama-zoom.vue?f877","webpack:///./app/javascript/src/panoramas/components/ui/map-svg.vue?0d88","webpack:///./app/javascript/src/panoramas/components/ui/map-svg.vue","webpack:///./app/javascript/src/panoramas/components/ui/map-svg.vue?2464","webpack:///./app/javascript/src/panoramas/components/ui/map-svg.vue?6af3","webpack:///./app/javascript/src/panoramas/components/ui/map-small.vue?b63b","webpack:///./app/javascript/src/panoramas/components/ui/map-small.vue","webpack:///./app/javascript/src/panoramas/components/ui/map-small.vue?d619","webpack:///./app/javascript/src/panoramas/components/ui/map-large.vue","webpack:///./app/javascript/src/panoramas/components/ui/map-large.vue?9edf","webpack:///./app/javascript/src/panoramas/components/ui/map-large.vue?6011","webpack:///./app/javascript/src/panoramas/components/ui/map-large.vue?e6ca","webpack:///./app/javascript/src/panoramas/components/ui/map-view.vue","webpack:///./app/javascript/src/panoramas/components/ui/map-view.vue?15e0","webpack:///./app/javascript/src/panoramas/components/ui/map-view.vue?6b0d","webpack:///./app/javascript/src/panoramas/components/ui/map-view.vue?b69e","webpack:///./app/javascript/src/panoramas/components/ui/video-volume-slider.vue","webpack:///./app/javascript/src/panoramas/components/ui/video-volume-slider.vue?d731","webpack:///./app/javascript/src/panoramas/components/ui/video-volume-slider.vue?bd3e","webpack:///./app/javascript/src/panoramas/components/ui/video-volume-slider.vue?44f3","webpack:///./app/javascript/src/panoramas/components/ui/video-controls.vue","webpack:///./app/javascript/src/panoramas/components/ui/video-controls.vue?dcc1","webpack:///./app/javascript/src/panoramas/components/ui/video-controls.vue?49ab","webpack:///./app/javascript/src/panoramas/components/ui/video-controls.vue?8bfb","webpack:///./app/javascript/src/panoramas/components/ui/video-speed-menu.vue","webpack:///./app/javascript/src/panoramas/components/ui/video-speed-menu.vue?7ddd","webpack:///./app/javascript/src/panoramas/components/ui/video-speed-menu.vue?0c7e","webpack:///./app/javascript/src/panoramas/components/ui/video-speed-menu.vue?c62b","webpack:///./app/javascript/src/panoramas/components/ui/more-menu.vue","webpack:///./app/javascript/src/panoramas/components/ui/more-menu.vue?8eb6","webpack:///./app/javascript/src/panoramas/components/ui/more-menu.vue?3197","webpack:///./app/javascript/src/panoramas/components/ui/more-menu.vue?a6c7","webpack:///./app/javascript/src/panoramas/components/ui/info-modal.vue","webpack:///./app/javascript/src/panoramas/components/ui/info-modal.vue?94e4","webpack:///./app/javascript/src/panoramas/components/ui/info-modal.vue?6a9c","webpack:///./app/javascript/src/panoramas/components/ui/info-modal.vue?0a65","webpack:///./app/javascript/src/panoramas/components/ui/image-quality-modal.vue","webpack:///./app/javascript/src/panoramas/components/ui/image-quality-modal.vue?f6fb","webpack:///./app/javascript/src/panoramas/components/ui/image-quality-modal.vue?a9ad","webpack:///./app/javascript/src/panoramas/components/ui/image-quality-modal.vue?f080","webpack:///./app/javascript/src/panoramas/components/ui/airtag-image.vue?3dfc","webpack:///./app/javascript/src/panoramas/components/ui/airtag-image.vue","webpack:///./app/javascript/src/panoramas/components/ui/airtag-image.vue?3c41","webpack:///./app/javascript/src/panoramas/components/ui/airtag-image.vue?a388","webpack:///./app/javascript/src/panoramas/components/ui/airtag-movie.vue","webpack:///./app/javascript/src/panoramas/components/ui/airtag-movie.vue?0e05","webpack:///./app/javascript/src/panoramas/components/ui/airtag-movie.vue?a920","webpack:///./app/javascript/src/panoramas/components/ui/airtag-movie.vue?c348","webpack:///./app/javascript/src/panoramas/components/ui/airtag-information.vue","webpack:///./app/javascript/src/panoramas/components/ui/airtag-information.vue?e8af","webpack:///./app/javascript/src/panoramas/components/ui/airtag-information.vue?e27a","webpack:///./app/javascript/src/panoramas/components/ui/airtag-information.vue?0c55","webpack:///./app/javascript/src/panoramas/components/ui/overlay-message-modal.vue","webpack:///./app/javascript/src/panoramas/components/ui/overlay-message-modal.vue?434c","webpack:///./app/javascript/src/panoramas/components/ui/overlay-message-modal.vue?03b0","webpack:///./app/javascript/src/panoramas/components/ui/overlay-message-modal.vue?d60e","webpack:///./app/javascript/src/panoramas/components/ui/ui-full.vue","webpack:///./app/javascript/src/panoramas/components/ui/ui-full.vue?8081","webpack:///./app/javascript/src/panoramas/components/ui/ui-full.vue?f526","webpack:///./app/javascript/src/panoramas/components/ui/ui-full.vue?224a","webpack:///./app/javascript/src/panoramas/components/ui/ui-minimal.vue","webpack:///./app/javascript/src/panoramas/components/ui/ui-minimal.vue?6304","webpack:///./app/javascript/src/panoramas/components/ui/ui-minimal.vue?66cb","webpack:///./app/javascript/src/panoramas/components/ui/ui-minimal.vue?cb5c","webpack:///./app/javascript/src/panoramas/components/ui/ui-vr.vue?4474","webpack:///./app/javascript/src/panoramas/components/ui/ui-vr.vue","webpack:///./app/javascript/src/panoramas/components/ui/ui-vr.vue?430e","webpack:///./app/javascript/src/panoramas/components/ui/ui-vr.vue?9e92","webpack:///./app/javascript/src/panoramas/components/passcode.vue?a527","webpack:///./app/javascript/src/panoramas/components/passcode.vue","webpack:///./app/javascript/src/panoramas/components/passcode.vue?d561","webpack:///./app/javascript/src/panoramas/components/panorama.vue?e63c","webpack:///./app/javascript/src/panoramas/components/panorama.vue","webpack:///./app/javascript/src/panoramas/components/panorama.vue?91aa","webpack:///./app/javascript/src/panoramas/components/panorama.vue?74ed","webpack:///./app/javascript/src/panoramas/components/panorama.vue?b442","webpack:///./app/javascript/packs/panoramas/embed.scss?bdb9","webpack:///./app/javascript/packs/panoramas/embed.js","webpack:///./app/javascript/src/panoramas/store/settings.ts","webpack:///./app/javascript/src/places/maps/walkthroughs/helpers.js","webpack:///./node_modules/bcryptjs/dist/bcrypt.js","webpack:///./app/javascript/src/panoramas/utils/constants.ts","webpack:///./app/javascript/src/panoramas/components/error-message.vue?cc66","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-image.vue?852d","webpack:///./app/javascript/src/panoramas/components/item/item-celestial-sphere-video.vue?8ec8","webpack:///./app/javascript/src/panoramas/components/item/item-empty.vue?663d","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-image.vue?6053","webpack:///./app/javascript/src/panoramas/components/item/item-fisheye-video.vue?803f","webpack:///./app/javascript/src/panoramas/components/item/item-image.vue?65b0","webpack:///./app/javascript/src/panoramas/components/item/item-swing-image.vue?bbbf","webpack:///./app/javascript/src/panoramas/components/item/item-video.vue?cdad","webpack:///./app/javascript/src/panoramas/components/item/item-view.vue?d734","webpack:///./app/javascript/src/panoramas/components/item/video-overlay.vue?70d4","webpack:///./app/javascript/src/panoramas/components/loading.vue?a1fd","webpack:///./app/javascript/src/panoramas/components/panorama.vue?6d83","webpack:///./app/javascript/src/panoramas/components/panorama.vue?b9a7","webpack:///./app/javascript/src/panoramas/components/ui/airtag-image.vue?51f0","webpack:///./app/javascript/src/panoramas/components/ui/airtag-information.vue?c757","webpack:///./app/javascript/src/panoramas/components/ui/airtag-movie.vue?a9e5","webpack:///./app/javascript/src/panoramas/components/ui/bottom-bar.vue?1a88","webpack:///./app/javascript/src/panoramas/components/ui/button-icon.vue?0eb9","webpack:///./app/javascript/src/panoramas/components/ui/excuse-text.vue?eee9","webpack:///./app/javascript/src/panoramas/components/ui/external-link.vue?5693","webpack:///./app/javascript/src/panoramas/components/ui/image-quality-modal.vue?a482","webpack:///./app/javascript/src/panoramas/components/ui/info-modal.vue?7cd2","webpack:///./app/javascript/src/panoramas/components/ui/item-thumbnails.vue?ade5","webpack:///./app/javascript/src/panoramas/components/ui/map-svg.vue?e81f","webpack:///./app/javascript/src/panoramas/components/ui/map-view.vue?e23a","webpack:///./app/javascript/src/panoramas/components/ui/overlay-message-modal.vue?4ee3","webpack:///./app/javascript/src/panoramas/components/ui/panorama-zoom.vue?79b2","webpack:///./app/javascript/src/panoramas/components/ui/point-thumbnails.vue?4245","webpack:///./app/javascript/src/panoramas/components/ui/scrollable.vue?2e4f","webpack:///./app/javascript/src/panoramas/components/ui/slider.vue?ad6d","webpack:///./app/javascript/src/panoramas/components/ui/telop.vue?e5ed","webpack:///./app/javascript/src/panoramas/components/ui/title-bar.vue?f864","webpack:///./app/javascript/src/panoramas/components/ui/ui-full.vue?f6e5","webpack:///./app/javascript/src/panoramas/components/ui/video-controls.vue?cfe0","webpack:///./app/javascript/src/panoramas/components/ui/video-speed-menu.vue?5f69","webpack:///./app/javascript/src/panoramas/components/ui/video-volume-slider.vue?cc7c","webpack:///./app/javascript/packs/panoramas/embed.scss","webpack:///./app/javascript/src/panoramas/components/VueFakeInput.vue?325f","webpack:///./app/javascript/src/panoramas/components/ui/map-large.vue?9488","webpack:///./app/javascript/src/panoramas/components/ui/more-menu.vue?c648","webpack:///./app/javascript/src/panoramas/components/ui/ui-minimal.vue?27cf","webpack:///./app/javascript/src/panoramas/components/ui/ui-vr.vue?bb31","webpack:///./app/javascript/src/panoramas/components/VueFakeInput.vue","webpack:///./app/javascript/src/panoramas/components/VueFakeInput.vue?6615","webpack:///./app/javascript/src/panoramas/components/VueFakeInput.vue?61d1","webpack:///./app/javascript/src/panoramas/components/VueFakeInput.vue?e276"],"sourcesContent":["import defaultTheme from './default'\nimport theme1 from './theme1'\n\nexport default {\n defaultName: 'default',\n\n default: defaultTheme,\n theme1,\n}\n","export default {\n color1: \"#2AB7D9\",\n color2: \"#EEEEEE\",\n vrModeColor: \"#FFFFFF\",\n iconColor: \"#2AB7D9\",\n iconBackground: {\n defaultColor: null,\n activeColor: \"rgba(128, 128, 128, 0.2)\"\n },\n thumbnailBorder: {\n defaultColor: \"#CCC\",\n activeColor: \"#2AB7D9\"\n },\n icons: {\n back: require('@/images/icons/nurve/back.svg'),\n more: require('@/images/icons/nurve/more.svg'),\n info: require('@/images/icons/nurve/information.svg'),\n pointThumbnails: require('@/images/icons/nurve/point-thumbnails.svg'),\n itemThumbnails: require('@/images/icons/nurve/item-thumbnails.svg'),\n fullscreenOn: require('@/images/icons/nurve/fullscreen-on.svg'),\n fullscreenOff: require('@/images/icons/nurve/fullscreen-off.svg'),\n autoRotation: require('@/images/icons/nurve/auto-rotation.svg'),\n gyroRotation: require('@/images/icons/nurve/gyro-rotation.svg'),\n videoControls: require('@/images/icons/nurve/video-controls.svg'),\n vrEffect: require('@/images/icons/nurve/vr-effect.svg'),\n vrExit: require('@/images/icons/nurve/vr-exit.svg'),\n videoPlay: require('@/images/icons/nurve/video-play.svg'),\n videoPause: require('@/images/icons/nurve/video-pause.svg'),\n videoBwd5: require('@/images/icons/nurve/video-bwd-5.svg'),\n videoFwd5: require('@/images/icons/nurve/video-fwd-5.svg'),\n close: require('@/images/icons/nurve/close.svg'),\n minimize: require('@/images/icons/white/minimize.png'),\n controls: require('@/images/icons/white/controls.png'),\n controlsShow: require('@/images/icons/nurve/controls_show.svg'),\n controlsHide: require('@/images/icons/nurve/controls_hide.svg'),\n overlayVideoPlay: require('@/images/icons/nurve/video-play.svg'),\n volumeUp: require('@/images/icons/nurve/volume-up.svg'),\n volumeOff: require('@/images/icons/nurve/volume-off.svg'),\n }\n}\n","export default {\n color1: \"#2AD9B7\",\n color2: \"#EEEEEE\",\n vrModeColor: \"#FFFFFF\",\n iconColor: \"#2AD9B7\",\n iconBackground: {\n defaultColor: null,\n activeColor: \"rgba(128, 128, 128, 0.2)\"\n },\n thumbnailBorder: {\n defaultColor: \"#00ff00\",\n activeColor: \"#2AD9B7\"\n },\n icons: {\n back: require('@/images/icons/nurve/back.svg'),\n more: require('@/images/icons/nurve/more.svg'),\n info: require('@/images/icons/nurve/information.svg'),\n pointThumbnails: require('@/images/icons/nurve/point-thumbnails.svg'),\n itemThumbnails: require('@/images/icons/nurve/item-thumbnails.svg'),\n fullscreenOn: require('@/images/icons/nurve/fullscreen-on.svg'),\n fullscreenOff: require('@/images/icons/nurve/fullscreen-off.svg'),\n autoRotation: require('@/images/icons/nurve/auto-rotation.svg'),\n gyroRotation: require('@/images/icons/nurve/gyro-rotation.svg'),\n videoControls: require('@/images/icons/nurve/video-controls.svg'),\n vrEffect: require('@/images/icons/nurve/vr-effect.svg'),\n vrExit: require('@/images/icons/nurve/vr-exit.svg'),\n videoPlay: require('@/images/icons/nurve/video-play.svg'),\n videoPause: require('@/images/icons/nurve/video-pause.svg'),\n videoBwd5: require('@/images/icons/nurve/video-bwd-5.svg'),\n videoFwd5: require('@/images/icons/nurve/video-fwd-5.svg'),\n close: require('@/images/icons/nurve/close.svg'),\n minimize: require('@/images/icons/white/minimize.png'),\n controls: require('@/images/icons/white/controls.png'),\n controlsShow: require('@/images/icons/nurve/controls_show.svg'),\n controlsHide: require('@/images/icons/nurve/controls_hide.svg'),\n overlayVideoPlay: require('@/images/icons/nurve/video-play.svg')\n }\n}\n","import themes from './themes'\nimport bowser from 'bowser'\nimport Url from 'url-parse'\nimport { FOV_DEFAULT, FOV_MAX, FOV_MIN } from '../utils/constants'\n\n// クロスオリジンのVideoTextureサポート\nfunction isSupportCrossOriginVideoTexture() {\n // IEは未サポート\n if (bowser.msie) {\n return false\n }\n\n // mac safari 10以下は未サポート\n if (bowser.mac && bowser.safari && bowser.version) {\n return bowser.compareVersions([bowser.version, '11']) >= 0\n }\n\n // iOS 10以下は未サポート\n if (bowser.ios && bowser.osversion) {\n return bowser.compareVersions([bowser.osversion, '11']) >= 0\n }\n\n return true\n}\n\nexport default {\n // 設定\n settings: {},\n\n isMobile: bowser.ios || bowser.android,\n isSupportCrossOriginVideoTexture: isSupportCrossOriginVideoTexture(),\n\n // テーマ\n themes,\n currentTheme: new Url(window.location.href, true).query.theme || themes.defaultName,\n\n errorMessage: null,\n\n placeData: {},\n placeId: null,\n mapId: null,\n pointId: null,\n itemId: null,\n size: {\n width: 0,\n height: 0\n },\n fov: {\n max: FOV_MAX,\n min: FOV_MIN,\n value: FOV_DEFAULT,\n },\n cameraRotation: {\n x: 0,\n y: 0\n },\n imageQuality: 'middle',\n vrMode: false,\n deviceOrientationDetected: false,\n deviceMotionDenied: false,\n telopEnabled: true,\n autoRotation: true,\n autoRotationDirection: 1,\n ignoreAutoRotation: false,\n gyroRotation: false,\n eyeControlEnable: false,\n radarEnabled: false,\n videoPlaying: false,\n videoDuration: 0,\n videoStartTime: 0,\n videoCurrentTime: 0,\n videoSpeed: 1,\n videoRepeat: false,\n videoMuted: false,\n videoVolume: {\n max: 1,\n min: 0,\n value: 1\n },\n itemContextHistory: [],\n panoramaZoomEnabled: false,\n pointThumbnailsActive: false,\n itemThumbnailsActive: false,\n videoControlsActive: false,\n videoSpeedMenuActive: false,\n videoAutoPlay: false,\n moreMenuActive: false,\n infoModalActive: false,\n imageQualityModalActive: false,\n airtagInformationActive: false,\n airtagInformation: {\n image_url: null,\n text: null,\n youtube_url: null\n },\n eyeTrackingState: {\n none: 'none',\n looking: 'looking',\n selected: 'selected'\n },\n lookAtItemObject: {\n itemObject: null,\n counter: 0,\n eyeTrackingState: 'none'\n },\n itemTransition: {\n name: null,\n cameraRotation: null,\n fov: null\n },\n loading: false,\n fullscreen: false,\n fullscreenExecuted: false,\n locationHashParams: {},\n}\n","import * as THREE from 'three'\nimport BowserAccessor from '~/use_case_supports/states/bowser_accessor'\n\nexport const getAttributeValue = (place, attributeName) => {\n return place?.attributes?.find(attr => attr.name == attributeName)?.value\n}\n\nexport const itemImage = (item, quality) => {\n if (!item) {\n return null\n }\n\n // iPadはHLSでの再生ができない場合があるようなのでHLSのurlは返さないようにする(暫定対応)\n if ('image_file_path_hls' in item && !BowserAccessor.checkIpad()) {\n return item['image_file_path_hls']\n }\n\n if (quality === 'original') {\n return item['image_file_path']\n } else {\n return item[`image_file_path_${quality}`]\n }\n}\n\nexport const isVideoType = item => {\n const videoTypes = ['video', 'celestial_sphere_video', 'fisheye_250_video']\n return item && videoTypes.includes(item.type)\n}\n\nexport const isImageType = item => {\n const imageTypes = ['image', 'celestial_sphere_image', 'fisheye_250_image']\n return item && imageTypes.includes(item.type)\n}\n\nexport const clampRotation = (value, min, max) => {\n value = THREE.MathUtils.euclideanModulo(value, 360)\n min = THREE.MathUtils.euclideanModulo(min, 360)\n max = THREE.MathUtils.euclideanModulo(max, 360)\n if (min === max) {\n return value\n }\n if (min > max) {\n max += 360\n }\n if (min > value) {\n value += 360\n }\n if (min <= value && value <= max) {\n return THREE.MathUtils.euclideanModulo(value, 360)\n }\n const minDiff = diffRotation(min, value)\n const maxDiff = diffRotation(max, value)\n return THREE.MathUtils.euclideanModulo(minDiff < maxDiff ? min : max, 360)\n}\n\nconst diffRotation = (a, b) => {\n const d = THREE.MathUtils.euclideanModulo(Math.abs(a - b), 360)\n return d < 180 ? d : 360 - d\n}\n\nexport const optimizeRotation = (fromRotation, toRotation) => {\n if (Math.abs(toRotation - fromRotation) > 180) {\n if (toRotation > fromRotation) {\n return toRotation - 360\n } else {\n return toRotation + 360\n }\n }\n return toRotation\n}\n\n// 垂直視野角 -> 水平視野角\nexport const toHorizontalFov = (fovV, aspect) => {\n return THREE.MathUtils.radToDeg(2 * Math.atan(Math.tan(THREE.MathUtils.degToRad(fovV) / 2) * aspect))\n}\n\n// 水平視野角 -> 垂直視野角\nexport const toVerticalFov = (fovH, aspect) => {\n return THREE.MathUtils.radToDeg(2 * Math.atan(Math.tan(THREE.MathUtils.degToRad(fovH) / 2) / aspect))\n}\n","import * as THREE from 'three'\nimport clone from 'clone'\n\nimport {\n itemImage,\n getAttributeValue,\n isImageType,\n isVideoType,\n toHorizontalFov\n} from './helpers'\nimport themes from \"./themes\";\nimport { ItemComponentInfo } from '~/panoramas/utils/types'\nimport { FOV_DEFAULT } from '~/panoramas/utils/constants'\n\ntype ThumbnailList = 'Points' | 'Items' | null\n\nexport default {\n initialItemContext (state, getters) {\n const firstPiont = getters.getPointById(state.settings.firstPointId)\n\n const map = state.placeData.maps[0]\n const point = firstPiont || map.points[0]\n const item = point.items[point.items.length - 1]\n return {\n mapId: map.id,\n pointId: point.id,\n itemId: item.id\n }\n },\n\n allMaps (state) {\n return (state.placeData?.maps ?? []).filter(\n m => m.points.length > 0 // 撮影点の存在しない間取りはボタンの生成をスキップする\n )\n },\n\n allPoints (state, getters) {\n const points = []\n getters.allMaps.forEach(map => points.push(...map.points))\n return points\n },\n\n allItems (state, getters) {\n const items = []\n getters.allPoints.forEach(point => items.push(...point.items))\n return items\n },\n\n getMapById: (state, getters) => mapId => {\n return getters.allMaps.find(map => map.id === mapId)\n },\n\n getPointById: (state, getters) => pointId => {\n return getters.allPoints.find(point => point.id === pointId)\n },\n\n getItemById: (state, getters) => itemId => {\n return getters.allItems.find(item => item.id === itemId)\n },\n\n currentMap (state, getters) {\n return getters.getMapById(state.mapId)\n },\n\n currentPoint (state, getters) {\n return getters.getPointById(state.pointId)\n },\n\n currentItem (state, getters) {\n return getters.getItemById(state.itemId)\n },\n\n pointsOfCurrentMap (state, getters) {\n return getters.currentMap ? getters.currentMap.points : []\n },\n\n itemsOfCurrentPoint (state, getters) {\n if (getters.currentPoint) {\n return getters.currentPoint.items.filter(item => item.primary)\n }\n return []\n },\n\n panoramaName (state, getters) {\n return state.placeData?.panorama_name ?? ''\n },\n\n pointName (state, getters) {\n return getters.currentPoint?.name?.trim() ?? ''\n },\n\n currentItemContext (state) {\n return {\n mapId: state.mapId,\n pointId: state.pointId,\n itemId: state.itemId,\n videoStartTime: state.videoCurrentTime,\n cameraRotation: { ...state.cameraRotation },\n fov: state.fov.value\n }\n },\n\n lastItemContext (state) {\n if (state.itemContextHistory.length > 0) {\n return state.itemContextHistory[state.itemContextHistory.length - 1]\n }\n return null\n },\n\n itemComponentInfo (state, getters): ItemComponentInfo {\n return {\n id: state.itemId,\n key: `${state.itemId}-${state.imageQuality}`,\n type: getters.currentItem?.type,\n img: itemImage(getters.currentItem, state.imageQuality),\n pointRotation: getters.pointDirection,\n movablePoints: getters.movablePoints,\n airtags: getters.airtags,\n tripodCoverUrl: state.placeData?.tripod_cover,\n tripodCoverScale: getters.currentPoint?.tripod_cover_scale,\n masking: getters.currentItem?.meta_data?.common?.masking,\n cameraSpeed: getters.cameraSpeed,\n cameraPan: getters.cameraPan,\n nextPointId: getters.currentItem?.meta_data?.common?.next_point_id,\n fisheye250FocalLength: getters.currentItem?.meta_data?.fisheye_250_image?.focal_length,\n videoAutoPlay: state.videoAutoPlay\n }\n },\n\n verticalFov (state) {\n return state.fov.value\n },\n\n horizontalFov (state, getters) {\n const aspect = state.size.width / state.size.height\n return toHorizontalFov(getters.verticalFov, aspect)\n },\n\n cameraRotationRange (state, getters) {\n const viewableArea = getters.currentItem?.meta_data?.common?.viewable_area\n if (viewableArea) {\n const rotation = getters.pointDirection - getters.mapDirection\n const xMin = viewableArea.x_angle_min + getters.verticalFov / 2\n const xMax = viewableArea.x_angle_max - getters.verticalFov / 2\n const yMin = viewableArea.y_angle_min + rotation + getters.horizontalFov / 2\n const yMax = viewableArea.y_angle_max + rotation - getters.horizontalFov / 2\n return { xMin, xMax, yMin, yMax, rotation }\n }\n },\n\n cameraSpeed (state, getters) {\n return getters.currentItem?.meta_data?.common?.camera?.speed ?? 2\n },\n\n cameraPan (state, getters) {\n return getters.currentItem?.meta_data?.common?.camera?.pan ?? 'right'\n },\n\n movablePoints (state, getters) {\n if(!state.settings.drawWalkThrough){\n return []\n }\n\n const pointIds = getters.currentItem?.allow_items?.map(allow_item => allow_item.point_id) ?? []\n return pointIds.map(pointId => getters.getPointById(pointId))\n },\n\n airtags (state, getters) {\n // vuexの警告発生を避けるため clone する。\n const airtags = clone(getters.currentItem?.meta_data?.common?.tags ?? [])\n airtags.forEach((airtag, i) => airtag.index = i)\n return airtags\n },\n\n backButtonVisible (state, getters) {\n return getters.lastItemContext !== null\n },\n\n title (state, getters) {\n return [getters.pointName, getters.panoramaName].filter(Boolean).join(' | ')\n },\n\n mapViewVisible (state, getters) {\n return Boolean(getters.mapImageUrl)\n },\n\n mapImageUrl (state, getters) {\n return getters.currentMap?.image_file_path\n },\n\n mapPoints (state, getters) {\n return getters.pointsOfCurrentMap.map(point => {\n return {\n mapId: state.mapId,\n pointId: point.id,\n itemId: point.items[0].id,\n type: point.items[0].type,\n x: point.x,\n y: point.y,\n visible: point.x !== -1 && point.y !== -1,\n active: point.id === state.pointId\n }\n })\n },\n\n mapLines (state, getters) {\n const lines = {}\n getters.pointsOfCurrentMap.forEach(point => {\n const allowItems = point.items[0].allow_items\n allowItems.forEach(allowItem => {\n const line = [point.id, allowItem.point_id].sort()\n lines[line.join('-')] = line\n })\n })\n return Object.values(lines)\n },\n\n isRadarVisible (state, getters) {\n if (!state.settings.drawRadar) {\n return false\n }\n if (!state.radarEnabled) {\n return false\n }\n if (getters.currentMap.direction == null || getters.pointDirection == null) {\n return false\n }\n return true\n },\n\n pointThumbnails (state, getters) {\n // パノラマ下部の「撮影場所の移動」サムネイル一覧では、全ての間取りに紐付いた撮影点を表示する\n return getters.allPoints.map(point => {\n const item = point.items[0]\n return {\n mapId: state.mapId,\n pointId: point.id,\n itemId: item.id,\n imageUrl: item.image_file_path_thumb,\n caption: point.name,\n active: point.id === state.pointId\n }\n })\n },\n\n itemThumbnails (state, getters) {\n return getters.itemsOfCurrentPoint.map(item => {\n return {\n mapId: state.mapId,\n pointId: state.pointId,\n itemId: item.id,\n imageUrl: item.image_file_path_thumb,\n caption: item.scene_name,\n active: item.id === state.itemId\n }\n })\n },\n\n displayingThumbnailList (state, getters): ThumbnailList {\n // 表示上はアイテムサムネイルが優先される。撮影点リストはそのあと。\n /*\n \"シーン切り替えデフォルトオープン設定\"はオン?\n ├─Yes:最初に表示される撮影点に複数シーンある?\n │ ├─Yes:シーン切り替えメニューを開く\n │ └─No:\"撮影点切り替えデフォルトオープン設定\"はオン?\n │ ├─Yes:撮影点切り替えメニューを開く\n │ └─No:何も開かない\n └─No:\"撮影点切り替えデフォルトオープン設定\"はオン?\n ├─Yes:撮影点切り替えメニューを開く\n └─No:何も開かない\n */\n if (state.itemThumbnailsActive && getters.itemThumbnailsVisible) { return 'Items' }\n if (state.pointThumbnailsActive) { return 'Points' }\n\n return null\n },\n\n itemThumbnailsVisible (state, getters) {\n return getters.itemThumbnails.length > 1\n },\n\n autoRotationVisible (state, getters) {\n const autoRotateTypes = [\n 'celestial_sphere_image',\n 'fisheye_250_image',\n 'fisheye_180_image',\n 'chipping_fisheye_image',\n 'swing_image'\n ]\n return autoRotateTypes.includes(getters.currentItem?.type)\n },\n\n autoRotationOn (state, getters) {\n return getters.autoRotationVisible && state.autoRotation && !state.vrMode\n },\n\n gyroRotationOn (state, getters) {\n return state.gyroRotation\n },\n\n videoControlVisible (state, getters) {\n return isVideoType(getters.currentItem)\n },\n\n parentPlaceTelopText (state) {\n return getAttributeValue(state.placeData.parent, 'telop')\n },\n\n itemTelopText (state, getters) {\n return getters.currentItem?.meta_data?.common?.telop?.text\n },\n\n itemTelopSpeed (state, getters) {\n // scroll (0: 停止, 1: 遅い, 2: 普通, 3: 早い)\n let scroll = getters.currentItem?.meta_data?.common?.telop?.scroll\n if (scroll === null || scroll === undefined) {\n scroll = 2\n }\n return scroll * 50\n },\n\n itemBrightness (state, getters) {\n const brightness = parseFloat(getters.currentItem?.meta_data?.common?.brightness ?? 0)\n return 1 + brightness\n },\n\n externalLink (state) {\n let name = getAttributeValue(state.placeData, 'link_name')\n let url = getAttributeValue(state.placeData, 'link_url')\n\n if (!name || !url) {\n name = getAttributeValue(state.placeData.parent, 'link_name')\n url = getAttributeValue(state.placeData.parent, 'link_url')\n }\n\n if (name && url) {\n return { name, url }\n }\n },\n\n excuseText (state, getters) {\n if (state.settings.hideAnnotation) {\n return '';\n }\n switch (getters.processingType) {\n case 'item_removal_home_staging':\n return '※リフォームイメージにCGの家具、調度品等を配置したイメージです。';\n case 'home_staging':\n return '※現況の物件画像にCGにより家具が設置してあります。<br>実際には家具は設置されておりません。';\n case 'item_removal':\n return '※CGによるリフォームイメージです。リフォームには別途費用が発生いたします。 <br>実際のお部屋は家具等が配置されており、キズや汚れ等がある場合がございます。';\n case 'renovation':\n return '※CGによるリノベーションイメージです。実際のお部屋は家具等が配置されており、キズや汚れ等がある場合がございます。'\n default:\n if (getters.isVideoFallback) {\n return 'このブラウザでは360°動画の再生はサポートされていません。'\n }\n return '';\n }\n },\n\n processingType(state, getters) {\n if (!state.itemId) {\n return '';\n }\n const tags = getters.currentItem?.meta_data?.common?.processing_tags ?? []\n const homeStagingTagged = tags.includes('home_staging');\n const itemRemovalTagged = tags.includes('item_removal');\n const renovationTagged = tags.includes('renovation');\n if (homeStagingTagged && itemRemovalTagged) {\n return 'item_removal_home_staging';\n }\n if (homeStagingTagged) {\n return 'home_staging';\n }\n if (itemRemovalTagged) {\n return 'item_removal';\n }\n if (renovationTagged) {\n return 'renovation';\n }\n return '';\n },\n\n isVideoFallback (state, getters) {\n if (!state.isSupportCrossOriginVideoTexture) {\n const video360types = ['celestial_sphere_video', 'fisheye_250_video']\n return video360types.includes(getters.currentItem.type)\n }\n return false\n },\n\n keepMovementDirection: (state, getters) => pointId => {\n const point = getters.getPointById(pointId)\n return point?.meta_data?.common?.camera?.keep_movement_direction\n },\n\n initialCameraRotation: (state, getters) => (pointId, itemId) => {\n const point = getters.getPointById(pointId)\n const xAngle = point?.meta_data?.common?.camera?.x_angle ?? 0\n const yAngle = point?.meta_data?.common?.camera?.y_angle ?? 0\n const pointDirection = point?.direction ?? 0\n\n const item = getters.getItemById(itemId)\n const rotation = isImageType(item) ? (360 - pointDirection) : 0\n\n const x = THREE.MathUtils.clamp(-xAngle, -90, 90)\n const y = THREE.MathUtils.euclideanModulo(yAngle - rotation, 360)\n return { x, y }\n },\n\n initialCameraFov: (state, getters) => itemId => {\n const item = getters.getItemById(itemId)\n return item?.meta_data?.common?.camera?.fov ?? FOV_DEFAULT\n },\n\n mapDirection (state, getters) {\n return getters.currentMap?.direction ?? 0\n },\n\n pointDirection (state, getters) {\n return getters.currentPoint?.direction ?? 0\n },\n\n canForward: (state, getters) => (pointId) => {\n const allowItems = getters.currentPoint?.items[0]?.allow_items ?? []\n return allowItems.findIndex(allowItem => allowItem.point_id == pointId) !== -1\n },\n\n vectorToPoint: (state, getters) => (pointId) => {\n const mapAspect = getters.currentMap.aspect_ratio\n const p1 = getters.currentPoint\n const p2 = getters.getPointById(pointId)\n const v1 = new THREE.Vector2(p1.x * mapAspect, p1.y)\n const v2 = new THREE.Vector2(p2.x * mapAspect, p2.y)\n return v2.sub(v1)\n },\n\n directionToPoint: (state, getters) => (pointId) => {\n const v = getters.vectorToPoint(pointId)\n const angle = THREE.MathUtils.radToDeg(v.angle())\n return THREE.MathUtils.euclideanModulo(angle + 90, 360)\n },\n\n panoramaZoomBottom (state) {\n const offset = 44 + 8 // bottom-bar + margin\n const thumbnailsHeight = state.pointThumbnailsActive || state.itemThumbnailsActive ? 96 : 0\n return offset + thumbnailsHeight\n },\n\n panoramaZoomActive (state, getters) {\n return state.panoramaZoomEnabled && state.size.height >= getters.panoramaZoomBottom + 200\n },\n\n panoramaGyroRotationAvailable (state) {\n if (state.settings.gyroRotationEnable) {\n return state.deviceOrientationDetected || state.isMobile\n }\n return false\n },\n\n vrModeAvailable (state) {\n if (state.settings.vreffectEnable) {\n return state.deviceOrientationDetected || state.isMobile\n }\n return false\n },\n\n // テーマ\n theme (state) {\n if (state.themes[state.currentTheme]) {\n return state.themes[state.currentTheme]\n }\n\n return state.themes[state.themes.defaultName]\n },\n\n panoramaThumbUrl (state) {\n return state.placeData?.panorama_thumb_url\n },\n}\n","import * as THREE from 'three'\n\nexport default {\n setSettings (state, settings) {\n state.settings = settings\n\n state.imageQuality = settings.imageQuality\n state.autoRotation = settings.autoRotation\n state.videoRepeat = settings.videoRepeat\n state.pointThumbnailsActive = settings.menuOpen\n state.itemThumbnailsActive = settings.itemThumbsOpen\n state.eyeControlEnable = settings.eyeControlEnable\n },\n setErrorMessage (state, errorMessage) {\n state.errorMessage = errorMessage\n },\n setPlaceData (state, placeData) {\n // PlaceChild#mapsにPlaceParent#mapsをくっつける\n placeData.maps = (placeData?.maps ?? []).concat(placeData?.parent.maps ?? [])\n\n placeData.maps = placeData.maps.map(map => {\n map.points = map.points.map(point => {\n const firstItem = point.items[0]\n const pointDirection = firstItem.direction ?? 0\n\n point.direction = pointDirection\n point.items = point.items.map(item => {\n item.direction = pointDirection - (item.direction ?? 0)\n return item\n })\n return point\n })\n return map\n })\n\n state.placeData = placeData\n state.placeId = placeData?.id\n },\n setItemContext (state, { mapId, pointId, itemId, imageQuality, videoStartTime, transition, cameraRotation, fov, videoForceAutoPlay = false } = {}) {\n if (mapId) {\n state.mapId = mapId\n }\n if (pointId) {\n state.pointId = pointId\n }\n if (itemId) {\n state.itemId = itemId\n }\n if (imageQuality) {\n state.imageQuality = imageQuality\n }\n state.autoRotationDirection = 1\n state.videoCurrentTime = 0\n state.videoStartTime = videoStartTime || 0\n state.videoAutoPlay = state.settings.videoPlaybackAutomatically || videoForceAutoPlay\n state.itemTransition.name = transition\n state.itemTransition.cameraRotation = cameraRotation\n state.itemTransition.fov = fov\n },\n appendItemContextHistory (state, itemContextHistory) {\n state.itemContextHistory.push(itemContextHistory)\n },\n removeLastItemContext (state) {\n state.itemContextHistory.pop()\n },\n setSize (state, { width, height }) {\n state.size.width = width\n state.size.height = height\n },\n setFov (state, value) {\n state.fov.value = Math.max(state.fov.min, Math.min(state.fov.max, value))\n },\n setCameraRotation (state, { x, y }) {\n x = THREE.MathUtils.euclideanModulo(x + 180, 360) - 180\n state.cameraRotation.x = THREE.MathUtils.clamp(x, -90, 90)\n state.cameraRotation.y = THREE.MathUtils.euclideanModulo(y, 360)\n },\n setPanoramaZoomEnabled (state, enabled) {\n state.panoramaZoomEnabled = enabled\n },\n togglePointThumbnails (state) {\n state.itemThumbnailsActive = false\n state.pointThumbnailsActive = !state.pointThumbnailsActive\n },\n toggleItemThumbnails (state) {\n state.pointThumbnailsActive = false\n state.itemThumbnailsActive = !state.itemThumbnailsActive\n },\n hideItemThumbnails (state) {\n // 撮影点一覧画面からPointの切り替えを行ったときに、アイテムリスト表示がピョコッと出ることを防ぐ\n state.itemThumbnailsActive = false\n },\n toggleVideoControls (state) {\n state.videoControlsActive = !state.videoControlsActive\n state.videoSpeedMenuActive = false\n },\n toggleVideoSpeedMenu (state) {\n state.videoSpeedMenuActive = !state.videoSpeedMenuActive\n },\n setVideoMuted (state, muted) {\n state.videoMuted = muted\n },\n setVideoVolume (state, value) {\n state.videoVolume.value = value\n },\n toggleMoreMenu (state) {\n state.moreMenuActive = !state.moreMenuActive\n },\n toggleInfoModal (state) {\n state.infoModalActive = !state.infoModalActive\n },\n toggleImageQualityModal (state) {\n state.imageQualityModalActive = !state.imageQualityModalActive\n if (state.imageQualityModalActive) {\n state.moreMenuActive = false\n }\n },\n toggleAirtagInformation (state) {\n state.airtagInformationActive = !state.airtagInformationActive\n },\n setVideoDuration (state, duration) {\n state.videoDuration = duration\n },\n setVideoCurrentTime (state, currentTime) {\n state.videoCurrentTime = currentTime\n },\n setVideoPlaying (state, playing) {\n state.videoPlaying = playing\n },\n setVideoSpeed (state, speed) {\n state.videoSpeed = speed\n },\n setTelopEnabled (state, enabled) {\n state.telopEnabled = enabled\n },\n setAutoRotation (state, autoRotation) {\n state.autoRotation = autoRotation\n },\n invertAutoRotationDirection (state) {\n state.autoRotationDirection = - state.autoRotationDirection\n },\n setIgnoreAutoRotation (state, ignoreAutoRotation) {\n state.ignoreAutoRotation = ignoreAutoRotation\n },\n setGyroRotation (state, gyroRotation) {\n state.gyroRotation = gyroRotation\n },\n setRadarEnabled (state, enabled) {\n state.radarEnabled = enabled\n },\n setAirtagInformation (state, { image_url, text, youtube_url }) {\n state.airtagInformation.image_url = image_url\n state.airtagInformation.text = text\n state.airtagInformation.youtube_url = youtube_url\n },\n setLookingAtItemObject (state, { itemObject }) {\n ++state.lookAtItemObject.counter\n state.lookAtItemObject.itemObject = itemObject\n state.lookAtItemObject.eyeTrackingState = state.eyeTrackingState.looking\n },\n setStopLookingAtItemObject (state) {\n state.lookAtItemObject.counter = 0\n state.lookAtItemObject.itemObject = null\n state.lookAtItemObject.eyeTrackingState = state.eyeTrackingState.none\n },\n setSelectedItemObject (state) {\n state.lookAtItemObject.eyeTrackingState = state.eyeTrackingState.selected\n },\n setLoading (state, loading) {\n state.loading = loading\n },\n setVrMode (state, vrMode) {\n state.vrMode = vrMode\n window.logger.sendEvent('vrMode', vrMode, state.placeId, state.mapId, state.pointId, state.itemId)\n },\n setImageQuality (state, imageQuality) {\n state.settings.imageQuality = imageQuality\n },\n setDeviceOrientationDetected (state) {\n state.deviceOrientationDetected = true\n },\n setDeviceMotionDenied (state) {\n state.deviceMotionDenied = true\n },\n setFullscreen (state, fullscreen) {\n state.fullscreen = fullscreen\n },\n setFullscreenExecuted(state, fullscreenExecuted) {\n state.fullscreenExecuted = fullscreenExecuted\n },\n setLocationHashParams (state, locationHashParams) {\n state.locationHashParams = locationHashParams\n },\n}\n","import { AirTagData } from '~/vr_controls/viewer_type'\nimport * as Rx from 'rxjs'\n\nexport type PointChangedEvent = {\n placeId: number\n pointId: number\n itemId: number\n state: 'PLAYING' | 'PAUSED'\n seekPositionMillisec: number\n pointIndex: number\n}\n\nexport type ItemChangedEvent = {\n isSceneOnly: boolean\n placeId: number\n pointId: number\n itemId: number\n}\n\nexport type ItemShownEvent = {\n placeId: number\n pointId: number\n itemId: number\n}\n\nexport type VideoStateUpdateEvent = {\n state: string\n seekPositionMillisec: number\n speed: number\n}\n\nexport default class EventSubjects {\n _changePointSubject: Rx.Subject<PointChangedEvent>\n _itemShownSubject: Rx.Subject<ItemShownEvent>\n _screenClickSubject: Rx.Subject<any>\n _fovChangedByUserSubject: Rx.Subject<number>\n _airTagClickSubject: Rx.Subject<AirTagData>\n\n constructor() {\n this._changePointSubject = new Rx.Subject()\n this._itemShownSubject = new Rx.Subject()\n this._screenClickSubject = new Rx.Subject()\n this._fovChangedByUserSubject = new Rx.Subject()\n this._airTagClickSubject = new Rx.Subject()\n }\n\n onPointChangeAsObservable(): Rx.Observable<PointChangedEvent> {\n return this._changePointSubject\n }\n\n notifyPointChanged(e: PointChangedEvent) {\n this._changePointSubject.next(e)\n }\n\n onFovChangedByUserAsObservable(): Rx.Observable<number> {\n return this._fovChangedByUserSubject\n }\n\n notifyFovChangedByUser(fov: number) {\n this._fovChangedByUserSubject.next(fov)\n }\n\n onAirTagClickAsObservable(): Rx.Observable<AirTagData> {\n return this._airTagClickSubject\n }\n\n notifyAirTagClick(data: AirTagData) {\n this._airTagClickSubject.next(data)\n }\n\n onItemShownAsObservable(): Rx.Observable<ItemShownEvent> {\n return this._itemShownSubject\n }\n\n notifyItemShown(e: ItemShownEvent) {\n this._itemShownSubject.next(e)\n }\n}\n","import EventSubjects from '~/shared/event_subjects'\n\nclass Analytics {\n constructor () {\n this.eventSubjects = new EventSubjects()\n if (window.AnalyticsNamespace) {\n window.AnalyticsNamespace.attachPanoramaEvents(this.eventSubjects)\n }\n\n // for debug\n this.eventSubjects.onItemShownAsObservable().subscribe(e => console.log('onItemShown', e))\n this.eventSubjects.onPointChangeAsObservable().subscribe(e => console.log('onPointChange', e))\n this.eventSubjects.onAirTagClickAsObservable().subscribe(e => console.log('onAirTagClick', e))\n this.eventSubjects.onFovChangedByUserAsObservable().subscribe(e => console.log('onFovChangedByUserAsObservable', e))\n }\n\n notifyItemShown (state) {\n this.eventSubjects.notifyItemShown({\n placeId: state.placeId,\n pointId: state.pointId,\n itemId: state.itemId\n })\n }\n\n notifyPointChanged (state) {\n this.eventSubjects.notifyPointChanged({\n placeId: state.placeId,\n pointId: state.pointId,\n itemId: state.itemId,\n seekPositionMillisec: state.videoStartTime * 1000,\n pointIndex: -1\n })\n }\n\n notifyAirTagClick (airtag) {\n this.eventSubjects.notifyAirTagClick({\n phi: airtag.phi,\n theta: airtag.theta,\n type: airtag.type,\n index: airtag.index\n })\n }\n\n notifyFovChangedByUser (fov) {\n this.eventSubjects.notifyFovChangedByUser(fov)\n }\n}\n\nexport default new Analytics()\n","import TWEEN from '@tweenjs/tween.js'\n\nimport { isImageType, clampRotation, optimizeRotation } from './helpers'\nimport analytics from './analytics'\n\nlet rotateCameraTween = null\n\nexport default {\n async loadPanorama ({ state, getters, commit, dispatch }, panoramaDataUrl) {\n try {\n commit('setLoading', true)\n const response = await Nurve.$http.get(panoramaDataUrl)\n commit('setPlaceData', response.data)\n commit('setLoading', false)\n\n } catch (err) {\n commit('setErrorMessage', 'データが取得できませんでした。')\n console.log(err)\n }\n },\n\n async showInitialItem ({ state, getters, commit, dispatch }) {\n const { mapId, pointId, itemId } = getters.initialItemContext\n commit('setItemContext', { mapId: mapId })\n commit('setItemContext', {\n ...getters.initialItemContext,\n cameraRotation: getters.initialCameraRotation(pointId, itemId),\n fov: getters.initialCameraFov(itemId)\n })\n analytics.notifyItemShown(state)\n },\n\n requestPermissionDeviceMotion({ state, commit }) {\n if (typeof DeviceMotionEvent === 'undefined' || typeof DeviceOrientationEvent === 'undefined') {\n commit('setDeviceMotionDenied')\n return\n }\n if (\n DeviceMotionEvent &&\n DeviceMotionEvent.requestPermission &&\n typeof DeviceMotionEvent.requestPermission === 'function'\n ) {\n DeviceMotionEvent.requestPermission().then(permission => {\n if (permission == 'denied') commit('setDeviceMotionDenied')\n })\n }\n if (\n DeviceOrientationEvent &&\n DeviceOrientationEvent.requestPermission &&\n typeof DeviceOrientationEvent.requestPermission === 'function'\n ) {\n DeviceOrientationEvent.requestPermission().then(permission => {\n if (permission == 'denied') commit('setDeviceMotionDenied')\n })\n }\n },\n\n rotateCamera ({ state, commit }, { duration, x, y }) {\n return new Promise((resolve, reject) => {\n // 前回のアニメーションををkill\n if (rotateCameraTween) {\n rotateCameraTween.stop()\n }\n\n const rotation = {\n x: state.cameraRotation.x,\n y: state.cameraRotation.y\n }\n\n rotateCameraTween = new TWEEN.Tween(rotation)\n .to({x, y: optimizeRotation(rotation.y, y) }, duration * 1000)\n .easing(TWEEN.Easing.Quadratic.Out)\n .onUpdate(() => commit('setCameraRotation', rotation))\n .onComplete(resolve)\n .start()\n\n // duration + 0.1 秒でresolveされていなければkillされたとみなしてrejectする\n setTimeout(reject, (duration + 0.1) * 1000)\n })\n },\n\n changeCameraRotation({ state, commit, dispatch }, { x, y }) {\n commit('setCameraRotation', { x, y })\n dispatch('clampCameraRotation')\n },\n\n async changePointWithoutForwardProcess({ state, getters, dispatch }, { pointId }) {\n if (getters.currentPoint.id === pointId) { return }\n const point = getters.getPointById(pointId)\n const mapId = getters.allMaps.find(m => m.points.find(p => p.id == pointId)).id\n const items = point.items\n const itemId = items[items.length - 1].id\n dispatch('changePointFade', { mapId, pointId, itemId })\n dispatch('sendEvent', { event: 'changePoint', overrideIds: { pointId, itemId } })\n },\n\n async changePoint({ state, getters, dispatch }, { pointId, videoForceAutoPlay = false } = {}) {\n if (getters.currentPoint.id === pointId) { return }\n\n const point = getters.getPointById(pointId)\n const mapId = getters.allMaps.find(m => m.points.find(p => p.id == pointId)).id\n const items = point.items\n const itemId = items[0].id\n if (getters.canForward(pointId) && !state.gyroRotation) {\n dispatch('changePointForward', { mapId, pointId, itemId, videoForceAutoPlay })\n } else {\n dispatch('changePointFade', { mapId, pointId, itemId, videoForceAutoPlay })\n }\n dispatch('sendEvent', { event: 'changePoint', overrideIds: { pointId: pointId, itemId: itemId } })\n },\n\n changePointForward({ state, getters, commit, dispatch }, { mapId, pointId, itemId, videoForceAutoPlay = false } = {}) {\n const currentItemContext = getters.currentItemContext\n let cameraRotation = null\n let fov = null\n if (!getters.keepMovementDirection(pointId)) {\n cameraRotation = getters.initialCameraRotation(pointId, itemId)\n fov = getters.initialCameraFov(itemId)\n } else {\n fov = currentItemContext.fov\n }\n const direction = getters.directionToPoint(pointId)\n dispatch('rotateCamera', { duration: 0.5, x: 0, y: direction }).then(() => {\n commit('appendItemContextHistory', currentItemContext)\n commit('setItemContext', { mapId, pointId, itemId, transition: 'forward', cameraRotation, fov, videoForceAutoPlay })\n analytics.notifyPointChanged(state)\n }).catch(() => {})\n },\n\n changePointFade({ state, getters, commit }, { mapId, pointId, itemId, videoForceAutoPlay = false } = {}) {\n const currentItemContext = getters.currentItemContext\n const cameraRotation = getters.initialCameraRotation(pointId, itemId)\n const fov = getters.initialCameraFov(itemId)\n commit('appendItemContextHistory', currentItemContext)\n commit('setItemContext', { mapId, pointId, itemId, transition: 'fade', cameraRotation, fov, videoForceAutoPlay })\n analytics.notifyPointChanged(state)\n },\n\n async changeItem({ state, getters, commit, dispatch }, { pointId, itemId }) {\n if (getters.currentItem.id !== itemId) {\n commit('setItemContext', { pointId, itemId, fov: getters.initialCameraFov(itemId) })\n dispatch('sendEvent', { event: 'changeItem', overrideIds: { pointId: pointId, itemId: itemId } })\n }\n },\n\n async changeImageQuality({ state, getters, commit, dispatch }) {\n const itemContext = getters.currentItemContext\n commit('setItemContext', { ...itemContext, imageQuality: state.settings.imageQuality })\n dispatch('sendEvent', { event: 'changeImageQuality', value: state.settings.imageQuality })\n },\n\n backPrevPoint({ state, getters, commit }) {\n if (getters.lastItemContext) {\n const itemContext = getters.lastItemContext\n commit('removeLastItemContext')\n commit('setItemContext', { ...itemContext, transition: 'fade' })\n analytics.notifyPointChanged(state)\n }\n },\n\n changeFov({ state, commit, dispatch }, fov) {\n const oldFov = state.fov.value\n commit('setFov', fov)\n if (oldFov !== state.fov.value) {\n dispatch('clampCameraRotation')\n analytics.notifyFovChangedByUser(state.fov.value)\n }\n },\n\n changeFovWithAnimation({ state, commit, dispatch }, { fov, duration }) {\n return new Promise(resolve => {\n const obj = { fov: state.fov.value }\n\n new TWEEN.Tween(obj)\n .to({ fov }, duration * 1000)\n .easing(TWEEN.Easing.Quadratic.Out)\n .onUpdate(() => {\n commit('setFov', obj.fov)\n dispatch('clampCameraRotation')\n })\n .onComplete(resolve)\n .start()\n })\n },\n\n onAirtagClick({ state, getters, commit, dispatch }, { airtag }) {\n analytics.notifyAirTagClick(airtag)\n if (airtag.type == 'point') {\n dispatch('changePoint', { pointId: airtag.point_id })\n }\n if (airtag.type == 'info') {\n commit('setAirtagInformation', airtag.information)\n commit('toggleAirtagInformation')\n }\n },\n\n onStopLookAtItemObject ({ state, commit }) {\n commit('setStopLookingAtItemObject')\n },\n\n onLookAtArrowPoint({ state, getters, commit, dispatch }, { arrowPoint }) {\n commit('setLookingAtItemObject', arrowPoint)\n if (state.lookAtItemObject.counter<60) return\n commit('setSelectedItemObject')\n dispatch('changePointWithoutForwardProcess', { pointId: arrowPoint.id })\n },\n\n onLookAtAirtag({ state, getters, commit, dispatch }, { airtag }) {\n if (airtag.type == 'info') return\n commit('setLookingAtItemObject', airtag)\n if (state.lookAtItemObject.counter<60) return\n if (airtag.type == 'point') {\n commit('setSelectedItemObject')\n dispatch('changePointWithoutForwardProcess', { pointId: airtag.point_id })\n }\n if (airtag.type == 'info') {\n }\n },\n\n clampCameraRotation({ state, getters, commit }) {\n const range = getters.cameraRotationRange\n if (range) {\n let { x, y } = state.cameraRotation\n x = clampRotation(x, range.xMin, range.xMax)\n y = clampRotation(y, range.yMin, range.yMax)\n commit('setCameraRotation', { x, y })\n }\n },\n\n sendEvent({ state }, { event, value, overrideIds }) {\n window.logger.sendEvent(event, value,\n (overrideIds && overrideIds.placeId) || state.placeId,\n (overrideIds && overrideIds.mapId) || state.mapId,\n (overrideIds && overrideIds.pointId) || state.pointId,\n (overrideIds && overrideIds.itemId) || state.itemId\n )\n }\n}\n","import state from './state'\nimport getters from './getters'\nimport mutations from './mutations'\nimport actions from './actions'\n\nexport default {\n namespaced: true,\n\n state,\n getters,\n mutations,\n actions\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.loading)?_c('div',{staticClass:\"loading\"},[_c('div',{staticClass:\"spin\"})]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.vue?vue&type=style&index=0&id=26d2eb91&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.vue?vue&type=style&index=0&id=26d2eb91&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./loading.vue?vue&type=template&id=26d2eb91&scoped=true&\"\nimport script from \"./loading.vue?vue&type=script&lang=js&\"\nexport * from \"./loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./loading.vue?vue&type=style&index=0&id=26d2eb91&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26d2eb91\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.errorMessage)?_c('div',{staticClass:\"error\"},[_c('div',{staticClass:\"error-message\"},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error-message.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error-message.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error-message.vue?vue&type=style&index=0&id=20a45214&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error-message.vue?vue&type=style&index=0&id=20a45214&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./error-message.vue?vue&type=template&id=20a45214&scoped=true&\"\nimport script from \"./error-message.vue?vue&type=script&lang=js&\"\nexport * from \"./error-message.vue?vue&type=script&lang=js&\"\nimport style0 from \"./error-message.vue?vue&type=style&index=0&id=20a45214&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20a45214\",\n null\n \n)\n\nexport default component.exports","import { mapMutations } from 'vuex'\nimport TWEEN from '@tweenjs/tween.js'\n\nexport default {\n methods: {\n ...mapMutations('panorama', [\n 'setPanoramaZoomEnabled',\n 'setRadarEnabled',\n 'setIgnoreAutoRotation',\n ]),\n\n dispose () {\n },\n\n beforeEnter (el) {\n el.style.opacity = 0\n this.setIgnoreAutoRotation(true)\n },\n\n enter (el, done) {\n new TWEEN.Tween(el.style)\n .to({ opacity: 1 }, 1000)\n .easing(TWEEN.Easing.Exponential.In)\n .onUpdate(data => el.opacity = data.opacity)\n .onComplete(done)\n .start()\n },\n\n afterEnter (el) {\n this.setIgnoreAutoRotation(false)\n },\n\n beforeLeave (el) {\n },\n\n leave (el, done) {\n new TWEEN.Tween(el.style)\n .to({ opacity: 0 }, 1000)\n .easing(TWEEN.Easing.Exponential.Out)\n .onUpdate(data => el.opacity = data.opacity)\n .onComplete(done)\n .start()\n },\n\n afterLeave (el) {\n this.dispose()\n }\n },\n created () {\n this.setPanoramaZoomEnabled(false)\n this.setRadarEnabled(false)\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"before-leave\":_vm.beforeLeave,\"leave\":_vm.leave,\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.onTap),expression:\"onTap\",arg:\"tap\"}],staticClass:\"item-image\",style:(_vm.style)})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-image.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-image.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-image.vue?vue&type=style&index=0&id=22a85052&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-image.vue?vue&type=style&index=0&id=22a85052&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-image.vue?vue&type=template&id=22a85052&scoped=true&\"\nimport script from \"./item-image.vue?vue&type=script&lang=js&\"\nexport * from \"./item-image.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-image.vue?vue&type=style&index=0&id=22a85052&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22a85052\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\n\n// FIXME: vuex化するべき。\nconst videoControlsBus = new Vue()\nexport default videoControlsBus\n","import { mapState, mapGetters, mapMutations, mapActions } from 'vuex'\nimport * as THREE from 'three'\nimport screenfull from 'screenfull'\n\nimport videoControlsBus from '../../video-controls-bus'\nimport ReactiveVideoElement from '~/use_case_supports/presenters/video/reactive_video_element'\nimport CompositeDisposable from '~/shared/disposables/composite_disposable'\n\nconst waitMetadata = (reactiveVideo, video) => {\n return new Promise((resolve, reject) => {\n const disposables = new CompositeDisposable()\n disposables.addSubscription(\n reactiveVideo.metadataReadyProperty.asObservable.subscribe((ready) => {\n if (ready) {\n resolve()\n disposables.dispose()\n }\n })\n )\n disposables.addSubscription(\n reactiveVideo.onErrorAsObservable().subscribe((error) => {\n reject(error)\n disposables.dispose()\n })\n )\n if (reactiveVideo.videoElement.error) {\n reject(reactiveVideo.videoElement.error)\n disposables.dispose()\n }\n })\n}\n\nexport default {\n data() {\n return {\n overlayVideoPlayButton: false,\n overlayVideoReplayButton: false,\n changeVideoVolumeTimer: null,\n reactiveVideo: null,\n }\n },\n\n computed: {\n ...mapState('panorama', [\n 'settings',\n 'videoStartTime',\n 'videoCurrentTime',\n 'videoDuration',\n 'videoSpeed',\n 'videoRepeat',\n 'vrMode',\n 'videoMuted',\n 'videoVolume',\n 'videoAutoPlay',\n ]),\n ...mapGetters('panorama', ['itemComponentInfo']),\n },\n\n methods: {\n initVideoEvent() {\n this.disposables.addSubscription(\n this.reactiveVideo.onPlayingAsObservable().subscribe(() => {\n this.setVideoPlaying(true)\n this.overlayVideoPlayButton = false\n this.overlayVideoReplayButton = false\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onErrorAsObservable().subscribe((e) => {\n console.log(e)\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onEndedAsObservable().subscribe(() => {\n if (this.videoRepeat || this.vrMode) {\n // 動画のリプレイ画面とVRモードメニュ画面が被ってしまうため、\n // VRモード時では動画はループ再生させ、リプレイ画面が表示するのを防ぐ\n this.playVideo()\n } else {\n const pointId = this.itemComponentInfo.nextPointId\n if (pointId) {\n this.changePoint({ pointId, videoForceAutoPlay: true })\n } else {\n this.setVideoPlaying(false)\n this.overlayVideoReplayButton = true\n\n // 次に再生する動画が無いため最小化\n if (screenfull.isEnabled) {\n // Fullscreen APIが有効な場合\n screenfull.exit()\n } else {\n // Fullscreen APIを使用できない場合、ブラウザサイズで最小化をiframeの親に要求\n window.parent?.postMessage(\n JSON.stringify({\n action: 'nurve-fullscreen-off',\n by: this.locationHashParams['target'] ?? 0,\n }),\n '*'\n )\n this.setFullscreen(!this.fullscreen)\n\n // iframeのサイズが変わるため、念の為のresize発火\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'))\n }, 500)\n }\n }\n }\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onPauseAsObservable().subscribe(() => {\n this.setVideoPlaying(false)\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onTimeupdateAsObservable().subscribe(() => {\n this.setVideoCurrentTime(this.video.currentTime)\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onRatechangeAsObservable().subscribe(() => {\n this.setVideoSpeed(this.video.playbackRate)\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onWaitingAsObservable().subscribe(() => {\n this.setLoading(true)\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onCanplayAsObservable().subscribe(() => {\n this.setLoading(false)\n\n // 再生可能になったタイミングで自動再生を行う\n if (this.itemComponentInfo.videoAutoPlay) {\n this.playVideo()\n }\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onSeekingAsObservable().subscribe(() => {\n this.setLoading(true)\n // 1フレームずらす実装があるので整数値で判定する\n if (parseInt(this.video.currentTime) !== parseInt(this.videoStartTime)) {\n this.overlayVideoPlayButton = false\n }\n this.overlayVideoReplayButton = this.video.ended\n })\n )\n this.disposables.addSubscription(\n this.reactiveVideo.onSeekedAsObservable().subscribe(() => {\n this.setLoading(false)\n })\n )\n },\n\n playVideo() {\n this.video.muted = this.videoMuted\n\n this.video.play().catch((err) => {\n if (err.name === 'NotAllowedError' && this.itemComponentInfo.videoAutoPlay) {\n this.muteVideo()\n this.video.play()\n } else {\n // TODO エラー処理\n console.log(err)\n }\n })\n\n this.sendEvent({ event: 'videoPlay', value: this.video.muted })\n },\n\n pauseVideo() {\n this.video.pause()\n this.sendEvent({ event: 'videoPaused', value: this.video.currentTime })\n },\n\n skipVideo(seconds) {\n const time = this.video.currentTime + seconds\n this.video.currentTime = THREE.MathUtils.clamp(time, 0, this.video.duration)\n },\n\n changeVideoSpeed(speed) {\n this.video.playbackRate = speed\n this.setVideoSpeed(speed)\n },\n\n muteVideo() {\n this.video.muted = true\n this.setVideoMuted(true)\n this.sendEvent({ event: 'videoMuted' })\n },\n\n unmuteVideo() {\n this.video.muted = false\n this.setVideoMuted(false)\n this.sendEvent({ event: 'videoUnmuted' })\n },\n\n async startVideoLoading() {\n try {\n await waitMetadata(this.reactiveVideo, this.video)\n this.video.currentTime = this.videoStartTime\n this.video.playbackRate = this.videoSpeed\n await this.waitInitialCanplayEvent()\n } catch (err) {\n console.log(err)\n // 無限に呼び出されるかもしれないので sleep を入れる\n await new Promise((resolve) => setTimeout(resolve, 1000))\n this.video.load()\n await this.startVideoLoading()\n }\n },\n\n async waitInitialCanplayEvent() {\n const disposables = new CompositeDisposable()\n return new Promise((resolve, reject) => {\n disposables.addSubscription(\n this.reactiveVideo.onCanplayAsObservable().subscribe(() => {\n disposables.dispose()\n resolve(null)\n })\n )\n disposables.addSubscription(\n this.reactiveVideo.onErrorAsObservable().subscribe((e) => {\n disposables.dispose()\n reject(e)\n })\n )\n })\n },\n\n changeVideoVolume(volume) {\n if (volume === 0) {\n this.muteVideo()\n } else if (this.videoMuted) {\n this.unmuteVideo()\n }\n\n this.video.volume = volume\n this.setVideoVolume(volume)\n\n // ボリューム変更を送信(そのままだと大量に送信されてしまうため遅延実行)\n clearTimeout(this.changeVideoVolumeTimer)\n this.changeVideoVolumeTimer = setTimeout(() => {\n this.sendEvent({ event: 'changeVideoVolume', value: volume })\n }, 1000)\n },\n\n ...mapMutations('panorama', [\n 'setVideoPlaying',\n 'setVideoCurrentTime',\n 'setVideoSpeed',\n 'setVideoMuted',\n 'setVideoVolume',\n 'setLoading'\n ]),\n ...mapActions('panorama', ['changePoint', 'sendEvent']),\n },\n\n async mounted() {\n this.disposables ??= new CompositeDisposable()\n this.reactiveVideo = this.disposables.add(new ReactiveVideoElement(this.video))\n this.overlayVideoPlayButton = !this.videoAutoPlay\n\n this.setVideoPlaying(false)\n videoControlsBus.$on('play-video', this.playVideo)\n videoControlsBus.$on('pause-video', this.pauseVideo)\n videoControlsBus.$on('skip-video', this.skipVideo)\n videoControlsBus.$on('change-video-speed', this.changeVideoSpeed)\n videoControlsBus.$on('mute-video', this.muteVideo)\n videoControlsBus.$on('unmute-video', this.unmuteVideo)\n videoControlsBus.$on('change-video-volume', this.changeVideoVolume)\n\n this.$el.querySelector('.video').appendChild(this.video)\n this.initVideoEvent()\n\n await this.startVideoLoading()\n },\n\n beforeDestroy() {\n videoControlsBus.$off('play-video', this.playVideo)\n videoControlsBus.$off('pause-video', this.pauseVideo)\n videoControlsBus.$off('skip-video', this.skipVideo)\n videoControlsBus.$off('change-video-speed', this.changeVideoSpeed)\n videoControlsBus.$off('mute-video', this.muteVideo)\n videoControlsBus.$off('unmute-video', this.unmuteVideo)\n videoControlsBus.$off('change-video-volume', this.changeVideoVolume)\n this.disposables.dispose()\n\n this.pauseVideo()\n this.setLoading(false)\n },\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.overlayVideoPlayButton || _vm.overlayVideoReplayButton),expression:\"overlayVideoPlayButton || overlayVideoReplayButton\"}],staticClass:\"overlay\",style:(_vm.overlayStyle),on:{\"click\":function($event){return _vm.$emit('playVideo')}}},[(_vm.overlayVideoPlayButton)?_c('div',{staticClass:\"play-video-button\"},[_c('img',{staticClass:\"play-video\",attrs:{\"src\":_vm.theme.icons.overlayVideoPlay}}),_c('div',[_vm._v(\"再生する\")])]):_vm._e(),(_vm.overlayVideoReplayButton)?_c('div',{staticClass:\"replay-video-button\"},[_c('img',{staticClass:\"play-video\",attrs:{\"src\":_vm.theme.icons.overlayVideoPlay}}),_c('div',[_vm._v(\"もう一度再生する\")])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-overlay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-overlay.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-overlay.vue?vue&type=style&index=0&id=948ad12a&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-overlay.vue?vue&type=style&index=0&id=948ad12a&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./video-overlay.vue?vue&type=template&id=948ad12a&scoped=true&\"\nimport script from \"./video-overlay.vue?vue&type=script&lang=js&\"\nexport * from \"./video-overlay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./video-overlay.vue?vue&type=style&index=0&id=948ad12a&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"948ad12a\",\n null\n \n)\n\nexport default component.exports","import * as THREE from 'three'\nimport HlsVideo from '~/shared/hls_video'\nimport MediumElementFactory from '~/shared/medium_element_factory'\n\nexport class VideoTextureCache {\n texture: THREE.VideoTexture\n hlsVideo?: HlsVideo\n\n constructor(texture: THREE.VideoTexture, hlsVideo?: HlsVideo) {\n this.texture = texture\n this.hlsVideo = hlsVideo\n }\n}\n\nexport class ImageTextureCache {\n texture: any\n}\n\nexport class VideoCache {\n video: HTMLVideoElement\n hlsVideo?: HlsVideo\n\n constructor(video: HTMLVideoElement, hlsVideo?: HlsVideo) {\n this.video = video\n this.hlsVideo = hlsVideo\n }\n}\n\nexport default class MediumCacheProvider {\n static _videoTextureCaches: { [key: string]: VideoTextureCache } = {}\n static _imageTextureCaches: { [key: string]: ImageTextureCache } = {}\n static _videoCaches: { [key: string]: VideoCache } = {}\n\n static getVideoTextureCache(src: string) {\n return (MediumCacheProvider._videoTextureCaches[src] ??= this.createVideoTextureCache(src))\n }\n\n static getImageTextureCache(src: string) {\n return (MediumCacheProvider._imageTextureCaches[src] ??= this.createImageTextureCache(src))\n }\n\n static getVideoCache(src: string) {\n return (MediumCacheProvider._videoCaches[src] ??= this.createVideoCache(src))\n }\n\n private static createVideoTextureCache(src: string) {\n if (MediumElementFactory.isHlsAvailable(src)) {\n const hlsVideo = MediumElementFactory.createHlsVideo2(src)\n const texture = MediumCacheProvider.createThreeVideoTexture(hlsVideo.video)\n return new VideoTextureCache(texture, hlsVideo)\n }\n const video = MediumElementFactory.createStandardVideo(src)\n const texture = MediumCacheProvider.createThreeVideoTexture(video)\n return new VideoTextureCache(texture)\n }\n\n private static createImageTextureCache(src: string) {\n const texture = new THREE.TextureLoader().load(src)\n texture.minFilter = THREE.LinearFilter\n texture.magFilter = THREE.LinearFilter\n\n const imageTexture = new ImageTextureCache()\n imageTexture.texture = texture\n\n return imageTexture\n }\n\n private static createVideoCache(url: string) {\n if (MediumElementFactory.isHlsAvailable(url)) {\n const hlsVideo = MediumElementFactory.createHlsVideo2(url)\n return new VideoCache(hlsVideo.video, hlsVideo)\n }\n return new VideoCache(MediumElementFactory.createStandardVideo(url))\n }\n\n private static createThreeVideoTexture(video) {\n const texture = new THREE.VideoTexture(video)\n texture.minFilter = THREE.LinearFilter\n texture.magFilter = THREE.LinearFilter\n texture.format = THREE.RGBAFormat\n return texture\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"before-leave\":_vm.beforeLeave,\"leave\":_vm.leave,\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.onTap),expression:\"onTap\",arg:\"tap\"}],staticClass:\"item-video\"},[_c('div',{staticClass:\"video\",style:(_vm.style)}),_c('video-overlay',{attrs:{\"overlay-video-play-button\":_vm.overlayVideoPlayButton,\"overlay-video-replay-button\":_vm.overlayVideoReplayButton},on:{\"playVideo\":_vm.playVideo}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-video.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-video.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-video.vue?vue&type=style&index=0&id=db055ed0&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-video.vue?vue&type=style&index=0&id=db055ed0&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-video.vue?vue&type=template&id=db055ed0&scoped=true&\"\nimport script from \"./item-video.vue?vue&type=script&lang=js&\"\nexport * from \"./item-video.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-video.vue?vue&type=style&index=0&id=db055ed0&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db055ed0\",\n null\n \n)\n\nexport default component.exports","export default class {\n constructor (store, itemObject, itemTransition) {\n this.store = store\n this.itemObject = itemObject\n this.itemTransition = itemTransition\n }\n\n get panoramaFovMax() {\n return this.store.state.panorama.fov.max\n }\n\n get cameraRotation() {\n return this.store.state.panorama.cameraRotation\n }\n\n afterLeave() {\n this.itemObject.dispose()\n }\n}\n","import TWEEN from '@tweenjs/tween.js'\nimport delay from 'delay'\n\nimport TweenPromisify from '~/shared/tween-promisify'\nimport Transition3dBase from './transition3d-base'\n\nexport default class extends Transition3dBase {\n constructor (store, itemObject, itemTransition) {\n super(store, itemObject, itemTransition)\n }\n\n beforeEnter () {\n this.itemObject.opacity = 0\n this.itemObject.showAirTagsAndMoveTags(false)\n\n this.store.commit('panorama/setRadarEnabled', false)\n }\n\n enter () {\n // フェードイン\n const tween = new TWEEN.Tween(this.itemObject)\n .to({ opacity: 1 }, 1000)\n .easing(TWEEN.Easing.Exponential.In)\n .start()\n const tweenPromise = TweenPromisify(tween)\n\n // 暗くなっている間にカメラを回転する\n const timeoutPromise = new Promise(async resolve => {\n await delay(500)\n\n if (this.itemTransition.cameraRotation) {\n this.store.commit('panorama/setCameraRotation', this.itemTransition.cameraRotation)\n }\n if (this.itemTransition.fov) {\n this.store.commit('panorama/setFov', this.itemTransition.fov)\n } else {\n this.store.commit('panorama/setFov', this.panoramaFovMax)\n }\n\n resolve()\n })\n\n return Promise.all([tweenPromise, timeoutPromise])\n }\n\n afterEnter () {\n this.store.commit('panorama/setRadarEnabled', true)\n\n this.itemObject.showAirTagsAndMoveTags(true)\n }\n\n leave () {\n // フェードアウト\n const tween = new TWEEN.Tween(this.itemObject)\n .to({ opacity: 0 }, 1000)\n .easing(TWEEN.Easing.Exponential.Out)\n .start()\n return TweenPromisify(tween)\n }\n}\n","import * as THREE from 'three'\nimport TWEEN from '@tweenjs/tween.js'\n\nimport TweenPromisify from '~/shared/tween-promisify'\nimport Transition3dBase from './transition3d-base'\n\nexport default class extends Transition3dBase {\n constructor (store, itemObject, itemTransition) {\n super(store, itemObject, itemTransition)\n\n this.duration = 1\n }\n\n beforeEnter () {\n this.itemObject.opacity = 0\n this.itemObject.showAirTagsAndMoveTags(false)\n\n // カメラの前方に出現する\n const y = THREE.MathUtils.degToRad(this.cameraRotation.y)\n const pos = new THREE.Vector3(0, 0, -20).applyEuler(new THREE.Euler(0, -y, 0))\n this.itemObject.inner.position.copy(pos)\n }\n\n enter () {\n // 原点へ移動する\n const tween1 = new TWEEN.Tween(this.itemObject.inner.position)\n .to({ x: 0, y: 0, z: 0 }, this.duration * 1000)\n .easing(TWEEN.Easing.Quadratic.Out)\n const promise1 = TweenPromisify(tween1)\n\n const tween2 = new TWEEN.Tween(this.itemObject)\n .to({ opacity: 1 }, this.duration * 1000)\n .easing(TWEEN.Easing.Quadratic.Out)\n const promise2 = TweenPromisify(tween2)\n\n return Promise.all([promise1, promise2])\n }\n\n afterEnter () {\n const duration = 0.5\n if (this.itemTransition.cameraRotation) {\n const rotation = { ...this.itemTransition.cameraRotation, duration }\n this.store.dispatch('panorama/rotateCamera', rotation).catch(() => {})\n }\n if (this.itemTransition.fov) {\n const fov = { fov: this.itemTransition.fov, duration }\n this.store.dispatch('panorama/changeFovWithAnimation', fov).catch(() => {})\n } else {\n const fov = { fov: this.panoramaFovMax, duration }\n this.store.dispatch('panorama/changeFovWithAnimation', fov).catch(() => {})\n }\n\n this.itemObject.showAirTagsAndMoveTags(true)\n }\n\n leave () {\n // カメラの後方へ移動する\n const y = THREE.MathUtils.degToRad(this.cameraRotation.y)\n const pos = new THREE.Vector3(0, 0, 20).applyEuler(new THREE.Euler(0, -y, 0))\n\n const tween1 = new TWEEN.Tween(this.itemObject.inner.position)\n .to({ x: pos.x, y: pos.y, z: pos.z }, this.duration * 1000)\n .easing(TWEEN.Easing.Quadratic.Out)\n const promise1 = TweenPromisify(tween1)\n\n const tween2 = new TWEEN.Tween(this.itemObject)\n .to({ opacity: 0 }, this.duration * 1000)\n .easing(TWEEN.Easing.Quadratic.Out)\n const promise2 = TweenPromisify(tween2)\n\n return Promise.all([promise1, promise2])\n }\n}\n","import Transition3dBase from './transition3d-base'\n\nexport default class extends Transition3dBase {\n constructor (store, itemObject, itemTransition) {\n super(store, itemObject, itemTransition)\n }\n\n beforeEnter () {\n this.itemObject.showAirTagsAndMoveTags(false)\n }\n\n enter () {\n return Promise.resolve()\n }\n\n afterEnter () {\n if (this.itemTransition.cameraRotation) {\n this.store.commit('panorama/setCameraRotation', this.itemTransition.cameraRotation)\n }\n if (this.itemTransition.fov) {\n this.store.commit('panorama/setFov', this.itemTransition.fov)\n } else {\n this.store.commit('panorama/setFov', this.panoramaFovMax)\n }\n\n this.itemObject.showAirTagsAndMoveTags(true)\n }\n\n beforeLeave () {}\n\n leave () {\n return Promise.resolve()\n }\n}\n","import { mapState, mapMutations } from 'vuex'\n\nimport Transition3dFade from './transition3d-fade'\nimport Transition3dForward from './transition3d-forward'\nimport Transition3dNull from './transition3d-null'\n\nexport default {\n computed: {\n ...mapState('panorama', [\n 'itemTransition'\n ])\n },\n\n methods: {\n ...mapMutations('panorama', [\n 'setRadarEnabled',\n 'setIgnoreAutoRotation',\n ]),\n\n dispose () {},\n\n createTransition () {\n switch (this.itemTransition.name) {\n case 'fade': return new Transition3dFade(this.$store, this.object, this.itemTransition)\n case 'forward': return new Transition3dForward(this.$store, this.object, this.itemTransition)\n default: return new Transition3dNull(this.$store, this.object, this.itemTransition)\n }\n },\n\n beforeEnter (el) {\n this.setIgnoreAutoRotation(true)\n\n this.$_transition = this.createTransition()\n this.$_transition.beforeEnter()\n },\n\n enter (el, done) {\n this.$_transition.enter().then(done)\n },\n\n afterEnter (el) {\n this.setIgnoreAutoRotation(false)\n this.$_transition.afterEnter()\n this.$_transition = null\n },\n\n beforeLeave (el) {\n this.$_transition = this.createTransition()\n },\n\n leave (el, done) {\n this.$_transition.leave().then(done)\n },\n\n afterLeave (el) {\n this.$_transition.afterLeave()\n this.$_transition = null\n this.dispose()\n }\n },\n\n created () {\n this.setRadarEnabled(true)\n }\n}\n","import { mapState, mapMutations, mapActions } from 'vuex'\n\nexport default {\n computed: {\n ...mapState('panorama', [\n 'fov',\n 'cameraRotation',\n 'gyroRotation'\n ])\n },\n\n methods: {\n ...mapMutations('panorama', [\n 'setPanoramaZoomEnabled',\n 'setAutoRotation'\n ]),\n ...mapActions('panorama', [\n 'changePoint',\n 'onAirtagClick',\n 'changeFov',\n 'changeCameraRotation',\n 'sendEvent'\n ]),\n\n $_onTap (e) {\n if (e.target !== this.$el) {\n return\n }\n const raycaster = this.threeContext.createRaycaster(e.center.x, e.center.y)\n\n const moveTag = this.object.findMoveTagOnRay(raycaster)\n if (moveTag) {\n this.changePoint({ pointId: moveTag.point.id })\n return\n }\n\n const airTag = this.object.findAirTagOnRay(raycaster)\n if (airTag) {\n this.onAirtagClick({ airtag: airTag })\n return\n }\n\n this.$emit('tap', e)\n },\n\n // パン\n $_onPanStart () {\n // ジャイロ操作モードではカメラ視点操作はジャイロで行うため、パン機能は使わない\n if (this.gyroRotation) return\n this.setAutoRotation(false)\n this.$_panX = this.cameraRotation.x\n this.$_panY = this.cameraRotation.y\n },\n\n $_onPan (e) {\n // ジャイロ操作モードではカメラ視点操作はジャイロで行うため、パン機能は使わない\n if (this.$_panX !== null && this.$_panY !== null && !this.gyroRotation) {\n const x = this.$_panX + e.deltaY / 5\n const y = this.$_panY - e.deltaX / 5\n this.changeCameraRotation({ x, y })\n }\n },\n\n $_onPanEnd () {\n this.sendEvent({ event: 'changeCameraRotation', value: { x: this.$_panX, y: this.$_panY } })\n this.$_panX = this.$_panY = null\n },\n\n // ピンチ\n $_onPinchStart () {\n this.setAutoRotation(false)\n this.$_fov = this.fov.value\n },\n\n $_onPinch (e) {\n if (this.$_fov !== null) {\n this.changeFov(this.$_fov / e.scale)\n }\n },\n\n $_onPinchEnd () {\n this.$_fov = null\n },\n\n // ホイール\n $_onWheel (e) {\n e.preventDefault()\n\n // deltaYとwheelDeltaYは正負逆なので注意\n // IEに合わすため、deltaYを基準とした\n let deltaY = Math.sign(e.deltaY || (- e.wheelDeltaY) || e.wheelDelta || e.detail) * 2\n this.changeFov(this.fov.value + deltaY)\n }\n },\n\n mounted () {\n this.setPanoramaZoomEnabled(true)\n\n // ホイール(ズーム)\n this.$listen(this.$el, 'wheel', this.$_onWheel, false)\n }\n}\n","import * as THREE from 'three'\nimport TWEEN from '@tweenjs/tween.js'\n\nimport Tag from '~/setup/models/tag'\nimport { ItemComponentInfo, MaskingData } from '~/panoramas/utils/types'\nimport TagBase from '~/setup/models/tag/base'\nimport MediumCacheProvider from '../medium-cache-provider'\n\nexport default class ItemBaseObject {\n static ARROW_SIZE = 5\n static ARROW_DIST_MIN = 10\n static ARROW_DIST_MAX = 70\n store: any\n private _opacity: number\n inner: any\n mesh: any\n airTags: TagBase[]\n moveTags: TagBase[]\n tripodCoverMesh: any\n maskingMesh: any\n colorTween: any\n\n constructor(store, item: ItemComponentInfo) {\n this.store = store\n this._opacity = 1\n\n // 内部グループ (画像、動画、三脚隠し、マスキング、エアタグ)\n // TODO: おそらくもう不要。\n this.inner = new THREE.Group()\n\n this.mesh = this.createMesh(item)\n this.inner.add(this.mesh)\n\n // エアタグ\n this.airTags = []\n\n // 矢印・ガイド\n this.moveTags = []\n this.addAirAndMoveTags(item)\n\n // 三脚隠し\n if (item.tripodCoverUrl && item.tripodCoverScale > 0) {\n this.tripodCoverMesh = this.createTripodCover(item.tripodCoverUrl, item.tripodCoverScale)\n this.inner.add(this.tripodCoverMesh)\n }\n\n // マスキング\n if (item.masking) {\n this.maskingMesh = this.createMaskingMesh(item.masking)\n this.inner.add(this.maskingMesh)\n }\n\n // モードの設定\n this.switchVrMode()\n\n // VRモードの切替の監視\n this.store.watch(\n () => this.store.state.panorama.vrMode,\n () => this.switchVrMode()\n )\n }\n\n // 継承先で実装する\n createMesh(item: ItemComponentInfo): any {\n throw new Error('Method not implemented.')\n }\n\n addAirAndMoveTags(item: ItemComponentInfo) {\n // ポイントタグの移動先pointが存在しない場合があるので、それを取り除く。\n item.airtags\n .filter((airtag) => {\n return airtag.type === 'info' || this.store.getters['panorama/getPointById'](airtag.point_id)\n })\n .forEach((airtag) => {\n const tag = this.createAirtagObject(airtag)\n this.airTags.push(tag)\n\n this.mesh.add(tag.threeObject)\n })\n this.updateShowByTimeAirtags(0)\n\n // 矢印\n item.movablePoints.forEach((nextPoint) => {\n const tag = this.createMoveTagObject(nextPoint)\n this.moveTags.push(tag)\n\n this.inner.add(tag.threeObject)\n })\n\n // 矢印の点滅\n const color1 = new THREE.Color(0xffffff)\n const color2 = new THREE.Color(0x2ab7d9)\n this.colorTween = new TWEEN.Tween(color1)\n .to({ r: color2.r, g: color2.g, b: color2.b }, 1000)\n .easing(TWEEN.Easing.Exponential.In)\n .repeat(Infinity)\n .yoyo(true)\n .onUpdate((data) => this.updateMoveTagsColor(data))\n .start()\n }\n\n get vrMode() {\n return this.store.state.panorama.vrMode\n }\n\n dispose() {\n // 三脚隠し\n if (this.tripodCoverMesh) {\n this.tripodCoverMesh.material.dispose()\n this.tripodCoverMesh.geometry.dispose()\n }\n\n // マスキング\n if (this.maskingMesh) {\n this.maskingMesh.material.dispose()\n this.maskingMesh.geometry.dispose()\n }\n\n // エアタグ\n this.airTags.forEach((tag) => tag.dispose())\n\n // 矢印\n this.moveTags.forEach((tag) => tag.dispose())\n this.colorTween.stop()\n }\n\n createTripodCover(tripodCoverUrl, tripodCoverScale) {\n const coverDistance = 50\n const scale = tripodCoverScale / 100\n const geometry = new THREE.PlaneGeometry(40, 40)\n const texture = MediumCacheProvider.getImageTextureCache(tripodCoverUrl).texture\n const material = new THREE.MeshBasicMaterial({\n color: 0xffffff,\n map: texture,\n transparent: true,\n })\n const tripodCoverMesh = new THREE.Mesh(geometry, material)\n tripodCoverMesh.position.y = -coverDistance\n tripodCoverMesh.rotation.x = -Math.PI / 2\n tripodCoverMesh.renderOrder = 1\n tripodCoverMesh.scale.set(scale, scale, 1)\n return tripodCoverMesh\n }\n\n createMaskingMesh(masking: MaskingData) {\n const geometry = new THREE.CircleGeometry(173, 64)\n const material = new THREE.MeshBasicMaterial({\n side: THREE.DoubleSide,\n color: 0x000000,\n transparent: true,\n })\n const maskingMesh = new THREE.Mesh(geometry, material)\n const phi = THREE.MathUtils.degToRad(masking.phi)\n const theta = THREE.MathUtils.degToRad(-masking.theta + 180)\n maskingMesh.position.setFromSpherical(new THREE.Spherical(100, phi, theta))\n maskingMesh.lookAt(0, 0, 0)\n maskingMesh.renderOrder = 1\n return maskingMesh\n }\n\n createAirtagObject(airtag) {\n if (airtag.type === 'point') {\n const targetPoint = this.store.getters['panorama/getPointById'](airtag.point_id)\n airtag.label = targetPoint.name\n }\n\n return Tag.create(airtag)\n }\n\n createMoveTagObject(nextPoint) {\n const v = this.store.getters['panorama/vectorToPoint'](nextPoint.id)\n const pos = v\n .clone()\n .setLength(ItemBaseObject.ARROW_DIST_MIN)\n .add(v.multiplyScalar(ItemBaseObject.ARROW_DIST_MAX - ItemBaseObject.ARROW_DIST_MIN))\n const phi = Math.atan2(pos.length(), -5)\n const theta = Math.atan2(-pos.y, pos.x) + Math.PI / 2\n const position = new THREE.Vector3().setFromSphericalCoords(25, phi, theta)\n\n // タグ\n return Tag.create({\n type: 'move',\n label: nextPoint.name,\n pos: position,\n deg: 0,\n callback: () => onClick(nextPoint),\n arrowSize: ItemBaseObject.ARROW_SIZE,\n point: nextPoint,\n forPanorama: true,\n })\n }\n\n updateShowByTimeAirtags(time) {\n this.airTags.forEach((tag) => tag.showByTime(time))\n }\n\n switchVrMode() {\n this.showAirTagsAndMoveTags(true)\n }\n\n showAirTagsAndMoveTags(visible) {\n const allTags = this.airTags.concat(this.moveTags)\n\n allTags.forEach((tag) => {\n tag.object.visible = visible && tag.getVisibilityByContext(this.store.state.panorama)\n\n // 動画の場合、最初のフレームでの表示設定を反映\n tag.showByTime(0)\n })\n }\n\n findAirTagOnRay(raycaster) {\n return this.airTags.find((tag) => tag.onRay(raycaster))\n }\n\n updateMoveTagsColor(color) {\n this.moveTags.forEach((tag) => tag.setColor(color))\n }\n\n findMoveTagOnRay(raycaster) {\n const selectedTag = this.moveTags.find((tag) => tag.onRay(raycaster))\n this.moveTags.forEach((tag) => (tag === selectedTag ? tag.hoverOn() : tag.hoverOff()))\n\n return selectedTag\n }\n\n get opacity() {\n return this._opacity\n }\n\n set opacity(opacity) {\n this._opacity = opacity\n this.updateOpacity()\n }\n\n updateOpacity() {\n if (this.tripodCoverMesh) {\n this.tripodCoverMesh.material.opacity = this.opacity\n }\n if (this.maskingMesh) {\n this.maskingMesh.material.opacity = this.opacity\n }\n }\n}\n","import * as THREE from 'three'\nimport ItemBaseObject from './item-base-object'\nimport ShaderMaterial from '~/shared/shader-material'\nimport { ItemComponentInfo } from '~/panoramas/utils/types'\nimport MediumCacheProvider from '../medium-cache-provider'\n\nexport default class extends ItemBaseObject {\n createMesh (item: ItemComponentInfo) {\n const texture = MediumCacheProvider.getImageTextureCache(item.img).texture\n const material = new ShaderMaterial(texture, THREE.BackSide)\n material.userData.texture = texture\n\n const geometry = new THREE.SphereGeometry(150, 64, 32, Math.PI / 2)\n const mesh = new THREE.Mesh(geometry, material)\n mesh.scale.x = -1\n mesh.rotation.y = THREE.MathUtils.degToRad(360 - item.pointRotation)\n\n return mesh\n }\n\n dispose () {\n super.dispose()\n\n this.mesh.material.dispose()\n this.mesh.material.userData.texture.dispose()\n\n this.mesh.geometry.dispose()\n }\n\n updateOpacity() {\n super.updateOpacity()\n this.mesh.material.opacity = this.opacity\n }\n\n setBrightness(brightness) {\n this.mesh.material.brightness = brightness\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"before-leave\":_vm.beforeLeave,\"leave\":_vm.leave,\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.$_onTap),expression:\"$_onTap\",arg:\"tap\"},{name:\"hammer\",rawName:\"v-hammer:panstart\",value:(_vm.$_onPanStart),expression:\"$_onPanStart\",arg:\"panstart\"},{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.$_onPan),expression:\"$_onPan\",arg:\"pan\"},{name:\"hammer\",rawName:\"v-hammer:panend\",value:(_vm.$_onPanEnd),expression:\"$_onPanEnd\",arg:\"panend\"},{name:\"hammer\",rawName:\"v-hammer:pinchstart\",value:(_vm.$_onPinchStart),expression:\"$_onPinchStart\",arg:\"pinchstart\"},{name:\"hammer\",rawName:\"v-hammer:pinch\",value:(_vm.$_onPinch),expression:\"$_onPinch\",arg:\"pinch\"},{name:\"hammer\",rawName:\"v-hammer:pinchend\",value:(_vm.$_onPinchEnd),expression:\"$_onPinchEnd\",arg:\"pinchend\"}],staticClass:\"wrap\",domProps:{\"hammerOptions\":{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-image.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-image.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-image.vue?vue&type=style&index=0&id=779eb4ce&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-image.vue?vue&type=style&index=0&id=779eb4ce&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-celestial-sphere-image.vue?vue&type=template&id=779eb4ce&scoped=true&\"\nimport script from \"./item-celestial-sphere-image.vue?vue&type=script&lang=js&\"\nexport * from \"./item-celestial-sphere-image.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-celestial-sphere-image.vue?vue&type=style&index=0&id=779eb4ce&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"779eb4ce\",\n null\n \n)\n\nexport default component.exports","import * as THREE from 'three'\nimport ItemBaseObject from './item-base-object'\nimport ShaderMaterial from '~/shared/shader-material'\nimport { ItemComponentInfo } from '~/panoramas/utils/types'\nimport MediumCacheProvider, { VideoTextureCache } from '~/panoramas/components/medium-cache-provider'\n\nexport default class extends ItemBaseObject {\n videoTextureCache: VideoTextureCache\n\n createMesh (item: ItemComponentInfo) {\n this.videoTextureCache = MediumCacheProvider.getVideoTextureCache(item.img)\n const texture = this.videoTextureCache.texture\n this.video = texture.source.data\n\n const material = new ShaderMaterial(texture, THREE.BackSide)\n material.userData.texture = texture\n\n const geometry = new THREE.SphereGeometry(150, 64, 32, Math.PI / 2)\n const mesh = new THREE.Mesh(geometry, material)\n mesh.scale.x = -1\n\n return mesh\n }\n\n dispose () {\n super.dispose()\n\n this.mesh.material.dispose()\n this.mesh.material.userData.texture.dispose()\n\n this.mesh.geometry.dispose()\n }\n\n updateOpacity () {\n super.updateOpacity()\n this.mesh.material.opacity = this.opacity\n }\n\n setBrightness(brightness) {\n this.mesh.material.brightness = brightness\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-video.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-video.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"before-leave\":_vm.beforeLeave,\"leave\":_vm.leave,\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.$_onTap),expression:\"$_onTap\",arg:\"tap\"},{name:\"hammer\",rawName:\"v-hammer:panstart\",value:(_vm.$_onPanStart),expression:\"$_onPanStart\",arg:\"panstart\"},{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.$_onPan),expression:\"$_onPan\",arg:\"pan\"},{name:\"hammer\",rawName:\"v-hammer:panend\",value:(_vm.$_onPanEnd),expression:\"$_onPanEnd\",arg:\"panend\"},{name:\"hammer\",rawName:\"v-hammer:pinchstart\",value:(_vm.$_onPinchStart),expression:\"$_onPinchStart\",arg:\"pinchstart\"},{name:\"hammer\",rawName:\"v-hammer:pinch\",value:(_vm.$_onPinch),expression:\"$_onPinch\",arg:\"pinch\"},{name:\"hammer\",rawName:\"v-hammer:pinchend\",value:(_vm.$_onPinchEnd),expression:\"$_onPinchEnd\",arg:\"pinchend\"}],staticClass:\"item-celestial-sphere-video\",domProps:{\"hammerOptions\":{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}}},[_c('div',{staticClass:\"video\"}),_c('video-overlay',{attrs:{\"overlay-video-play-button\":_vm.overlayVideoPlayButton,\"overlay-video-replay-button\":_vm.overlayVideoReplayButton},on:{\"playVideo\":_vm.playVideo}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-video.vue?vue&type=style&index=0&id=3fe794cb&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-celestial-sphere-video.vue?vue&type=style&index=0&id=3fe794cb&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-celestial-sphere-video.vue?vue&type=template&id=3fe794cb&scoped=true&\"\nimport script from \"./item-celestial-sphere-video.vue?vue&type=script&lang=js&\"\nexport * from \"./item-celestial-sphere-video.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-celestial-sphere-video.vue?vue&type=style&index=0&id=3fe794cb&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fe794cb\",\n null\n \n)\n\nexport default component.exports","import * as THREE from 'three'\nimport ItemBaseObject from './item-base-object'\nimport ShaderMaterial from '~/shared/shader-material'\nimport { createFisheyeGeometory } from '~/shared/global_functions'\nimport { ItemComponentInfo } from '~/panoramas/utils/types'\nimport MediumCacheProvider from '../medium-cache-provider'\n\nexport default class extends ItemBaseObject {\n createMesh (item: ItemComponentInfo) {\n const texture = MediumCacheProvider.getImageTextureCache(item.img).texture\n const material = new ShaderMaterial(texture, THREE.BackSide)\n material.userData.texture = texture\n\n const geometry = this.createGeometry(item)\n const mesh = new THREE.Mesh(geometry, material)\n mesh.scale.z = -1\n mesh.rotation.y = THREE.MathUtils.degToRad(360 - item.pointRotation)\n\n return mesh\n }\n\n createGeometry (item) {\n // 250度魚眼画像\n if (item.type === 'fisheye_250_image') {\n if (item.fisheye250FocalLength === '3.6') {\n return createFisheyeGeometory(250, 1000, 100, new THREE.Vector2(0.62, 0.93))\n } else {\n return createFisheyeGeometory(250, 1000, 100, new THREE.Vector2(0.53, 0.78))\n }\n }\n\n // ATBB 180度魚眼\n if (item.type === 'fisheye_180_image') {\n return createFisheyeGeometory(180, 1000, 100, new THREE.Vector2(0.93, 0.93))\n }\n\n // ATBB 欠け魚眼\n if (item.type === 'chipping_fisheye_image') {\n return createFisheyeGeometory(180, 1000, 100, new THREE.Vector2(1.3, 1.3))\n }\n }\n\n dispose () {\n super.dispose()\n\n this.mesh.material.dispose()\n this.mesh.material.userData.texture.dispose()\n\n this.mesh.geometry.dispose()\n }\n\n updateOpacity() {\n super.updateOpacity()\n this.mesh.material.opacity = this.opacity\n }\n\n setBrightness(brightness) {\n this.mesh.material.brightness = brightness\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"before-leave\":_vm.beforeLeave,\"leave\":_vm.leave,\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.$_onTap),expression:\"$_onTap\",arg:\"tap\"},{name:\"hammer\",rawName:\"v-hammer:panstart\",value:(_vm.$_onPanStart),expression:\"$_onPanStart\",arg:\"panstart\"},{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.$_onPan),expression:\"$_onPan\",arg:\"pan\"},{name:\"hammer\",rawName:\"v-hammer:panend\",value:(_vm.$_onPanEnd),expression:\"$_onPanEnd\",arg:\"panend\"},{name:\"hammer\",rawName:\"v-hammer:pinchstart\",value:(_vm.$_onPinchStart),expression:\"$_onPinchStart\",arg:\"pinchstart\"},{name:\"hammer\",rawName:\"v-hammer:pinch\",value:(_vm.$_onPinch),expression:\"$_onPinch\",arg:\"pinch\"},{name:\"hammer\",rawName:\"v-hammer:pinchend\",value:(_vm.$_onPinchEnd),expression:\"$_onPinchEnd\",arg:\"pinchend\"}],staticClass:\"wrap\",domProps:{\"hammerOptions\":{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-image.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-image.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-image.vue?vue&type=style&index=0&id=2121d532&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-image.vue?vue&type=style&index=0&id=2121d532&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-fisheye-image.vue?vue&type=template&id=2121d532&scoped=true&\"\nimport script from \"./item-fisheye-image.vue?vue&type=script&lang=js&\"\nexport * from \"./item-fisheye-image.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-fisheye-image.vue?vue&type=style&index=0&id=2121d532&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2121d532\",\n null\n \n)\n\nexport default component.exports","import * as THREE from 'three'\nimport ItemBaseObject from './item-base-object'\nimport ShaderMaterial from '~/shared/shader-material'\nimport { createFisheyeGeometory } from '~/shared/global_functions'\nimport { ItemComponentInfo } from '~/panoramas/utils/types'\nimport MediumCacheProvider, { VideoTextureCache } from '~/panoramas/components/medium-cache-provider'\n\nexport default class extends ItemBaseObject {\n videoTextureCache: VideoTextureCache\n\n createMesh (item: ItemComponentInfo) {\n this.videoTextureCache = MediumCacheProvider.getVideoTextureCache(item.img)\n const texture = this.videoTextureCache.texture\n this.video = texture.source.data\n\n const material = new ShaderMaterial(texture, THREE.BackSide)\n material.userData.texture = texture\n\n const uvScale = new THREE.Vector2(0.523, 0.93)\n const geometry = createFisheyeGeometory(250, 100, 100, uvScale)\n const mesh = new THREE.Mesh(geometry, material)\n mesh.scale.z = -1\n\n return mesh\n }\n\n dispose () {\n super.dispose()\n\n this.mesh.material.dispose()\n this.mesh.material.userData.texture.dispose()\n\n this.mesh.geometry.dispose()\n }\n\n updateOpacity () {\n super.updateOpacity()\n this.mesh.material.opacity = this.opacity\n }\n\n setBrightness(brightness) {\n this.mesh.material.brightness = brightness\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-video.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-video.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"before-leave\":_vm.beforeLeave,\"leave\":_vm.leave,\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.$_onTap),expression:\"$_onTap\",arg:\"tap\"},{name:\"hammer\",rawName:\"v-hammer:panstart\",value:(_vm.$_onPanStart),expression:\"$_onPanStart\",arg:\"panstart\"},{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.$_onPan),expression:\"$_onPan\",arg:\"pan\"},{name:\"hammer\",rawName:\"v-hammer:panend\",value:(_vm.$_onPanEnd),expression:\"$_onPanEnd\",arg:\"panend\"},{name:\"hammer\",rawName:\"v-hammer:pinchstart\",value:(_vm.$_onPinchStart),expression:\"$_onPinchStart\",arg:\"pinchstart\"},{name:\"hammer\",rawName:\"v-hammer:pinch\",value:(_vm.$_onPinch),expression:\"$_onPinch\",arg:\"pinch\"},{name:\"hammer\",rawName:\"v-hammer:pinchend\",value:(_vm.$_onPinchEnd),expression:\"$_onPinchEnd\",arg:\"pinchend\"}],staticClass:\"item-celestial-sphere-video\",domProps:{\"hammerOptions\":{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}}},[_c('div',{staticClass:\"video\"}),_c('video-overlay',{attrs:{\"overlay-video-play-button\":_vm.overlayVideoPlayButton,\"overlay-video-replay-button\":_vm.overlayVideoReplayButton},on:{\"playVideo\":_vm.playVideo}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-video.vue?vue&type=style&index=0&id=3910d207&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-fisheye-video.vue?vue&type=style&index=0&id=3910d207&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-fisheye-video.vue?vue&type=template&id=3910d207&scoped=true&\"\nimport script from \"./item-fisheye-video.vue?vue&type=script&lang=js&\"\nexport * from \"./item-fisheye-video.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-fisheye-video.vue?vue&type=style&index=0&id=3910d207&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3910d207\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-swing-image.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-swing-image.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"appear\":\"\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"before-leave\":_vm.beforeLeave,\"leave\":_vm.leave,\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.onTap),expression:\"onTap\",arg:\"tap\"},{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.onPan),expression:\"onPan\",arg:\"pan\"},{name:\"hammer\",rawName:\"v-hammer:panstart\",value:(_vm.onPanStart),expression:\"onPanStart\",arg:\"panstart\"}],staticClass:\"item-swing-image\",domProps:{\"hammerOptions\":{pan: { direction: 'all', threshold: 0 }}}},[_c('img',{ref:\"image\",style:(_vm.imageStyle),attrs:{\"src\":_vm.itemComponentInfo.img},on:{\"load\":_vm.onLoad,\"copy\":function($event){return _vm.onCopy($event)}}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-swing-image.vue?vue&type=style&index=0&id=210e3ced&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-swing-image.vue?vue&type=style&index=0&id=210e3ced&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-swing-image.vue?vue&type=template&id=210e3ced&scoped=true&\"\nimport script from \"./item-swing-image.vue?vue&type=script&lang=js&\"\nexport * from \"./item-swing-image.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-swing-image.vue?vue&type=style&index=0&id=210e3ced&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"210e3ced\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.onTap),expression:\"onTap\",arg:\"tap\"}],attrs:{\"id\":\"item-empty\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-empty.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-empty.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-empty.vue?vue&type=style&index=0&id=bc6da550&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-empty.vue?vue&type=style&index=0&id=bc6da550&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-empty.vue?vue&type=template&id=bc6da550&scoped=true&\"\nimport script from \"./item-empty.vue?vue&type=script&lang=js&\"\nexport * from \"./item-empty.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-empty.vue?vue&type=style&index=0&id=bc6da550&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc6da550\",\n null\n \n)\n\nexport default component.exports","import { StereoCamera, Vector2 } from 'three';\n\nconst StereoEffect = function (renderer) {\n const _stereo = new StereoCamera();\n\n _stereo.aspect = 0.5;\n const size = new Vector2();\n\n this.setEyeSeparation = eyeSep => {\n _stereo.eyeSep = eyeSep;\n };\n\n this.setSize = (width, height) => {\n renderer.setSize(width, height);\n };\n\n this.render = (scene, camera) => {\n scene.updateMatrixWorld();\n if (camera.parent === null) camera.updateMatrixWorld();\n\n _stereo.update(camera);\n\n renderer.getSize(size);\n if (renderer.autoClear) renderer.clear();\n renderer.setScissorTest(true);\n renderer.setScissor(0, 0, size.width / 2, size.height);\n renderer.setViewport(0, 0, size.width / 2, size.height);\n renderer.render(scene, _stereo.cameraL);\n renderer.setScissor(size.width / 2, 0, size.width / 2, size.height);\n renderer.setViewport(size.width / 2, 0, size.width / 2, size.height);\n renderer.render(scene, _stereo.cameraR);\n renderer.setScissorTest(false);\n };\n};\n\nexport { StereoEffect };\n","import * as THREE from 'three'\n\nexport default class {\n RING_IN_RADIUS: number\n RING_OUT_RADIUS: number\n RING_T_SEG: number\n RING_P_SEG: number\n targetEye: THREE.Group\n direction: THREE.Group\n selectBar: THREE.Group\n parent: THREE.Group | null\n\n constructor(store) {\n this.store = store\n\n // 選択バーの大きさ\n this.RING_IN_RADIUS = 4.5\n this.RING_OUT_RADIUS = 5.5\n this.RING_T_SEG = 32\n this.RING_P_SEG = 1\n\n // 十字カーソル\n this.targetEye = this.createTargeEye()\n // 最初は非表示設定\n this.targetEye.visible = false\n\n // TODO:選択バーの設定についた以下の変更予定\n // 現:選択バーの位置をArrowMesh、エアタグポイントに選択する度に位置を計算\n // 変更:各オブジェクトを選択する度に子オブジェクトととする\n // エアタグに使用しているSpriteでは子オブジェクトにしても上手くいかないので、\n // エアタグの位置計算にObject3Dのダミーオブジェクトを設定する予定\n\n // 選択バー方角調整用\n this.direction = new THREE.Group()\n\n // 選択バー\n this.selectBar = this.createSelectBar()\n this.direction.add(this.selectBar)\n\n this.parent = null\n }\n\n dispose(): void {\n this.selectBar.children.forEach(mesh => {\n if (mesh.geometry) mesh.geometry.dispose()\n if (mesh.material) mesh.material.dispose()\n })\n this.targetEye.children.forEach(object => {\n if (object.geometry) object.geometry.dispose()\n if (object.material) object.material.dispose()\n })\n }\n\n private createTargeEye(): THREE.Group {\n const material = new THREE.LineBasicMaterial({ color: 0x2ab7d9 })\n\n const geometry1 = new THREE.BufferGeometry().setFromPoints([\n new THREE.Vector3( -0.5, 0, -5 ),\n new THREE.Vector3( 0.5, 0, -5 )\n ])\n const line1 = new THREE.Line( geometry1, material )\n\n const geometry2 = new THREE.BufferGeometry().setFromPoints([\n new THREE.Vector3( 0, 0.5, -5 ),\n new THREE.Vector3( 0,-0.5, -5 )\n ])\n const line2 = new THREE.Line( geometry2, material )\n\n const targetEye = new THREE.Group()\n targetEye.add(line1)\n targetEye.add(line2)\n return targetEye\n }\n\n private createSelectBar(): THREE.Group {\n const geometry = new THREE.BufferGeometry()\n const material = new THREE.MeshBasicMaterial({ color: 0xfefefe, side: THREE.DoubleSide })\n const selectBar = new THREE.Group()\n selectBar.add(new THREE.Mesh(geometry, material))\n return selectBar\n }\n\n private setPositionSelectBar(pos: THREE.Vector3): void {\n this.selectBar.position.set(pos.x, pos.y, pos.z)\n }\n\n setPositionSelectBarWithArrow(point: THREE.Vector3): void {\n // ArrowMeshの位置を計算(item-base-objectのcreateArrowMeshと同じ)\n const ARROW_SIZE = 5\n const ARROW_DIST_MIN = 10\n const ARROW_DIST_MAX = 70\n const pt = this.store.getters['panorama/vectorToPoint'](point.id)\n const pos = pt.clone().setLength(ARROW_DIST_MIN).add(pt.multiplyScalar(ARROW_DIST_MAX - ARROW_DIST_MIN))\n this.setPositionSelectBar(new THREE.Vector3(pos.x, -5, pos.y))\n this.direction.rotation.y = 0\n }\n\n setPositionSelectBarWithAirtag(airtagSprite: THREE.Sprite): void {\n const pos = airtagSprite.position.clone().normalize().multiplyScalar(28)\n this.setPositionSelectBar(pos)\n this.direction.rotation.y = this.parent.inner.rotation.y\n }\n\n countSelectBar(count: number): void {\n this.selectBar.children.forEach(mesh => {\n if (mesh.geometry) mesh.geometry.dispose()\n const rate = count > 59 ? 0 : count/55\n const geometry = new THREE.RingGeometry(this.RING_IN_RADIUS, this.RING_OUT_RADIUS, this.RING_T_SEG, this.RING_P_SEG, 0, Math.PI*2*rate)\n geometry.rotateY(this.direction.rotation.y)\n geometry.rotateX(Math.PI)\n mesh.geometry = geometry\n })\n }\n\n lookAtCamera(quat: THREE.Quaternion): void {\n // カメラの方向になるように表示\n this.targetEye.setRotationFromQuaternion(quat)\n this.selectBar.setRotationFromQuaternion(quat)\n }\n\n setVisible(visible: boolean): void {\n this.targetEye.visible = visible\n this.selectBar.visible = visible\n }\n\n setParent(parent: null | THREE.Object3D): void {\n if (this.parent) parent.remove(this.direction)\n parent.add(this.direction)\n this.parent = parent\n }\n}\n","import * as THREE from 'three'\nimport { DeviceOrientationControls } from 'three-stdlib/controls/DeviceOrientationControls'\nimport { StereoEffect } from 'three-stdlib/effects/StereoEffect'\n\nimport VrObject from './vr-object'\nimport {\n normalizeDegree,\n normalizeDegree180,\n} from '../../../places/maps/walkthroughs/helpers'\n\nexport default class {\n constructor(store) {\n this.store = store\n this.scene = new THREE.Scene()\n\n this.vrObject = new VrObject(this.store)\n this.scene.add(this.vrObject.targetEye)\n\n this.camera = new THREE.PerspectiveCamera()\n this.camera.rotation.order = 'YXZ'\n this.renderer = new THREE.WebGLRenderer({ antialias: true })\n this.canvas = this.renderer.domElement\n\n this.effect = new StereoEffect(this.renderer)\n this.controlObject = new THREE.Object3D()\n this.controls = new DeviceOrientationControls(this.controlObject)\n this.resetDeviceOrientation()\n\n this.updateSize()\n this.updateFov()\n this.updateCameraRotation()\n\n this.store.watch(\n () => this.store.state.panorama.gyroRotation,\n () => this.resetDeviceOrientation()\n )\n this.store.watch(\n () => this.store.state.panorama.vrMode,\n () => this.switchVrMode()\n )\n this.store.watch(\n () => this.store.state.panorama.size,\n () => this.updateSize(),\n { deep: true }\n )\n this.store.watch(\n () => this.store.state.panorama.fov,\n () => this.updateFov(),\n { deep: true }\n )\n this.store.watch(\n () => this.store.state.panorama.cameraRotation,\n () => this.updateCameraRotation(),\n { deep: true }\n )\n\n this.update()\n }\n\n get gyroRotation() {\n return this.store.state.panorama.gyroRotation\n }\n\n get vrMode() {\n return this.store.state.panorama.vrMode\n }\n\n get autoRotationDirection(){\n return this.store.state.panorama.autoRotationDirection\n }\n\n get cameraRotation() {\n return this.store.state.panorama.cameraRotation\n }\n\n get lookAtItemObject() {\n return this.store.state.panorama.lookAtItemObject\n }\n\n get eyeControlEnable() {\n return this.store.state.panorama.eyeControlEnable\n }\n\n get eyeTrackingState() {\n return this.store.state.panorama.eyeTrackingState\n }\n\n get ignoreAutoRotation() {\n return this.store.state.panorama.ignoreAutoRotation\n }\n\n get panoramaSize() {\n return this.store.state.panorama.size\n }\n\n get panoramaFov() {\n return this.store.state.panorama.fov.value\n }\n\n updateSize() {\n const { width, height } = this.panoramaSize\n this.canvas.width = width\n this.canvas.height = height\n\n this.renderer.setSize(width, height)\n this.renderer.setPixelRatio(window.devicePixelRatio)\n this.effect.setSize(width, height)\n\n const aspect = width / height\n this.camera.aspect = aspect\n this.camera.updateProjectionMatrix()\n }\n\n updateFov() {\n this.camera.fov = this.panoramaFov\n this.camera.updateProjectionMatrix()\n }\n\n updateCameraRotation() {\n this.camera.rotation.x = THREE.MathUtils.degToRad(this.cameraRotation.x)\n this.camera.rotation.y = THREE.MathUtils.degToRad(-this.cameraRotation.y)\n this.camera.updateProjectionMatrix()\n if (this.eyeControlEnable) {\n // 常にカメラ方向に向くように十字カーソルと選択バーにカメラの回転情報を渡す\n this.vrObject.lookAtCamera(this.camera.quaternion.normalize())\n }\n }\n\n detectIntersection () {\n // 選択は処理しない\n if (this.lookAtItemObject.eyeTrackingState == this.eyeTrackingState.selectd ) {\n return\n }\n\n const raycaster = new THREE.Raycaster()\n raycaster.setFromCamera(new THREE.Vector2(0, 0), this.camera)\n\n let isDetect = false\n // raycasterと表示されている矢印およびエアタグの各オブジェクトの交差を検出\n this.scene.children.forEach(itemObject => {\n if (!itemObject.findMoveTagOnRay && !itemObject.findAirTagOnRay) return\n\n // 矢印との交差\n const moveTag = itemObject.findMoveTagOnRay(raycaster)\n if (moveTag) {\n const point = moveTag.point\n if (this.lookAtItemObject.itemObject && point != this.lookAtItemObject.itemObject) {\n return\n }\n isDetect = true\n if (this.lookAtItemObject.counter < 1) {\n this.vrObject.setPositionSelectBarWithArrow(point)\n }\n this.vrObject.countSelectBar(this.lookAtItemObject.counter)\n this.store.dispatch('panorama/onLookAtArrowPoint', { arrowPoint: point })\n return\n }\n\n // エアタグとの交差\n const airTag = itemObject.findAirTagOnRay(raycaster)\n if (airTag) {\n if (this.lookAtItemObject.itemObject && airTag != this.lookAtItemObject.itemObject) {\n return\n }\n\n // ポイントタグのみ検知し、情報タグは検知しない\n // TODO: 将来、情報タグも検知する\n if (airTag.type == 'point') {\n isDetect = true\n if (this.lookAtItemObject.counter < 1) {\n this.vrObject.setPositionSelectBarWithAirtag(airTag.threeObject)\n }\n this.vrObject.countSelectBar(this.lookAtItemObject.counter)\n }\n this.store.dispatch('panorama/onLookAtAirtag', { airtag: airTag })\n return\n }\n })\n\n if (!isDetect && this.lookAtItemObject.counter > 0) {\n this.vrObject.countSelectBar(0)\n this.store.dispatch('panorama/onStopLookAtItemObject')\n }\n }\n\n resetDeviceOrientation() {\n // ジャイロの利用許可後に DeviceOrientationControls 内のイベントリスナを再登録するため、reconnect する。\n this.controls.disconnect()\n this.controls.connect()\n\n // 現在のジャイロの角度を取得するため、更新する\n this.controls.update()\n this.deltaY = THREE.MathUtils.degToRad(-this.cameraRotation.y) - this.controlObject.rotation.y\n }\n\n switchVrMode() {\n this.resetDeviceOrientation()\n this.updateSize()\n // 視線コントール\n this.vrObject.setVisible(this.vrMode && this.eyeControlEnable)\n }\n\n update() {\n if (this.vrMode) {\n this.updateVrMode()\n } else {\n this.updateNonVrMode()\n }\n requestAnimationFrame(this.update.bind(this))\n }\n\n updateVrMode() {\n if (!this.ignoreAutoRotation) {\n this.controls.update()\n const x = THREE.MathUtils.radToDeg(this.controlObject.rotation.x)\n const y = THREE.MathUtils.radToDeg(-(this.controlObject.rotation.y + this.deltaY))\n this.store.dispatch('panorama/changeCameraRotation', { x, y })\n }\n this.effect.render(this.scene, this.camera)\n if (this.eyeControlEnable) {\n // 交差検知:視線と交差するオブジェクトを検知する\n this.detectIntersection()\n }\n }\n\n updateNonVrMode() {\n if (this.gyroRotation) {\n this.controls.update()\n const x = THREE.MathUtils.radToDeg(this.controlObject.rotation.x)\n const y = THREE.MathUtils.radToDeg(-(this.controlObject.rotation.y + this.deltaY))\n this.store.dispatch('panorama/changeCameraRotation', { x, y })\n } else if (\n this.store.getters['panorama/autoRotationOn'] &&\n !this.ignoreAutoRotation\n ) {\n let rotationSpeedX = 0\n let rotationSpeedY = 0\n const speed = this.store.getters['panorama/cameraSpeed']\n switch (this.store.getters['panorama/cameraPan']) {\n case 'up':\n rotationSpeedX = speed\n break\n case 'down':\n rotationSpeedX = -speed\n break\n case 'left':\n rotationSpeedY = -speed\n break\n case 'right':\n rotationSpeedY = speed\n break\n }\n\n const FPS = 60\n const factor = (3 / FPS) * this.autoRotationDirection\n const x = this.cameraRotation.x + rotationSpeedX * factor\n const y = this.cameraRotation.y + rotationSpeedY * factor\n\n const range = this.store.getters['panorama/cameraRotationRange']\n if (range) {\n const pan = this.store.getters['panorama/cameraPan']\n const rotation =\n this.store.getters['panorama/pointDirection'] -\n this.store.getters['panorama/mapDirection']\n if (pan == 'left' || pan == 'right') {\n const cy = normalizeDegree180(y - range.rotation)\n if (\n cy < range.yMin - range.rotation ||\n cy > range.yMax - range.rotation\n ) {\n this.store.commit('panorama/invertAutoRotationDirection')\n }\n } else if (pan == 'up' || pan == 'down') {\n if (x < range.xMin || x > range.xMax) {\n this.store.commit('panorama/invertAutoRotationDirection')\n }\n }\n } else if (x < -90 || x > 90) {\n this.store.commit('panorama/invertAutoRotationDirection')\n }\n this.store.dispatch('panorama/changeCameraRotation', { x, y })\n }\n this.renderer.render(this.scene, this.camera)\n }\n\n addItemObject(itemObject) {\n this.scene.add(itemObject)\n this.vrObject.setParent(itemObject)\n }\n\n removeItemObject(itemObject) {\n this.scene.remove(itemObject)\n this.store.dispatch('panorama/onStopLookAtItemObject')\n this.vrObject.countSelectBar(0)\n }\n\n createRaycaster(x, y) {\n const { width, height } = this.panoramaSize\n x = (x / width) * 2 - 1\n y = -(y / height) * 2 + 1\n const vector = new THREE.Vector2(x, y)\n\n const raycaster = new THREE.Raycaster()\n raycaster.setFromCamera(vector, this.camera)\n return raycaster\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"item-view\"}},[_c('div',{style:(_vm.enableCssFilter ? _vm.style : ''),attrs:{\"id\":\"renderer\"}}),(_vm.itemComponentInfo.id)?_c(_vm.itemComponent,{key:_vm.itemComponentInfo.key,tag:\"component\",attrs:{\"three-context\":_vm.threeContext},on:{\"tap\":function($event){return _vm.$emit('tap', $event)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-view.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-view.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-view.vue?vue&type=style&index=0&id=6af92e8c&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-view.vue?vue&type=style&index=0&id=6af92e8c&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-view.vue?vue&type=template&id=6af92e8c&scoped=true&\"\nimport script from \"./item-view.vue?vue&type=script&lang=js&\"\nexport * from \"./item-view.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-view.vue?vue&type=style&index=0&id=6af92e8c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6af92e8c\",\n null\n \n)\n\nexport default component.exports","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./telop.vue?vue&type=style&index=0&id=d3a937a2&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./telop.vue?vue&type=style&index=0&id=d3a937a2&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./telop.vue?vue&type=template&id=d3a937a2&scoped=true&\"\nimport script from \"./telop.vue?vue&type=script&lang=js&\"\nexport * from \"./telop.vue?vue&type=script&lang=js&\"\nimport style0 from \"./telop.vue?vue&type=style&index=0&id=d3a937a2&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d3a937a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"telop\"},[_c('div',{staticClass:\"text\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.excuseText)?_c('div',{staticClass:\"excuse-text\",domProps:{\"innerHTML\":_vm._s(_vm.excuseText)}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./excuse-text.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./excuse-text.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./excuse-text.vue?vue&type=style&index=0&id=5e49ba12&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./excuse-text.vue?vue&type=style&index=0&id=5e49ba12&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./excuse-text.vue?vue&type=template&id=5e49ba12&scoped=true&\"\nimport script from \"./excuse-text.vue?vue&type=script&lang=js&\"\nexport * from \"./excuse-text.vue?vue&type=script&lang=js&\"\nimport style0 from \"./excuse-text.vue?vue&type=style&index=0&id=5e49ba12&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e49ba12\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scrollable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scrollable.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"scrollable\",on:{\"scroll\":_vm.onScroll}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scrollable.vue?vue&type=style&index=0&id=664e9c2e&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scrollable.vue?vue&type=style&index=0&id=664e9c2e&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./scrollable.vue?vue&type=template&id=664e9c2e&scoped=true&\"\nimport script from \"./scrollable.vue?vue&type=script&lang=js&\"\nexport * from \"./scrollable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./scrollable.vue?vue&type=style&index=0&id=664e9c2e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"664e9c2e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{staticClass:\"point-thumbnails\"},[_c('div',[_c('div',{staticClass:\"title\"},[_vm._v(\"撮影場所の移動\")])]),_c('scrollable',{ref:\"scrollable\",staticClass:\"thumbnails\",on:{\"update:isLeftScrollable\":function($event){_vm.isLeftScrollable = $event},\"update:isRightScrollable\":function($event){_vm.isRightScrollable = $event}}},_vm._l((_vm.pointThumbnails),function(thumbnail){return _c('div',{key:thumbnail.pointId,staticClass:\"thumbnail\"},[_c('div',{staticClass:\"image\",class:{ active: thumbnail.active },style:({ borderColor: _vm.thumbnailBorderColor(thumbnail) }),on:{\"click\":function($event){_vm.hideItemThumbnails(); _vm.changePoint({ pointId: thumbnail.pointId })}}},[_c('img',{staticStyle:{\"pointer-events\":\"none\"},attrs:{\"src\":thumbnail.imageUrl},on:{\"copy\":function($event){return _vm.onCopy($event)}}})]),_c('div',{staticClass:\"caption\"},[_vm._v(_vm._s(thumbnail.caption))])])}),0),_c('transition-group',{attrs:{\"name\":\"fade\"}},[(_vm.isLeftScrollable)?_c('div',{key:\"left\",staticClass:\"scroll-left\",on:{\"click\":_vm.onScrollLeft}},[_vm._v(\"<\")]):_vm._e(),(_vm.isRightScrollable)?_c('div',{key:\"right\",staticClass:\"scroll-right\",on:{\"click\":_vm.onScrollRight}},[_vm._v(\">\")]):_vm._e()])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./point-thumbnails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./point-thumbnails.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./point-thumbnails.vue?vue&type=style&index=0&id=3f18314c&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./point-thumbnails.vue?vue&type=style&index=0&id=3f18314c&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./point-thumbnails.vue?vue&type=template&id=3f18314c&scoped=true&\"\nimport script from \"./point-thumbnails.vue?vue&type=script&lang=js&\"\nexport * from \"./point-thumbnails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./point-thumbnails.vue?vue&type=style&index=0&id=3f18314c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f18314c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{staticClass:\"item-thumbnails\"},[_c('div',[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.pointName)+\"のシーンを選択\")])]),_c('scrollable',{ref:\"scrollable\",staticClass:\"thumbnails\",on:{\"update:isLeftScrollable\":function($event){_vm.isLeftScrollable = $event},\"update:isRightScrollable\":function($event){_vm.isRightScrollable = $event}}},_vm._l((_vm.itemThumbnails),function(thumbnail){return _c('div',{key:thumbnail.itemId,staticClass:\"thumbnail\"},[_c('div',{staticClass:\"image\",class:{ active: thumbnail.active },style:({ borderColor: _vm.thumbnailBorderColor(thumbnail) }),on:{\"click\":function($event){return _vm.changeItem({ pointId: thumbnail.pointId, itemId: thumbnail.itemId })}}},[_c('img',{staticStyle:{\"pointer-events\":\"none\"},attrs:{\"src\":thumbnail.imageUrl},on:{\"copy\":function($event){return _vm.onCopy($event)}}})]),_c('div',{staticClass:\"caption\"},[_vm._v(_vm._s(thumbnail.caption))])])}),0),_c('transition-group',{attrs:{\"name\":\"fade\"}},[(_vm.isLeftScrollable)?_c('div',{key:\"left\",staticClass:\"scroll-left\",on:{\"click\":_vm.onScrollLeft}},[_vm._v(\"<\")]):_vm._e(),(_vm.isRightScrollable)?_c('div',{key:\"right\",staticClass:\"scroll-right\",on:{\"click\":_vm.onScrollRight}},[_vm._v(\">\")]):_vm._e()])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-thumbnails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-thumbnails.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-thumbnails.vue?vue&type=style&index=0&id=5a31c192&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./item-thumbnails.vue?vue&type=style&index=0&id=5a31c192&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./item-thumbnails.vue?vue&type=template&id=5a31c192&scoped=true&\"\nimport script from \"./item-thumbnails.vue?vue&type=script&lang=js&\"\nexport * from \"./item-thumbnails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./item-thumbnails.vue?vue&type=style&index=0&id=5a31c192&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a31c192\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"button\",on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('div',{staticClass:\"icon\",style:(_vm.iconStyle)},[_c('svg-colored-icon',{attrs:{\"src\":_vm.icon,\"color\":_vm.theme.iconColor}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button-icon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button-icon.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button-icon.vue?vue&type=style&index=0&id=0f763ef4&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button-icon.vue?vue&type=style&index=0&id=0f763ef4&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./button-icon.vue?vue&type=template&id=0f763ef4&scoped=true&\"\nimport script from \"./button-icon.vue?vue&type=script&lang=js&\"\nexport * from \"./button-icon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./button-icon.vue?vue&type=style&index=0&id=0f763ef4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f763ef4\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title-bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title-bar.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"title-bar\",style:({ backgroundColor: _vm.theme.color2 })},[(_vm.backButtonVisible)?_c('button-icon',{staticClass:\"button-left\",attrs:{\"icon\":_vm.theme.icons.back},on:{\"click\":_vm.backPrevPoint}}):_vm._e(),_c('h1',{style:({ color: _vm.theme.color1 })},[_vm._v(_vm._s(_vm.title))]),[(_vm.settings.imageQualityModal)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.more},on:{\"click\":_vm.toggleMoreMenu}}):_vm._e(),(false)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.info},on:{\"click\":_vm.toggleInfoModal}}):_vm._e()]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title-bar.vue?vue&type=style&index=0&id=17f57eb4&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title-bar.vue?vue&type=style&index=0&id=17f57eb4&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./title-bar.vue?vue&type=template&id=17f57eb4&scoped=true&\"\nimport script from \"./title-bar.vue?vue&type=script&lang=js&\"\nexport * from \"./title-bar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./title-bar.vue?vue&type=style&index=0&id=17f57eb4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17f57eb4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.externalLink)?_c('a',{staticClass:\"external-link\",attrs:{\"href\":_vm.externalLink.url,\"target\":\"_blank\"}},[_c('div',[_vm._v(_vm._s(_vm.externalLink.name))])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./external-link.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./external-link.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./external-link.vue?vue&type=style&index=0&id=78152270&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./external-link.vue?vue&type=style&index=0&id=78152270&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./external-link.vue?vue&type=template&id=78152270&scoped=true&\"\nimport script from \"./external-link.vue?vue&type=script&lang=js&\"\nexport * from \"./external-link.vue?vue&type=script&lang=js&\"\nimport style0 from \"./external-link.vue?vue&type=style&index=0&id=78152270&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78152270\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bottom-bar\",style:({ backgroundColor: _vm.theme.color2 })},[_c('button-icon',{staticClass:\"button-left\",attrs:{\"icon\":_vm.theme.icons.pointThumbnails,\"active\":_vm.displayingThumbnailList == 'Points'},on:{\"click\":_vm.togglePointThumbnails}}),(_vm.itemThumbnailsVisible)?_c('button-icon',{staticClass:\"button-left\",attrs:{\"icon\":_vm.theme.icons.itemThumbnails,\"active\":_vm.displayingThumbnailList == 'Items'},on:{\"click\":_vm.toggleItemThumbnails}}):_vm._e(),_c('external-link'),_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.controlsHide},on:{\"click\":function($event){return _vm.$parent.$emit('hideControls')}}}),(_vm.fullscreenEnabled)?[(!_vm.fullscreen)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.fullscreenOn},on:{\"click\":_vm.toggleFullscreen}}):_vm._e(),(_vm.fullscreen)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.fullscreenOff},on:{\"click\":_vm.toggleFullscreen}}):_vm._e()]:(_vm.parentExists && _vm.locationHashParams['panoramasjs'])?[_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.fullscreen ? _vm.theme.icons.fullscreenOff : _vm.theme.icons.fullscreenOn},on:{\"click\":_vm.toggleMaximize}})]:_vm._e(),(_vm.vrModeAvailable)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.vrEffect},on:{\"click\":_vm.startVrMode}}):_vm._e(),(_vm.panoramaGyroRotationAvailable)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.gyroRotation,\"active\":_vm.gyroRotationOn},on:{\"click\":_vm.startGyroMode}}):_vm._e(),(_vm.autoRotationVisible)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.autoRotation,\"active\":_vm.autoRotationOn,\"disabled\":_vm.gyroRotationOn},on:{\"click\":function($event){_vm.gyroRotationOn ? null : _vm.setAutoRotation(!_vm.autoRotationOn)}}}):_vm._e(),(_vm.videoControlVisible)?_c('button-icon',{staticClass:\"button-right\",attrs:{\"icon\":_vm.theme.icons.videoControls},on:{\"click\":_vm.toggleVideoControls}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bottom-bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bottom-bar.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bottom-bar.vue?vue&type=style&index=0&id=09e6a96c&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./bottom-bar.vue?vue&type=style&index=0&id=09e6a96c&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./bottom-bar.vue?vue&type=template&id=09e6a96c&scoped=true&\"\nimport script from \"./bottom-bar.vue?vue&type=script&lang=js&\"\nexport * from \"./bottom-bar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./bottom-bar.vue?vue&type=style&index=0&id=09e6a96c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09e6a96c\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slider.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"slider\",class:_vm.vertical ? 'vertical' : 'horizontal'},[_c('div',{staticClass:\"track-outer\"},[_c('div',{ref:\"track\",staticClass:\"track\"},[_c('div',{directives:[{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.onPan),expression:\"onPan\",arg:\"pan\"},{name:\"hammer\",rawName:\"v-hammer:panstart\",value:(_vm.onPanStart),expression:\"onPanStart\",arg:\"panstart\"}],staticClass:\"thumb\",style:(_vm.thumbStyle),domProps:{\"hammerOptions\":{pan: { direction: 'all', threshold: 0 }}}})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slider.vue?vue&type=style&index=0&id=5bf7fa6a&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slider.vue?vue&type=style&index=0&id=5bf7fa6a&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./slider.vue?vue&type=template&id=5bf7fa6a&scoped=true&\"\nimport script from \"./slider.vue?vue&type=script&lang=js&\"\nexport * from \"./slider.vue?vue&type=script&lang=js&\"\nimport style0 from \"./slider.vue?vue&type=style&index=0&id=5bf7fa6a&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bf7fa6a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"panorama-zoom\",style:({ bottom: _vm.panoramaZoomBottom + 'px' })},[_c('div',{staticClass:\"label\"},[_vm._v(\"﹢\")]),_c('slider',{attrs:{\"vertical\":true,\"min\":_vm.fov.min,\"max\":_vm.fov.max},model:{value:(_vm.fovValue),callback:function ($$v) {_vm.fovValue=$$v},expression:\"fovValue\"}}),_c('div',{staticClass:\"label\"},[_vm._v(\"﹣\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama-zoom.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama-zoom.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama-zoom.vue?vue&type=style&index=0&id=dd6e6d88&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama-zoom.vue?vue&type=style&index=0&id=dd6e6d88&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./panorama-zoom.vue?vue&type=template&id=dd6e6d88&scoped=true&\"\nimport script from \"./panorama-zoom.vue?vue&type=script&lang=js&\"\nexport * from \"./panorama-zoom.vue?vue&type=script&lang=js&\"\nimport style0 from \"./panorama-zoom.vue?vue&type=style&index=0&id=dd6e6d88&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dd6e6d88\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-svg.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-svg.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg',{directives:[{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.onTap),expression:\"onTap\",arg:\"tap\"},{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.onPan),expression:\"onPan\",arg:\"pan\"}],attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":`0 0 ${_vm.size} ${_vm.size}`},domProps:{\"hammerOptions\":{pan: { threshold: 0 }}},on:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel.apply(null, arguments)}}},[_c('g',{attrs:{\"opacity\":_vm.opacity}},[_c('rect',{attrs:{\"width\":_vm.size,\"height\":_vm.size,\"fill\":\"#ccc\"}}),_c('image',{attrs:{\"x\":_vm.imageX,\"y\":_vm.imageY,\"width\":_vm.imageWidth,\"height\":_vm.imageHeight,\"xlink:href\":_vm.mapImageUrl}})]),(_vm.isRadarVisible)?_c('path',{attrs:{\"d\":_vm.raderShape,\"fill\":\"red\",\"opacity\":\"0.3\"}}):_vm._e(),(_vm.showWalkThrough)?[_vm._l((_vm.mapLines),function(line){return (_vm.settings.drawLine)?_c('line',{key:line.join('-'),attrs:{\"x1\":_vm.pointX(_vm.pointById(line[0])),\"y1\":_vm.pointY(_vm.pointById(line[0])),\"x2\":_vm.pointX(_vm.pointById(line[1])),\"y2\":_vm.pointY(_vm.pointById(line[1])),\"stroke-width\":1.5 * _vm.zoomScale,\"stroke-dasharray\":`${1 * _vm.zoomScale}, ${3 * _vm.zoomScale}`}}):_vm._e()}),_vm._l((_vm.mapPoints),function(point){return _c('circle',{key:point.pointId,attrs:{\"cx\":_vm.pointX(point),\"cy\":_vm.pointY(point),\"r\":3 * _vm.zoomScale,\"fill\":\"#f5f5f5\",\"stroke\":\"#2AB7D9\",\"stroke-width\":1.5 * _vm.zoomScale}})}),_vm._l((_vm.mapPoints),function(point){return (!point.active)?_c('circle',{key:`clickable-${point.pointId}`,attrs:{\"cx\":_vm.pointX(point),\"cy\":_vm.pointY(point),\"r\":9 * _vm.zoomScale,\"fill-opacity\":0},on:{\"click\":function($event){return _vm.changePoint({ pointId: point.pointId })}}}):_vm._e()})]:_vm._e(),(_vm.currentPosition.visible)?_c('circle',{attrs:{\"cx\":_vm.pointX(_vm.currentPosition),\"cy\":_vm.pointY(_vm.currentPosition),\"r\":3 * _vm.zoomScale,\"fill\":\"#FF7373\",\"stroke\":\"#FF7373\",\"stroke-width\":1.5 * _vm.zoomScale}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-svg.vue?vue&type=style&index=0&id=586eea86&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-svg.vue?vue&type=style&index=0&id=586eea86&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./map-svg.vue?vue&type=template&id=586eea86&scoped=true&\"\nimport script from \"./map-svg.vue?vue&type=script&lang=js&\"\nexport * from \"./map-svg.vue?vue&type=script&lang=js&\"\nimport style0 from \"./map-svg.vue?vue&type=style&index=0&id=586eea86&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"586eea86\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-small.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-small.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"map-small\"},[_c('map-svg',{attrs:{\"size\":60,\"opacity\":0.5,\"showWalkThrough\":false},on:{\"tap\":function($event){return _vm.$emit('small', false)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./map-small.vue?vue&type=template&id=cae0c530&\"\nimport script from \"./map-small.vue?vue&type=script&lang=js&\"\nexport * from \"./map-small.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"map-large\"},[_c('map-svg',{ref:\"mapSvg\",attrs:{\"size\":180,\"opacity\":1,\"showWalkThrough\":true},on:{\"zoom\":_vm.onZoom}}),(_vm.allMaps.length > 1)?_c('div',{staticClass:\"map-name\"},_vm._l((_vm.allMaps),function(map,i){return _c('button',{class:_vm.currentMap.id === map.id ? 'active' : null,on:{\"click\":function($event){return _vm.changePoint({ pointId: map.points[0].id })}}},[_vm._v(\" \"+_vm._s(map.name || (i + 1))+\" \")])}),0):_vm._e(),_c('div',{staticClass:\"bottom-bar\"},[_c('div',{staticClass:\"map-zoom\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"﹣\")]),_c('slider',{attrs:{\"min\":1,\"max\":5},model:{value:(_vm.zoomScale),callback:function ($$v) {_vm.zoomScale=$$v},expression:\"zoomScale\"}}),_c('div',{staticClass:\"label\"},[_vm._v(\"﹢\")])],1),_c('div',{staticClass:\"minimize\",on:{\"click\":function($event){return _vm.$emit('small', true)}}},[_c('img',{attrs:{\"src\":_vm.theme.icons.minimize}})])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-large.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-large.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-large.vue?vue&type=style&index=0&id=42a450c7&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-large.vue?vue&type=style&index=0&id=42a450c7&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./map-large.vue?vue&type=template&id=42a450c7&scoped=true&\"\nimport script from \"./map-large.vue?vue&type=script&lang=js&\"\nexport * from \"./map-large.vue?vue&type=script&lang=js&\"\nimport style0 from \"./map-large.vue?vue&type=style&index=0&id=42a450c7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42a450c7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.mapImageUrl)?_c('transition',[_c('keep-alive',[(_vm.small)?_c('map-small',{staticClass:\"map-view\",on:{\"small\":function($event){_vm.small = $event}}}):_vm._e(),(!_vm.small)?_c('map-large',{staticClass:\"map-view\",on:{\"small\":function($event){_vm.small = $event}}}):_vm._e()],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-view.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-view.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-view.vue?vue&type=style&index=0&id=6a80d33b&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./map-view.vue?vue&type=style&index=0&id=6a80d33b&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./map-view.vue?vue&type=template&id=6a80d33b&scoped=true&\"\nimport script from \"./map-view.vue?vue&type=script&lang=js&\"\nexport * from \"./map-view.vue?vue&type=script&lang=js&\"\nimport style0 from \"./map-view.vue?vue&type=style&index=0&id=6a80d33b&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6a80d33b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"video-volume-slider\"},[_c('div',{staticClass:\"slider-wrapper\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"﹢\")]),_c('slider',{attrs:{\"vertical\":true,\"min\":_vm.videoVolume.min,\"max\":_vm.videoVolume.max},model:{value:(_vm.videoVolumeValue),callback:function ($$v) {_vm.videoVolumeValue=$$v},expression:\"videoVolumeValue\"}}),_c('div',{staticClass:\"label\"},[_vm._v(\"﹣\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-volume-slider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-volume-slider.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-volume-slider.vue?vue&type=style&index=0&id=21a75756&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-volume-slider.vue?vue&type=style&index=0&id=21a75756&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./video-volume-slider.vue?vue&type=template&id=21a75756&scoped=true&\"\nimport script from \"./video-volume-slider.vue?vue&type=script&lang=js&\"\nexport * from \"./video-volume-slider.vue?vue&type=script&lang=js&\"\nimport style0 from \"./video-volume-slider.vue?vue&type=style&index=0&id=21a75756&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21a75756\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{staticClass:\"video-panel\",style:({ backgroundColor: _vm.theme.color2 }),on:{\"toushstart\":_vm.touch,\"touchmove\":_vm.touch,\"touchend\":_vm.touch,\"mousedown\":_vm.touch,\"mousemove\":_vm.touch,\"mouseup\":_vm.touch}},[(!_vm.videoPlaying)?_c('button-icon',{staticClass:\"button-left\",attrs:{\"icon\":_vm.theme.icons.videoPlay},on:{\"click\":function($event){return _vm.playVideo()}}}):_vm._e(),(_vm.videoPlaying)?_c('button-icon',{staticClass:\"button-left\",attrs:{\"icon\":_vm.theme.icons.videoPause},on:{\"click\":function($event){return _vm.pauseVideo()}}}):_vm._e(),_c('button-icon',{staticClass:\"button-left\",attrs:{\"icon\":_vm.theme.icons.videoBwd5},on:{\"click\":function($event){return _vm.skipVideo(-5)}}}),_c('button-icon',{staticClass:\"button-left\",attrs:{\"icon\":_vm.theme.icons.videoFwd5},on:{\"click\":function($event){return _vm.skipVideo(5)}}}),_c('button-icon',{staticClass:\"button-right close\",attrs:{\"icon\":_vm.theme.icons.close},on:{\"click\":_vm.toggleVideoControls}}),_c('div',{staticClass:\"button button-right speed\",style:({ color: _vm.theme.color1 }),on:{\"click\":_vm.toggleVideoSpeedMenu}},[_vm._v(\" ×\"+_vm._s(_vm.videoSpeed)+\" \")]),_c('div',{staticClass:\"button-right volume\",on:{\"mouseover\":_vm.mouseOverVolume,\"mouseleave\":_vm.mouseLeaveVolume}},[_c('button-icon',{attrs:{\"icon\":_vm.videoMuted ? _vm.theme.icons.volumeOff : _vm.theme.icons.volumeUp},on:{\"click\":_vm.toggleMute}}),(_vm.videoVolumeSlideActive)?_c('video-volume-slider'):_vm._e()],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-controls.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-controls.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-controls.vue?vue&type=style&index=0&id=11b72186&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-controls.vue?vue&type=style&index=0&id=11b72186&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./video-controls.vue?vue&type=template&id=11b72186&scoped=true&\"\nimport script from \"./video-controls.vue?vue&type=script&lang=js&\"\nexport * from \"./video-controls.vue?vue&type=script&lang=js&\"\nimport style0 from \"./video-controls.vue?vue&type=style&index=0&id=11b72186&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11b72186\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{staticClass:\"backdrop\",on:{\"touchstart\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleVideoSpeedMenu.apply(null, arguments)},\"mousedown\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleVideoSpeedMenu.apply(null, arguments)}}},[_c('div',{staticClass:\"menu\",style:({ height: `${36 * _vm.speeds.length}px`})},_vm._l((_vm.speeds),function(speed){return _c('div',{key:speed,staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectMenuItem(speed)}}},[_c('span',[_vm._v(\"×\"+_vm._s(speed))])])}),0)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-speed-menu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-speed-menu.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-speed-menu.vue?vue&type=style&index=0&id=4f5d6a68&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./video-speed-menu.vue?vue&type=style&index=0&id=4f5d6a68&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./video-speed-menu.vue?vue&type=template&id=4f5d6a68&scoped=true&\"\nimport script from \"./video-speed-menu.vue?vue&type=script&lang=js&\"\nexport * from \"./video-speed-menu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./video-speed-menu.vue?vue&type=style&index=0&id=4f5d6a68&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f5d6a68\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{staticClass:\"backdrop\",on:{\"touchstart\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleMoreMenu.apply(null, arguments)},\"mousedown\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleMoreMenu.apply(null, arguments)}}},[_c('div',{staticClass:\"menu\"},[(!_vm.mediumStore.hlsActive)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.showImageQualityModal}},[_c('span',[_vm._v(\"画質設定\")])]):_vm._e(),(_vm.mediumStore.hlsActive)?_c('div',{staticClass:\"menu-item\"},[_c('span',[_vm._v(\"画質\")]),_vm._l((_vm.mediumStore.hlsLevels),function(label,index){return _c('div',{key:index},[_c('label',[_c('input',{attrs:{\"type\":\"radio\"},domProps:{\"checked\":_vm.mediumStore.hlsLevelIndex == index},on:{\"click\":function($event){return _vm.changeLevel(index)}}}),_vm._v(\" \"+_vm._s(_vm.LEVELS[label]))])])}),_c('div',[_c('label',[_c('input',{attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":_vm.mediumStore.autoHlsLevelActive},on:{\"click\":_vm.toggleHlsAutomaticVideoLevel}}),_vm._v(\" 自動\")])])],2):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more-menu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more-menu.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more-menu.vue?vue&type=style&index=0&id=9b51534c&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more-menu.vue?vue&type=style&index=0&id=9b51534c&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./more-menu.vue?vue&type=template&id=9b51534c&scoped=true&\"\nimport script from \"./more-menu.vue?vue&type=script&lang=js&\"\nexport * from \"./more-menu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./more-menu.vue?vue&type=style&index=0&id=9b51534c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9b51534c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{staticClass:\"backdrop\",on:{\"touchstart\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleInfoModal.apply(null, arguments)},\"mousedown\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleInfoModal.apply(null, arguments)}}},[_c('div',{staticClass:\"info-modal\"},[_c('div',{staticClass:\"header\"},[_c('span',[_vm._v(\"物件情報\")]),_c('div',{staticClass:\"close\",on:{\"click\":_vm.toggleInfoModal}},[_vm._v(\"×\")])]),_c('div',{staticClass:\"content-wrapper\"},[_c('div',{staticClass:\"content\"},[_vm._v(\" 住所とか賃料とかいろいろ \"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・ \"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・ \"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・ \"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・\"),_c('br'),_vm._v(\"・ \")])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./info-modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./info-modal.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./info-modal.vue?vue&type=style&index=0&id=187ee332&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./info-modal.vue?vue&type=style&index=0&id=187ee332&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./info-modal.vue?vue&type=template&id=187ee332&scoped=true&\"\nimport script from \"./info-modal.vue?vue&type=script&lang=js&\"\nexport * from \"./info-modal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./info-modal.vue?vue&type=style&index=0&id=187ee332&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"187ee332\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{staticClass:\"backdrop\",on:{\"touchstart\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleImageQualityModal.apply(null, arguments)},\"mousedown\":function($event){if($event.target !== $event.currentTarget)return null;$event.preventDefault();$event.stopPropagation();return _vm.toggleImageQualityModal.apply(null, arguments)}}},[_c('div',{staticClass:\"image-quality-modal\"},[_c('div',{staticClass:\"header\"},[_c('span',[_vm._v(\"画質設定\")]),_c('div',{staticClass:\"close\",on:{\"click\":_vm.toggleImageQualityModal}},[_vm._v(\"×\")])]),_c('div',{staticClass:\"content-wrapper\"},[_c('div',{staticClass:\"content\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.imageQuality),expression:\"imageQuality\"}],attrs:{\"type\":\"radio\",\"value\":\"low\"},domProps:{\"checked\":_vm._q(_vm.imageQuality,\"low\")},on:{\"change\":function($event){_vm.imageQuality=\"low\"}}}),_vm._v(\"低\")]),_c('br'),_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.imageQuality),expression:\"imageQuality\"}],attrs:{\"type\":\"radio\",\"value\":\"middle\"},domProps:{\"checked\":_vm._q(_vm.imageQuality,\"middle\")},on:{\"change\":function($event){_vm.imageQuality=\"middle\"}}}),_vm._v(\"中\")]),_c('br'),_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.imageQuality),expression:\"imageQuality\"}],attrs:{\"type\":\"radio\",\"value\":\"high\"},domProps:{\"checked\":_vm._q(_vm.imageQuality,\"high\")},on:{\"change\":function($event){_vm.imageQuality=\"high\"}}}),_vm._v(\"高\")]),_c('br'),_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.imageQuality),expression:\"imageQuality\"}],attrs:{\"type\":\"radio\",\"value\":\"original\"},domProps:{\"checked\":_vm._q(_vm.imageQuality,\"original\")},on:{\"change\":function($event){_vm.imageQuality=\"original\"}}}),_vm._v(\"オリジナル\")])])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image-quality-modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image-quality-modal.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image-quality-modal.vue?vue&type=style&index=0&id=668599b8&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image-quality-modal.vue?vue&type=style&index=0&id=668599b8&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./image-quality-modal.vue?vue&type=template&id=668599b8&scoped=true&\"\nimport script from \"./image-quality-modal.vue?vue&type=script&lang=js&\"\nexport * from \"./image-quality-modal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./image-quality-modal.vue?vue&type=style&index=0&id=668599b8&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"668599b8\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-image.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-image.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"information-image-box\"},[_c('img',{directives:[{name:\"hammer\",rawName:\"v-hammer:panstart\",value:(_vm.onPanStart),expression:\"onPanStart\",arg:\"panstart\"},{name:\"hammer\",rawName:\"v-hammer:pan\",value:(_vm.onPan),expression:\"onPan\",arg:\"pan\"},{name:\"hammer\",rawName:\"v-hammer:panend\",value:(_vm.onPanEnd),expression:\"onPanEnd\",arg:\"panend\"},{name:\"hammer\",rawName:\"v-hammer:pinchstart\",value:(_vm.onPinchStart),expression:\"onPinchStart\",arg:\"pinchstart\"},{name:\"hammer\",rawName:\"v-hammer:pinch\",value:(_vm.onPinch),expression:\"onPinch\",arg:\"pinch\"},{name:\"hammer\",rawName:\"v-hammer:pinchend\",value:(_vm.onPinchEnd),expression:\"onPinchEnd\",arg:\"pinchend\"}],ref:\"image\",staticClass:\"information-image\",style:(_vm.infoImgStyle),attrs:{\"src\":_vm.url},domProps:{\"hammerOptions\":{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}},on:{\"load\":_vm.loadedImage,\"error\":_vm.loadFailed,\"wheel\":_vm.onWheel}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-image.vue?vue&type=style&index=0&id=5662c760&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-image.vue?vue&type=style&index=0&id=5662c760&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./airtag-image.vue?vue&type=template&id=5662c760&scoped=true&\"\nimport script from \"./airtag-image.vue?vue&type=script&lang=js&\"\nexport * from \"./airtag-image.vue?vue&type=script&lang=js&\"\nimport style0 from \"./airtag-image.vue?vue&type=style&index=0&id=5662c760&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5662c760\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"aspect-ratio\"},[_c('iframe',{staticClass:\"youtube-frame\",attrs:{\"src\":_setup.src,\"frameborder\":\"0\",\"width\":\"640\",\"height\":\"360\",\"allow\":\"accelerometer; autoplay; mute; encrypted-media; gyroscope; picture-in-picture\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-movie.vue?vue&type=script&setup=true&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-movie.vue?vue&type=script&setup=true&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-movie.vue?vue&type=style&index=0&id=6082c957&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-movie.vue?vue&type=style&index=0&id=6082c957&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./airtag-movie.vue?vue&type=template&id=6082c957&scoped=true&\"\nimport script from \"./airtag-movie.vue?vue&type=script&setup=true&lang=js&\"\nexport * from \"./airtag-movie.vue?vue&type=script&setup=true&lang=js&\"\nimport style0 from \"./airtag-movie.vue?vue&type=style&index=0&id=6082c957&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6082c957\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isImageLoaded),expression:\"isImageLoaded\"},{name:\"hammer\",rawName:\"v-hammer:tap\",value:(_vm.onTap),expression:\"onTap\",arg:\"tap\"}],staticClass:\"backdrop\"},[_c('div',{attrs:{\"slot\":\"top-right\"},slot:\"top-right\"},[_c('button',{staticClass:\"airtag-information-close\",style:({'left':_vm.btnCloseX, 'top':_vm.btnCloseY}),attrs:{\"type\":\"button\"},on:{\"click\":_vm.onClose}})]),_c('div',{ref:\"modal\",staticClass:\"airtag-modal\"},[(_vm.airtagInformation.image_url || _vm.airtagInformation.text)?_c('div',{staticClass:\"information-box\"},[_c('div',{staticClass:\"content\"},[(_vm.airtagInformation.image_url)?_c('airtag-image',{attrs:{\"url\":_vm.airtagInformation.image_url},on:{\"resizedImage\":_vm.onImageLoaded,\"loadFailed\":_vm.onImageloadFailed}}):_vm._e(),(_vm.airtagInformation.text)?_c('div',{staticClass:\"information-text\",domProps:{\"innerHTML\":_vm._s(_vm.airtagInformationText)}}):_vm._e()],1)]):_vm._e(),(_vm.airtagInformation.youtube_url)?_c('airtag-movie',{staticClass:\"information-youtube\",attrs:{\"url\":_vm.airtagInformation.youtube_url}}):_vm._e()],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-information.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-information.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-information.vue?vue&type=style&index=0&id=3fed03a1&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./airtag-information.vue?vue&type=style&index=0&id=3fed03a1&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./airtag-information.vue?vue&type=template&id=3fed03a1&scoped=true&\"\nimport script from \"./airtag-information.vue?vue&type=script&lang=js&\"\nexport * from \"./airtag-information.vue?vue&type=script&lang=js&\"\nimport style0 from \"./airtag-information.vue?vue&type=style&index=0&id=3fed03a1&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fed03a1\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.enable)?_c('div',{staticClass:\"overlay-message-modal\"},[(!_vm.showModal)?_c('button',{staticClass:\"overlay-button\",on:{\"click\":function($event){$event.preventDefault();_vm.showModal = true}}},[_c('img',{attrs:{\"src\":require(\"@/images/panoramas/items/renovation_modal_button.png\")}})]):_vm._e(),(_vm.showModal)?_c('div',{staticClass:\"message-modal\",on:{\"click\":function($event){$event.stopPropagation();_vm.showModal = false}}},[_c('div',{staticClass:\"message-modal-header\"},[_c('button',{staticClass:\"button button-close\",on:{\"click\":function($event){$event.preventDefault();_vm.showModal = false}}},[_vm._v(\" ✕ \")])]),_c('div',{staticClass:\"message-modal-content\"},[_c('div',{staticStyle:{\"padding-bottom\":\"12px\"},domProps:{\"innerHTML\":_vm._s(_vm.overlayModalData.content)}}),_c('div',{staticStyle:{\"text-align\":\"center\"}},[(_vm.overlayModalData.external_url)?_c('a',{staticClass:\"button\",attrs:{\"href\":_vm.overlayModalData.external_url,\"target\":\"_blank\"},domProps:{\"innerHTML\":_vm._s(_vm.overlayModalData.external_label)},on:{\"click\":function($event){$event.stopPropagation();}}}):_vm._e()])])]):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overlay-message-modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overlay-message-modal.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overlay-message-modal.vue?vue&type=style&index=0&id=ddf031da&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overlay-message-modal.vue?vue&type=style&index=0&id=ddf031da&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./overlay-message-modal.vue?vue&type=template&id=ddf031da&scoped=true&\"\nimport script from \"./overlay-message-modal.vue?vue&type=script&lang=js&\"\nexport * from \"./overlay-message-modal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./overlay-message-modal.vue?vue&type=style&index=0&id=ddf031da&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ddf031da\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ui-full\",staticStyle:{\"user-select\":\"none\"},attrs:{\"onselectstart\":\"return false\"}},[(_vm.telopEnabled)?_c('div',{staticClass:\"telop-wrapper\"},[(_vm.parentPlaceTelopText)?_c('telop',[_vm._v(_vm._s(_vm.parentPlaceTelopText))]):_vm._e(),(_vm.itemTelopText)?_c('telop',{attrs:{\"speed\":_vm.itemTelopSpeed}},[_vm._v(_vm._s(_vm.itemTelopText))]):_vm._e()],1):_vm._e(),_c('keep-alive',[(_vm.displayingThumbnailList == 'Items')?_c('item-thumbnails'):_vm._e(),(_vm.displayingThumbnailList == 'Points')?_c('point-thumbnails'):_vm._e()],1),_c('title-bar'),_c('bottom-bar'),(_vm.panoramaZoomActive)?_c('panorama-zoom'):_vm._e(),_c('map-view',{style:(_vm.mapViewStyle)}),_c('div',{staticClass:\"panorama-header\",style:(_vm.panoramaHeaderStyle)},[_c('excuse-text'),_c('overlay-message-modal')],1),(_vm.videoControlsActive)?_c('video-controls'):_vm._e(),(_vm.videoSpeedMenuActive)?_c('video-speed-menu'):_vm._e(),(_vm.moreMenuActive)?_c('more-menu'):_vm._e(),(_vm.infoModalActive)?_c('info-modal'):_vm._e(),(_vm.imageQualityModalActive)?_c('image-quality-modal'):_vm._e(),(_vm.airtagInformationActive)?_c('airtag-information'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-full.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-full.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-full.vue?vue&type=style&index=0&id=2f316488&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-full.vue?vue&type=style&index=0&id=2f316488&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ui-full.vue?vue&type=template&id=2f316488&scoped=true&\"\nimport script from \"./ui-full.vue?vue&type=script&lang=js&\"\nexport * from \"./ui-full.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ui-full.vue?vue&type=style&index=0&id=2f316488&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f316488\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ui-minimal\"},[(_vm.telopEnabled)?_c('div',{staticClass:\"telop-wrapper\"},[(_vm.parentPlaceTelopText)?_c('telop',[_vm._v(_vm._s(_vm.parentPlaceTelopText))]):_vm._e(),(_vm.itemTelopText)?_c('telop',{attrs:{\"speed\":_vm.itemTelopSpeed}},[_vm._v(_vm._s(_vm.itemTelopText))]):_vm._e()],1):_vm._e(),_c('excuse-text',{style:(_vm.excuseTextStyle)}),_c('div',{staticClass:\"ui-minimal-icons-area\",on:{\"click\":function($event){return _vm.$emit('showControls')}}},[(!_vm.settings.hideControls && _vm.fullscreenEnabled)?_c('div',{staticClass:\"icon-frame\",on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleFullscreen.apply(null, arguments)}}},[_c('div',{staticClass:\"icon\"},[_c('svg-colored-icon',{attrs:{\"src\":_vm.fullscreen ? _vm.theme.icons.fullscreenOff : _vm.theme.icons.fullscreenOn,\"color\":_vm.theme.vrModeColor}})],1)]):_vm._e(),(!_vm.settings.hideControls)?_c('div',{staticClass:\"icon-frame\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('showControls')}}},[_c('div',{staticClass:\"icon\"},[_c('svg-colored-icon',{attrs:{\"src\":_vm.theme.icons.controlsShow,\"color\":_vm.theme.vrModeColor}})],1)]):_vm._e()]),(_vm.airtagInformationActive)?_c('airtag-information'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-minimal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-minimal.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-minimal.vue?vue&type=style&index=0&id=4c7a8569&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-minimal.vue?vue&type=style&index=0&id=4c7a8569&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ui-minimal.vue?vue&type=template&id=4c7a8569&scoped=true&\"\nimport script from \"./ui-minimal.vue?vue&type=script&lang=js&\"\nexport * from \"./ui-minimal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ui-minimal.vue?vue&type=style&index=0&id=4c7a8569&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c7a8569\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-vr.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-vr.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ui-vr\"},[_c('excuse-text'),_c('div',{staticClass:\"ui-vr-menu\",style:(_vm.vrMenuStyle),on:{\"click\":_vm.toggoleMenu}},[(_vm.isMenu)?[_c('div',{staticClass:\"button-exit-vr-frame\",on:{\"click\":function($event){return _vm.setVrMode(false)}}},[_c('div',{staticClass:\"button-exit-vr\"},[_c('svg-colored-icon',{staticClass:\"button-right\",attrs:{\"src\":_vm.theme.icons.vrExit,\"color\":_vm.theme.vrModeColor}})],1),_c('div',{staticClass:\"button-exit-vr-text\"},[_vm._v(\" VRモードを終了します \")])]),(_vm.fullscreenEnabled)?[_c('div',{staticClass:\"toggle-fullscreen-frame\",on:{\"click\":_vm.toggleFullscreen}},[_c('div',{staticClass:\"toggle-fullscreen\"},[(!_vm.fullscreen)?_c('svg-colored-icon',{attrs:{\"src\":_vm.theme.icons.fullscreenOn,\"color\":_vm.theme.vrModeColor}}):_c('svg-colored-icon',{attrs:{\"src\":_vm.theme.icons.fullscreenOff,\"color\":_vm.theme.vrModeColor}})],1)])]:_vm._e()]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-vr.vue?vue&type=style&index=0&id=677d92be&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ui-vr.vue?vue&type=style&index=0&id=677d92be&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ui-vr.vue?vue&type=template&id=677d92be&scoped=true&\"\nimport script from \"./ui-vr.vue?vue&type=script&lang=js&\"\nexport * from \"./ui-vr.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ui-vr.vue?vue&type=style&index=0&id=677d92be&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"677d92be\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./passcode.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./passcode.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"active\"},[_c('div',{staticClass:\"message\"},[_vm._v(\" パスコードの入力後、自動的にパノラマが表示されます。 \"),_c('div',[_c('vue-fake-input',{attrs:{\"length\":6,\"allow-paste\":true,\"only-number\":true,\"inputColor\":_vm.inputColor},on:{\"input\":function($event){return _vm.check()}},model:{value:(_vm.passcode),callback:function ($$v) {_vm.passcode=$$v},expression:\"passcode\"}}),(_vm.error)?_c('div',[_vm._v(\" パスコードが正しくありません。 \")]):_vm._e()],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./passcode.vue?vue&type=template&id=3185305f&\"\nimport script from \"./passcode.vue?vue&type=script&lang=js&\"\nexport * from \"./passcode.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"panorama\"}},[_c('item-view',{on:{\"tap\":function($event){_vm.showControls = !_vm.showControls}}}),_c('loading'),(_vm.hasDeviceMotionOptInFeature)?_c('div',{staticClass:\"motion-permission-overlay\"},[_c('div',{staticClass:\"motion-permission-modal-wrapper\"},[_vm._m(0),_c('button',{staticClass:\"button\",style:({ backgroundColor: _vm.theme.color1 }),on:{\"click\":_vm.requestMotionPermission}},[_vm._v(\" OK \")])])]):_vm._e(),(_vm.ready)?_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.uiComponent == 'full')?_c('ui-full',{attrs:{\"id\":\"ui\"},on:{\"hideControls\":function($event){_vm.showControls = false}}}):_vm._e(),(_vm.uiComponent == 'minimal')?_c('ui-minimal',{attrs:{\"id\":\"ui\"},on:{\"showControls\":function($event){_vm.showControls = true}}}):_vm._e(),(_vm.uiComponent == 'vr')?_c('ui-vr',{attrs:{\"id\":\"ui\"}}):_vm._e()],1):_vm._e(),((_vm.vrMode || _vm.gyroRotation) && _vm.deviceMotionDenied)?_c('div',{staticClass:\"motion-denied-message-overlay\",style:([_vm.uiComponent == 'minimal' || _vm.uiComponent == 'vr' ? { top: '0px' } : { top: '45px'}])},[_vm._m(1)]):_vm._e(),_c('error-message'),(_vm.waitPasscode)?_c('passcode',{attrs:{\"id\":\"passcode-lock\",\"hashed\":_vm.settings.passCodeHash},on:{\"done\":_vm.showPanorama}}):_vm._e()],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"message-text\"},[_vm._v(\" 次の画面で許可ボタンを\"),_c('br'),_vm._v(\"押すと端末の向いている\"),_c('br'),_vm._v(\"方向が見えます。 \")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"overlay-text\"},[_vm._v(\" 「動作と方向へのアクセス」が有効になっておりませんので、\"),_c('br'),_vm._v(\" 使用できません。ブラウザを再起動してください。 \")])\n}]\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama.vue?vue&type=style&index=0&id=517153b0&prod&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama.vue?vue&type=style&index=0&id=517153b0&prod&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama.vue?vue&type=style&index=1&id=517153b0&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-2.use[2]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./panorama.vue?vue&type=style&index=1&id=517153b0&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./panorama.vue?vue&type=template&id=517153b0&scoped=true&\"\nimport script from \"./panorama.vue?vue&type=script&lang=js&\"\nexport * from \"./panorama.vue?vue&type=script&lang=js&\"\nimport style0 from \"./panorama.vue?vue&type=style&index=0&id=517153b0&prod&lang=css&\"\nimport style1 from \"./panorama.vue?vue&type=style&index=1&id=517153b0&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"517153b0\",\n null\n \n)\n\nexport default component.exports","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!./embed.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!./embed.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import '~/setup/steps/styles'\nimport '~/setup/steps/expose'\nimport '~/setup/steps/logging'\nimport '~/setup/steps/error-handling'\nimport '~/setup/steps/request-client'\n\nimport DocumentReady from 'document-ready-promise'\nimport Vue from 'vue'\n\n// 本番環境以外ではVue devtoolsを有効\nVue.config.devtools = (process.env.RAILS_ENV ?? 'production') !== 'production'\n\nimport VueAddEventListener from 'vue-add-event-listener'\nVue.use(VueAddEventListener)\n\nimport { VueHammer } from 'vue2-hammer'\nVue.use(VueHammer)\n\nimport Vuex from 'vuex'\nVue.use(Vuex)\n\nimport { createPinia, PiniaVuePlugin } from 'pinia'\nVue.use(PiniaVuePlugin)\nconst pinia = createPinia()\n\nconst store = new Vuex.Store({\n strict: process.env.NODE_ENV !== 'production'\n})\nNurve.$store = store\n\nimport contexts_module from '~/setup/store/contexts'\nstore.registerModule('contexts', contexts_module)\n\nimport panorama_module from '~/panoramas/store'\nstore.registerModule('panorama', panorama_module)\n\nimport createLogger from '~/common/logger/logger-factory'\nwindow.logger = createLogger()\n\nimport RootComponent from '~/panoramas/components/panorama'\nimport createPanoramaSettings from '~/panoramas/store/settings'\n\nimport './embed.scss'\n\nPromise.all([DocumentReady(), store.dispatch('contexts/fetch')]).then(() => {\n const settings = createPanoramaSettings(store.state.contexts.url, gon.panoramaParams)\n store.commit('panorama/setSettings', settings)\n\n // loadingを削除\n document.querySelector('#c')?.classList?.remove('loading')\n\n new Vue({\n el: '#c',\n store: store,\n pinia: pinia,\n render: h => h(RootComponent, {\n props: {\n atbbUserId: settings.atbbUserId || '',\n pathPanorama: settings.pathPanorama,\n viewMode: settings.viewMode\n }\n })\n })\n})","import { boolean } from 'boolean'\n\nfunction initialImageQuality(quality, defaultValue) {\n const valid_qualities = ['low', 'middle', 'high', 'highest', 'original']\n\n return valid_qualities.includes(quality) ? quality : defaultValue\n}\n\nexport default (url, params) => {\n return {\n fullscreenEnable: boolean(params.fullscreen_enable),\n vreffectEnable: boolean(params.vreffect_enable),\n gyroRotationEnable: boolean(params.gyro_rotation_enable),\n eyeControlEnable: boolean(params.eye_control_enable),\n menuOpen: boolean(params.menu_open),\n itemThumbsOpen: boolean(params.item_thumbs_open),\n drawLine: boolean(params.draw_line),\n drawRadar: boolean(params.draw_radar),\n drawWalkThrough: boolean(params.draw_walkthrough),\n autoRotation: boolean(params.auto_rotation),\n videoRepeat: boolean(params.video_repeat),\n imageQuality: initialImageQuality(url.query.quality || url.query.q || params.image_quality, 'high'),\n imageQualityModal: boolean(params.image_quality_modal),\n hideControls: boolean(url.query.hide_controls, false),\n hideAnnotation: boolean(url.query.hide_annotation, false),\n firstPointId: parseInt(url.query.point_id) || null,\n\n // VRモードで実行するURLパラメータはvr_mode=trueとview_mode=vrである\n startVrMode: url.query.vr_mode || url.query.view_mode === 'vr',\n\n // ジャイロモードで実行するURLパラメータはview_mode=gyroである\n startGyroMode: url.query.view_mode === 'gyro',\n\n pathPanorama: params.path_panorama,\n atbbUserId: params.atbb_user_id,\n passCodeHash: params.pass_code_hash,\n videoPlaybackAutomatically: params.video_playback_automatically\n }\n}\n","import * as THREE from 'three'\n\nconst createTemporaryPosition = index => {\n const POINTS_PER_ROW = 10\n const MAX_ROW_COUNTS = 3\n const REGION_HEIGHT_FOR_POSITIONLESS = 0.3\n\n const col = index % POINTS_PER_ROW\n const row = Math.floor(index / POINTS_PER_ROW)\n\n const x = (col + 1) / (POINTS_PER_ROW + 1)\n const y = (row + 1) * REGION_HEIGHT_FOR_POSITIONLESS / (MAX_ROW_COUNTS + 1)\n\n return { x: x, y: y }\n}\n\nexport const convertPoints = (points, mapDirection) => {\n let temporary_position_count = 0\n return points.map(point => {\n let position = { x: point.x, y: point.y }\n if (position.x == -1 && position.y == -1) {\n position = createTemporaryPosition(temporary_position_count++)\n }\n\n point.direction = (point.items[0]?.direction || 0)\n return {\n ...point,\n items: point.items.map(i => convertItem(i, point.direction)),\n viewPosition: position,\n sight_direction: point.direction,\n sight_updown: 0\n }\n })\n}\n\nconst convertItem = (item, pointDirection) => {\n item.direction = normalizeDegree(item.direction - pointDirection)\n return item\n}\n\nexport const convertLines = (lines) => {\n return lines.map(line => {\n return { point1Id: line.point1_id, point2Id: line.point2_id }\n })\n}\n\nexport const normalizeDegree = value => {\n return THREE.MathUtils.euclideanModulo(value, 360)\n}\n\nexport const normalizeDegree180 = value => {\n return normalizeDegree(value + 180) - 180\n}\n","/*\r\n Copyright (c) 2012 Nevins Bartolomeo <nevins.bartolomeo@gmail.com>\r\n Copyright (c) 2012 Shane Girish <shaneGirish@gmail.com>\r\n Copyright (c) 2014 Daniel Wirtz <dcode@dcode.io>\r\n\r\n Redistribution and use in source and binary forms, with or without\r\n modification, are permitted provided that the following conditions\r\n are met:\r\n 1. Redistributions of source code must retain the above copyright\r\n notice, this list of conditions and the following disclaimer.\r\n 2. Redistributions in binary form must reproduce the above copyright\r\n notice, this list of conditions and the following disclaimer in the\r\n documentation and/or other materials provided with the distribution.\r\n 3. The name of the author may not be used to endorse or promote products\r\n derived from this software without specific prior written permission.\r\n\r\n THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r\n IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r\n OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r\n IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r\n NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\n\r\n/**\r\n * @license bcrypt.js (c) 2013 Daniel Wirtz <dcode@dcode.io>\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bcrypt.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (typeof define === 'function' && define[\"amd\"])\r\n define([], factory);\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module[\"exports\"] = factory();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"bcrypt\"] = factory();\r\n\r\n}(this, function() {\r\n \"use strict\";\r\n\r\n /**\r\n * bcrypt namespace.\r\n * @type {Object.<string,*>}\r\n */\r\n var bcrypt = {};\r\n\r\n /**\r\n * The random implementation to use as a fallback.\r\n * @type {?function(number):!Array.<number>}\r\n * @inner\r\n */\r\n var randomFallback = null;\r\n\r\n /**\r\n * Generates cryptographically secure random bytes.\r\n * @function\r\n * @param {number} len Bytes length\r\n * @returns {!Array.<number>} Random bytes\r\n * @throws {Error} If no random implementation is available\r\n * @inner\r\n */\r\n function random(len) {\r\n /* node */ if (typeof module !== 'undefined' && module && module['exports'])\r\n try {\r\n return require(\"crypto\")['randomBytes'](len);\r\n } catch (e) {}\r\n /* WCA */ try {\r\n var a; (self['crypto']||self['msCrypto'])['getRandomValues'](a = new Uint32Array(len));\r\n return Array.prototype.slice.call(a);\r\n } catch (e) {}\r\n /* fallback */ if (!randomFallback)\r\n throw Error(\"Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative\");\r\n return randomFallback(len);\r\n }\r\n\r\n // Test if any secure randomness source is available\r\n var randomAvailable = false;\r\n try {\r\n random(1);\r\n randomAvailable = true;\r\n } catch (e) {}\r\n\r\n // Default fallback, if any\r\n randomFallback = null;\r\n /**\r\n * Sets the pseudo random number generator to use as a fallback if neither node's `crypto` module nor the Web Crypto\r\n * API is available. Please note: It is highly important that the PRNG used is cryptographically secure and that it\r\n * is seeded properly!\r\n * @param {?function(number):!Array.<number>} random Function taking the number of bytes to generate as its\r\n * sole argument, returning the corresponding array of cryptographically secure random byte values.\r\n * @see http://nodejs.org/api/crypto.html\r\n * @see http://www.w3.org/TR/WebCryptoAPI/\r\n */\r\n bcrypt.setRandomFallback = function(random) {\r\n randomFallback = random;\r\n };\r\n\r\n /**\r\n * Synchronously generates a salt.\r\n * @param {number=} rounds Number of rounds to use, defaults to 10 if omitted\r\n * @param {number=} seed_length Not supported.\r\n * @returns {string} Resulting salt\r\n * @throws {Error} If a random fallback is required but not set\r\n * @expose\r\n */\r\n bcrypt.genSaltSync = function(rounds, seed_length) {\r\n rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS;\r\n if (typeof rounds !== 'number')\r\n throw Error(\"Illegal arguments: \"+(typeof rounds)+\", \"+(typeof seed_length));\r\n if (rounds < 4)\r\n rounds = 4;\r\n else if (rounds > 31)\r\n rounds = 31;\r\n var salt = [];\r\n salt.push(\"$2a$\");\r\n if (rounds < 10)\r\n salt.push(\"0\");\r\n salt.push(rounds.toString());\r\n salt.push('$');\r\n salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw\r\n return salt.join('');\r\n };\r\n\r\n /**\r\n * Asynchronously generates a salt.\r\n * @param {(number|function(Error, string=))=} rounds Number of rounds to use, defaults to 10 if omitted\r\n * @param {(number|function(Error, string=))=} seed_length Not supported.\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting salt\r\n * @returns {!Promise} If `callback` has been omitted\r\n * @throws {Error} If `callback` is present but not a function\r\n * @expose\r\n */\r\n bcrypt.genSalt = function(rounds, seed_length, callback) {\r\n if (typeof seed_length === 'function')\r\n callback = seed_length,\r\n seed_length = undefined; // Not supported.\r\n if (typeof rounds === 'function')\r\n callback = rounds,\r\n rounds = undefined;\r\n if (typeof rounds === 'undefined')\r\n rounds = GENSALT_DEFAULT_LOG2_ROUNDS;\r\n else if (typeof rounds !== 'number')\r\n throw Error(\"illegal arguments: \"+(typeof rounds));\r\n\r\n function _async(callback) {\r\n nextTick(function() { // Pretty thin, but salting is fast enough\r\n try {\r\n callback(null, bcrypt.genSaltSync(rounds));\r\n } catch (err) {\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n if (callback) {\r\n if (typeof callback !== 'function')\r\n throw Error(\"Illegal callback: \"+typeof(callback));\r\n _async(callback);\r\n } else\r\n return new Promise(function(resolve, reject) {\r\n _async(function(err, res) {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve(res);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Synchronously generates a hash for the given string.\r\n * @param {string} s String to hash\r\n * @param {(number|string)=} salt Salt length to generate or salt to use, default to 10\r\n * @returns {string} Resulting hash\r\n * @expose\r\n */\r\n bcrypt.hashSync = function(s, salt) {\r\n if (typeof salt === 'undefined')\r\n salt = GENSALT_DEFAULT_LOG2_ROUNDS;\r\n if (typeof salt === 'number')\r\n salt = bcrypt.genSaltSync(salt);\r\n if (typeof s !== 'string' || typeof salt !== 'string')\r\n throw Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof salt));\r\n return _hash(s, salt);\r\n };\r\n\r\n /**\r\n * Asynchronously generates a hash for the given string.\r\n * @param {string} s String to hash\r\n * @param {number|string} salt Salt length to generate or salt to use\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash\r\n * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed\r\n * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms.\r\n * @returns {!Promise} If `callback` has been omitted\r\n * @throws {Error} If `callback` is present but not a function\r\n * @expose\r\n */\r\n bcrypt.hash = function(s, salt, callback, progressCallback) {\r\n\r\n function _async(callback) {\r\n if (typeof s === 'string' && typeof salt === 'number')\r\n bcrypt.genSalt(salt, function(err, salt) {\r\n _hash(s, salt, callback, progressCallback);\r\n });\r\n else if (typeof s === 'string' && typeof salt === 'string')\r\n _hash(s, salt, callback, progressCallback);\r\n else\r\n nextTick(callback.bind(this, Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof salt))));\r\n }\r\n\r\n if (callback) {\r\n if (typeof callback !== 'function')\r\n throw Error(\"Illegal callback: \"+typeof(callback));\r\n _async(callback);\r\n } else\r\n return new Promise(function(resolve, reject) {\r\n _async(function(err, res) {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve(res);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Compares two strings of the same length in constant time.\r\n * @param {string} known Must be of the correct length\r\n * @param {string} unknown Must be the same length as `known`\r\n * @returns {boolean}\r\n * @inner\r\n */\r\n function safeStringCompare(known, unknown) {\r\n var right = 0,\r\n wrong = 0;\r\n for (var i=0, k=known.length; i<k; ++i) {\r\n if (known.charCodeAt(i) === unknown.charCodeAt(i))\r\n ++right;\r\n else\r\n ++wrong;\r\n }\r\n // Prevent removal of unused variables (never true, actually)\r\n if (right < 0)\r\n return false;\r\n return wrong === 0;\r\n }\r\n\r\n /**\r\n * Synchronously tests a string against a hash.\r\n * @param {string} s String to compare\r\n * @param {string} hash Hash to test against\r\n * @returns {boolean} true if matching, otherwise false\r\n * @throws {Error} If an argument is illegal\r\n * @expose\r\n */\r\n bcrypt.compareSync = function(s, hash) {\r\n if (typeof s !== \"string\" || typeof hash !== \"string\")\r\n throw Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof hash));\r\n if (hash.length !== 60)\r\n return false;\r\n return safeStringCompare(bcrypt.hashSync(s, hash.substr(0, hash.length-31)), hash);\r\n };\r\n\r\n /**\r\n * Asynchronously compares the given data against the given hash.\r\n * @param {string} s Data to compare\r\n * @param {string} hash Data to be compared to\r\n * @param {function(Error, boolean)=} callback Callback receiving the error, if any, otherwise the result\r\n * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed\r\n * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms.\r\n * @returns {!Promise} If `callback` has been omitted\r\n * @throws {Error} If `callback` is present but not a function\r\n * @expose\r\n */\r\n bcrypt.compare = function(s, hash, callback, progressCallback) {\r\n\r\n function _async(callback) {\r\n if (typeof s !== \"string\" || typeof hash !== \"string\") {\r\n nextTick(callback.bind(this, Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof hash))));\r\n return;\r\n }\r\n if (hash.length !== 60) {\r\n nextTick(callback.bind(this, null, false));\r\n return;\r\n }\r\n bcrypt.hash(s, hash.substr(0, 29), function(err, comp) {\r\n if (err)\r\n callback(err);\r\n else\r\n callback(null, safeStringCompare(comp, hash));\r\n }, progressCallback);\r\n }\r\n\r\n if (callback) {\r\n if (typeof callback !== 'function')\r\n throw Error(\"Illegal callback: \"+typeof(callback));\r\n _async(callback);\r\n } else\r\n return new Promise(function(resolve, reject) {\r\n _async(function(err, res) {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve(res);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Gets the number of rounds used to encrypt the specified hash.\r\n * @param {string} hash Hash to extract the used number of rounds from\r\n * @returns {number} Number of rounds used\r\n * @throws {Error} If `hash` is not a string\r\n * @expose\r\n */\r\n bcrypt.getRounds = function(hash) {\r\n if (typeof hash !== \"string\")\r\n throw Error(\"Illegal arguments: \"+(typeof hash));\r\n return parseInt(hash.split(\"$\")[2], 10);\r\n };\r\n\r\n /**\r\n * Gets the salt portion from a hash. Does not validate the hash.\r\n * @param {string} hash Hash to extract the salt from\r\n * @returns {string} Extracted salt part\r\n * @throws {Error} If `hash` is not a string or otherwise invalid\r\n * @expose\r\n */\r\n bcrypt.getSalt = function(hash) {\r\n if (typeof hash !== 'string')\r\n throw Error(\"Illegal arguments: \"+(typeof hash));\r\n if (hash.length !== 60)\r\n throw Error(\"Illegal hash length: \"+hash.length+\" != 60\");\r\n return hash.substring(0, 29);\r\n };\r\n\r\n /**\r\n * Continues with the callback on the next tick.\r\n * @function\r\n * @param {function(...[*])} callback Callback to execute\r\n * @inner\r\n */\r\n var nextTick = typeof process !== 'undefined' && process && typeof process.nextTick === 'function'\r\n ? (typeof setImmediate === 'function' ? setImmediate : process.nextTick)\r\n : setTimeout;\r\n\r\n /**\r\n * Converts a JavaScript string to UTF8 bytes.\r\n * @param {string} str String\r\n * @returns {!Array.<number>} UTF8 bytes\r\n * @inner\r\n */\r\n function stringToBytes(str) {\r\n var out = [],\r\n i = 0;\r\n utfx.encodeUTF16toUTF8(function() {\r\n if (i >= str.length) return null;\r\n return str.charCodeAt(i++);\r\n }, function(b) {\r\n out.push(b);\r\n });\r\n return out;\r\n }\r\n\r\n // A base64 implementation for the bcrypt algorithm. This is partly non-standard.\r\n\r\n /**\r\n * bcrypt's own non-standard base64 dictionary.\r\n * @type {!Array.<string>}\r\n * @const\r\n * @inner\r\n **/\r\n var BASE64_CODE = \"./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split('');\r\n\r\n /**\r\n * @type {!Array.<number>}\r\n * @const\r\n * @inner\r\n **/\r\n var BASE64_INDEX = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,\r\n 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1,\r\n -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\r\n 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 28, 29, 30,\r\n 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r\n 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1];\r\n\r\n /**\r\n * @type {!function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Encodes a byte array to base64 with up to len bytes of input.\r\n * @param {!Array.<number>} b Byte array\r\n * @param {number} len Maximum input length\r\n * @returns {string}\r\n * @inner\r\n */\r\n function base64_encode(b, len) {\r\n var off = 0,\r\n rs = [],\r\n c1, c2;\r\n if (len <= 0 || len > b.length)\r\n throw Error(\"Illegal len: \"+len);\r\n while (off < len) {\r\n c1 = b[off++] & 0xff;\r\n rs.push(BASE64_CODE[(c1 >> 2) & 0x3f]);\r\n c1 = (c1 & 0x03) << 4;\r\n if (off >= len) {\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n break;\r\n }\r\n c2 = b[off++] & 0xff;\r\n c1 |= (c2 >> 4) & 0x0f;\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n c1 = (c2 & 0x0f) << 2;\r\n if (off >= len) {\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n break;\r\n }\r\n c2 = b[off++] & 0xff;\r\n c1 |= (c2 >> 6) & 0x03;\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n rs.push(BASE64_CODE[c2 & 0x3f]);\r\n }\r\n return rs.join('');\r\n }\r\n\r\n /**\r\n * Decodes a base64 encoded string to up to len bytes of output.\r\n * @param {string} s String to decode\r\n * @param {number} len Maximum output length\r\n * @returns {!Array.<number>}\r\n * @inner\r\n */\r\n function base64_decode(s, len) {\r\n var off = 0,\r\n slen = s.length,\r\n olen = 0,\r\n rs = [],\r\n c1, c2, c3, c4, o, code;\r\n if (len <= 0)\r\n throw Error(\"Illegal len: \"+len);\r\n while (off < slen - 1 && olen < len) {\r\n code = s.charCodeAt(off++);\r\n c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n code = s.charCodeAt(off++);\r\n c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n if (c1 == -1 || c2 == -1)\r\n break;\r\n o = (c1 << 2) >>> 0;\r\n o |= (c2 & 0x30) >> 4;\r\n rs.push(stringFromCharCode(o));\r\n if (++olen >= len || off >= slen)\r\n break;\r\n code = s.charCodeAt(off++);\r\n c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n if (c3 == -1)\r\n break;\r\n o = ((c2 & 0x0f) << 4) >>> 0;\r\n o |= (c3 & 0x3c) >> 2;\r\n rs.push(stringFromCharCode(o));\r\n if (++olen >= len || off >= slen)\r\n break;\r\n code = s.charCodeAt(off++);\r\n c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n o = ((c3 & 0x03) << 6) >>> 0;\r\n o |= c4;\r\n rs.push(stringFromCharCode(o));\r\n ++olen;\r\n }\r\n var res = [];\r\n for (off = 0; off<olen; off++)\r\n res.push(rs[off].charCodeAt(0));\r\n return res;\r\n }\r\n\r\n /**\r\n * utfx-embeddable (c) 2014 Daniel Wirtz <dcode@dcode.io>\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.<string,*>}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += utfx.calculateCodePoint(cp);\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.<number>} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += utfx.calculateCodePoint(cp);\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n Date.now = Date.now || function() { return +new Date; };\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var BCRYPT_SALT_LEN = 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var GENSALT_DEFAULT_LOG2_ROUNDS = 10;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var BLOWFISH_NUM_ROUNDS = 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var MAX_EXECUTION_TIME = 100;\r\n\r\n /**\r\n * @type {Array.<number>}\r\n * @const\r\n * @inner\r\n */\r\n var P_ORIG = [\r\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822,\r\n 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377,\r\n 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5,\r\n 0xb5470917, 0x9216d5d9, 0x8979fb1b\r\n ];\r\n\r\n /**\r\n * @type {Array.<number>}\r\n * @const\r\n * @inner\r\n */\r\n var S_ORIG = [\r\n 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed,\r\n 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7,\r\n 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3,\r\n 0xf4933d7e, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,\r\n 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023,\r\n 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e,\r\n 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda,\r\n 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,\r\n 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af,\r\n 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6,\r\n 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381,\r\n 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,\r\n 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d,\r\n 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5,\r\n 0x0f6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a,\r\n 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,\r\n 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c,\r\n 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176,\r\n 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3,\r\n 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,\r\n 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724,\r\n 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b,\r\n 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd,\r\n 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,\r\n 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f,\r\n 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd,\r\n 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39,\r\n 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,\r\n 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df,\r\n 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760,\r\n 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e,\r\n 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,\r\n 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98,\r\n 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565,\r\n 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341,\r\n 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,\r\n 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0,\r\n 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64,\r\n 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191,\r\n 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,\r\n 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0,\r\n 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705,\r\n 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5,\r\n 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,\r\n 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b,\r\n 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f,\r\n 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968,\r\n 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,\r\n 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5,\r\n 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6,\r\n 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799,\r\n 0x6e85076a, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,\r\n 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71,\r\n 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29,\r\n 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6,\r\n 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,\r\n 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f,\r\n 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286,\r\n 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec,\r\n 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,\r\n 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9,\r\n 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc,\r\n 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e,\r\n 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,\r\n 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290,\r\n 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810,\r\n 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6,\r\n 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,\r\n 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847,\r\n 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451,\r\n 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6,\r\n 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,\r\n 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570,\r\n 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa,\r\n 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978,\r\n 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,\r\n 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708,\r\n 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883,\r\n 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185,\r\n 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,\r\n 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830,\r\n 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239,\r\n 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab,\r\n 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,\r\n 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19,\r\n 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77,\r\n 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1,\r\n 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,\r\n 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef,\r\n 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3,\r\n 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15,\r\n 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,\r\n 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2,\r\n 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492,\r\n 0x47848a0b, 0x5692b285, 0x095bbf00, 0xad19489d, 0x1462b174,\r\n 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,\r\n 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759,\r\n 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e,\r\n 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc,\r\n 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,\r\n 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465,\r\n 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a,\r\n 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68, 0x948140f7, 0xf64c261c,\r\n 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,\r\n 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e,\r\n 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af,\r\n 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0,\r\n 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,\r\n 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, 0x68dc1462,\r\n 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c,\r\n 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399,\r\n 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,\r\n 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74,\r\n 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397,\r\n 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7,\r\n 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,\r\n 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802,\r\n 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22,\r\n 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4,\r\n 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,\r\n 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2,\r\n 0x02e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1,\r\n 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c,\r\n 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,\r\n 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341,\r\n 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8,\r\n 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b,\r\n 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,\r\n 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88,\r\n 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979,\r\n 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc,\r\n 0x782ef11c, 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,\r\n 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659,\r\n 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f,\r\n 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8,\r\n 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,\r\n 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be,\r\n 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2,\r\n 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255,\r\n 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,\r\n 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1,\r\n 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09,\r\n 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025,\r\n 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,\r\n 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01,\r\n 0xa70683fa, 0xa002b5c4, 0x0de6d027, 0x9af88c27, 0x773f8641,\r\n 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa,\r\n 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,\r\n 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409,\r\n 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9,\r\n 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x08fca5b5, 0xd83d7cd3,\r\n 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,\r\n 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234,\r\n 0x92638212, 0x670efa8e, 0x406000e0, 0x3a39ce37, 0xd3faf5cf,\r\n 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740,\r\n 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,\r\n 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f,\r\n 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d,\r\n 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8,\r\n 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,\r\n 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba,\r\n 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1,\r\n 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69,\r\n 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,\r\n 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a,\r\n 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b,\r\n 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd,\r\n 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,\r\n 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4,\r\n 0x88f46dba, 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2,\r\n 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb,\r\n 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,\r\n 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751,\r\n 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce,\r\n 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369,\r\n 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,\r\n 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd,\r\n 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45,\r\n 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae,\r\n 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,\r\n 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08,\r\n 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d,\r\n 0x06b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x011a1d4b,\r\n 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,\r\n 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e,\r\n 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a,\r\n 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c,\r\n 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,\r\n 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, 0xfae59361,\r\n 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c,\r\n 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be,\r\n 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,\r\n 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d,\r\n 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891,\r\n 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5,\r\n 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,\r\n 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292,\r\n 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a,\r\n 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2,\r\n 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,\r\n 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c,\r\n 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8,\r\n 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4,\r\n 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,\r\n 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6\r\n ];\r\n\r\n /**\r\n * @type {Array.<number>}\r\n * @const\r\n * @inner\r\n */\r\n var C_ORIG = [\r\n 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944,\r\n 0x6f756274\r\n ];\r\n\r\n /**\r\n * @param {Array.<number>} lr\r\n * @param {number} off\r\n * @param {Array.<number>} P\r\n * @param {Array.<number>} S\r\n * @returns {Array.<number>}\r\n * @inner\r\n */\r\n function _encipher(lr, off, P, S) { // This is our bottleneck: 1714/1905 ticks / 90% - see profile.txt\r\n var n,\r\n l = lr[off],\r\n r = lr[off + 1];\r\n\r\n l ^= P[0];\r\n\r\n /*\r\n for (var i=0, k=BLOWFISH_NUM_ROUNDS-2; i<=k;)\r\n // Feistel substitution on left word\r\n n = S[l >>> 24],\r\n n += S[0x100 | ((l >> 16) & 0xff)],\r\n n ^= S[0x200 | ((l >> 8) & 0xff)],\r\n n += S[0x300 | (l & 0xff)],\r\n r ^= n ^ P[++i],\r\n // Feistel substitution on right word\r\n n = S[r >>> 24],\r\n n += S[0x100 | ((r >> 16) & 0xff)],\r\n n ^= S[0x200 | ((r >> 8) & 0xff)],\r\n n += S[0x300 | (r & 0xff)],\r\n l ^= n ^ P[++i];\r\n */\r\n\r\n //The following is an unrolled version of the above loop.\r\n //Iteration 0\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[1];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[2];\r\n //Iteration 1\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[3];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[4];\r\n //Iteration 2\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[5];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[6];\r\n //Iteration 3\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[7];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[8];\r\n //Iteration 4\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[9];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[10];\r\n //Iteration 5\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[11];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[12];\r\n //Iteration 6\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[13];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[14];\r\n //Iteration 7\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[15];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[16];\r\n\r\n lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1];\r\n lr[off + 1] = l;\r\n return lr;\r\n }\r\n\r\n /**\r\n * @param {Array.<number>} data\r\n * @param {number} offp\r\n * @returns {{key: number, offp: number}}\r\n * @inner\r\n */\r\n function _streamtoword(data, offp) {\r\n for (var i = 0, word = 0; i < 4; ++i)\r\n word = (word << 8) | (data[offp] & 0xff),\r\n offp = (offp + 1) % data.length;\r\n return { key: word, offp: offp };\r\n }\r\n\r\n /**\r\n * @param {Array.<number>} key\r\n * @param {Array.<number>} P\r\n * @param {Array.<number>} S\r\n * @inner\r\n */\r\n function _key(key, P, S) {\r\n var offset = 0,\r\n lr = [0, 0],\r\n plen = P.length,\r\n slen = S.length,\r\n sw;\r\n for (var i = 0; i < plen; i++)\r\n sw = _streamtoword(key, offset),\r\n offset = sw.offp,\r\n P[i] = P[i] ^ sw.key;\r\n for (i = 0; i < plen; i += 2)\r\n lr = _encipher(lr, 0, P, S),\r\n P[i] = lr[0],\r\n P[i + 1] = lr[1];\r\n for (i = 0; i < slen; i += 2)\r\n lr = _encipher(lr, 0, P, S),\r\n S[i] = lr[0],\r\n S[i + 1] = lr[1];\r\n }\r\n\r\n /**\r\n * Expensive key schedule Blowfish.\r\n * @param {Array.<number>} data\r\n * @param {Array.<number>} key\r\n * @param {Array.<number>} P\r\n * @param {Array.<number>} S\r\n * @inner\r\n */\r\n function _ekskey(data, key, P, S) {\r\n var offp = 0,\r\n lr = [0, 0],\r\n plen = P.length,\r\n slen = S.length,\r\n sw;\r\n for (var i = 0; i < plen; i++)\r\n sw = _streamtoword(key, offp),\r\n offp = sw.offp,\r\n P[i] = P[i] ^ sw.key;\r\n offp = 0;\r\n for (i = 0; i < plen; i += 2)\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[0] ^= sw.key,\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[1] ^= sw.key,\r\n lr = _encipher(lr, 0, P, S),\r\n P[i] = lr[0],\r\n P[i + 1] = lr[1];\r\n for (i = 0; i < slen; i += 2)\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[0] ^= sw.key,\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[1] ^= sw.key,\r\n lr = _encipher(lr, 0, P, S),\r\n S[i] = lr[0],\r\n S[i + 1] = lr[1];\r\n }\r\n\r\n /**\r\n * Internaly crypts a string.\r\n * @param {Array.<number>} b Bytes to crypt\r\n * @param {Array.<number>} salt Salt bytes to use\r\n * @param {number} rounds Number of rounds\r\n * @param {function(Error, Array.<number>=)=} callback Callback receiving the error, if any, and the resulting bytes. If\r\n * omitted, the operation will be performed synchronously.\r\n * @param {function(number)=} progressCallback Callback called with the current progress\r\n * @returns {!Array.<number>|undefined} Resulting bytes if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function _crypt(b, salt, rounds, callback, progressCallback) {\r\n var cdata = C_ORIG.slice(),\r\n clen = cdata.length,\r\n err;\r\n\r\n // Validate\r\n if (rounds < 4 || rounds > 31) {\r\n err = Error(\"Illegal number of rounds (4-31): \"+rounds);\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n if (salt.length !== BCRYPT_SALT_LEN) {\r\n err =Error(\"Illegal salt length: \"+salt.length+\" != \"+BCRYPT_SALT_LEN);\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n rounds = (1 << rounds) >>> 0;\r\n\r\n var P, S, i = 0, j;\r\n\r\n //Use typed arrays when available - huge speedup!\r\n if (Int32Array) {\r\n P = new Int32Array(P_ORIG);\r\n S = new Int32Array(S_ORIG);\r\n } else {\r\n P = P_ORIG.slice();\r\n S = S_ORIG.slice();\r\n }\r\n\r\n _ekskey(salt, b, P, S);\r\n\r\n /**\r\n * Calcualtes the next round.\r\n * @returns {Array.<number>|undefined} Resulting array if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function next() {\r\n if (progressCallback)\r\n progressCallback(i / rounds);\r\n if (i < rounds) {\r\n var start = Date.now();\r\n for (; i < rounds;) {\r\n i = i + 1;\r\n _key(b, P, S);\r\n _key(salt, P, S);\r\n if (Date.now() - start > MAX_EXECUTION_TIME)\r\n break;\r\n }\r\n } else {\r\n for (i = 0; i < 64; i++)\r\n for (j = 0; j < (clen >> 1); j++)\r\n _encipher(cdata, j << 1, P, S);\r\n var ret = [];\r\n for (i = 0; i < clen; i++)\r\n ret.push(((cdata[i] >> 24) & 0xff) >>> 0),\r\n ret.push(((cdata[i] >> 16) & 0xff) >>> 0),\r\n ret.push(((cdata[i] >> 8) & 0xff) >>> 0),\r\n ret.push((cdata[i] & 0xff) >>> 0);\r\n if (callback) {\r\n callback(null, ret);\r\n return;\r\n } else\r\n return ret;\r\n }\r\n if (callback)\r\n nextTick(next);\r\n }\r\n\r\n // Async\r\n if (typeof callback !== 'undefined') {\r\n next();\r\n\r\n // Sync\r\n } else {\r\n var res;\r\n while (true)\r\n if (typeof(res = next()) !== 'undefined')\r\n return res || [];\r\n }\r\n }\r\n\r\n /**\r\n * Internally hashes a string.\r\n * @param {string} s String to hash\r\n * @param {?string} salt Salt to use, actually never null\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash. If omitted,\r\n * hashing is perormed synchronously.\r\n * @param {function(number)=} progressCallback Callback called with the current progress\r\n * @returns {string|undefined} Resulting hash if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function _hash(s, salt, callback, progressCallback) {\r\n var err;\r\n if (typeof s !== 'string' || typeof salt !== 'string') {\r\n err = Error(\"Invalid string / salt: Not a string\");\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n }\r\n else\r\n throw err;\r\n }\r\n\r\n // Validate the salt\r\n var minor, offset;\r\n if (salt.charAt(0) !== '$' || salt.charAt(1) !== '2') {\r\n err = Error(\"Invalid salt version: \"+salt.substring(0,2));\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n }\r\n else\r\n throw err;\r\n }\r\n if (salt.charAt(2) === '$')\r\n minor = String.fromCharCode(0),\r\n offset = 3;\r\n else {\r\n minor = salt.charAt(2);\r\n if ((minor !== 'a' && minor !== 'b' && minor !== 'y') || salt.charAt(3) !== '$') {\r\n err = Error(\"Invalid salt revision: \"+salt.substring(2,4));\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n offset = 4;\r\n }\r\n\r\n // Extract number of rounds\r\n if (salt.charAt(offset + 2) > '$') {\r\n err = Error(\"Missing salt rounds\");\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10,\r\n r2 = parseInt(salt.substring(offset + 1, offset + 2), 10),\r\n rounds = r1 + r2,\r\n real_salt = salt.substring(offset + 3, offset + 25);\r\n s += minor >= 'a' ? \"\\x00\" : \"\";\r\n\r\n var passwordb = stringToBytes(s),\r\n saltb = base64_decode(real_salt, BCRYPT_SALT_LEN);\r\n\r\n /**\r\n * Finishes hashing.\r\n * @param {Array.<number>} bytes Byte array\r\n * @returns {string}\r\n * @inner\r\n */\r\n function finish(bytes) {\r\n var res = [];\r\n res.push(\"$2\");\r\n if (minor >= 'a')\r\n res.push(minor);\r\n res.push(\"$\");\r\n if (rounds < 10)\r\n res.push(\"0\");\r\n res.push(rounds.toString());\r\n res.push(\"$\");\r\n res.push(base64_encode(saltb, saltb.length));\r\n res.push(base64_encode(bytes, C_ORIG.length * 4 - 1));\r\n return res.join('');\r\n }\r\n\r\n // Sync\r\n if (typeof callback == 'undefined')\r\n return finish(_crypt(passwordb, saltb, rounds));\r\n\r\n // Async\r\n else {\r\n _crypt(passwordb, saltb, rounds, function(err, bytes) {\r\n if (err)\r\n callback(err, null);\r\n else\r\n callback(null, finish(bytes));\r\n }, progressCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Encodes a byte array to base64 with up to len bytes of input, using the custom bcrypt alphabet.\r\n * @function\r\n * @param {!Array.<number>} b Byte array\r\n * @param {number} len Maximum input length\r\n * @returns {string}\r\n * @expose\r\n */\r\n bcrypt.encodeBase64 = base64_encode;\r\n\r\n /**\r\n * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet.\r\n * @function\r\n * @param {string} s String to decode\r\n * @param {number} len Maximum output length\r\n * @returns {!Array.<number>}\r\n * @expose\r\n */\r\n bcrypt.decodeBase64 = base64_decode;\r\n\r\n return bcrypt;\r\n}));\r\n","const FOV_DEFAULT = 90\nconst FOV_MAX = 130\nconst FOV_MIN = 20\n\nexport { FOV_DEFAULT, FOV_MIN, FOV_MAX }\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.error[data-v-20a45214] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n}\\n.error-message[data-v-20a45214] {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n color: #fff;\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/error-message.vue\"],\"names\":[],\"mappings\":\";AAqBA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;AACA;AACA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;EACA,WAAA;EACA,kBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"error\\\" v-if=\\\"errorMessage\\\">\\n <div class=\\\"error-message\\\">\\n {{ errorMessage }}\\n </div>\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState } from 'vuex'\\n\\nexport default {\\n computed: {\\n ...mapState('panorama', [\\n 'errorMessage'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.error {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n}\\n.error-message {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n color: #fff;\\n text-align: center;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.wrap[data-v-779eb4ce] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-celestial-sphere-image.vue\"],\"names\":[],\"mappings\":\";AA2FA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition appear\\n @before-enter=\\\"beforeEnter\\\"\\n @enter=\\\"enter\\\"\\n @after-enter=\\\"afterEnter\\\"\\n @before-leave=\\\"beforeLeave\\\"\\n @leave=\\\"leave\\\"\\n @after-leave=\\\"afterLeave\\\"\\n :css=\\\"false\\\"\\n >\\n <div class=\\\"wrap\\\"\\n v-hammer:tap=\\\"$_onTap\\\"\\n v-hammer:panstart=\\\"$_onPanStart\\\"\\n v-hammer:pan=\\\"$_onPan\\\"\\n v-hammer:panend=\\\"$_onPanEnd\\\"\\n v-hammer:pinchstart=\\\"$_onPinchStart\\\"\\n v-hammer:pinch=\\\"$_onPinch\\\"\\n v-hammer:pinchend=\\\"$_onPinchEnd\\\"\\n :hammer-options.prop=\\\"{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}\\\"\\n >\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport * as THREE from 'three'\\nimport { mapState, mapGetters, mapMutations } from 'vuex'\\n\\nimport transition3d from './mixins/transition3d'\\nimport gesture from './mixins/gesture'\\n\\nimport ItemCelestialSphereImageObject from './item-celestial-sphere-image-object'\\nimport { useMediumStore } from '~/panoramas/stores/medium_store'\\n\\nexport default {\\n mixins: [ transition3d, gesture ],\\n\\n props: ['threeContext'],\\n\\n setup() {\\n const mediumStore = useMediumStore()\\n return {\\n mediumStore,\\n }\\n },\\n\\n data() {\\n return {\\n object: null\\n }\\n },\\n\\n computed: {\\n ...mapState('panorama', [\\n 'airtagInformationActive'\\n ]),\\n ...mapGetters('panorama', [\\n 'itemComponentInfo',\\n 'itemBrightness'\\n ])\\n },\\n\\n watch: {\\n airtagInformationActive () {\\n this.setIgnoreAutoRotation(this.airtagInformationActive)\\n }\\n },\\n\\n methods: {\\n ...mapMutations('panorama', [\\n 'setIgnoreAutoRotation',\\n ]),\\n\\n // transition3d(-base) から呼び出す。\\n dispose () {\\n this.threeContext.removeItemObject(this.object.inner)\\n this.object.dispose()\\n }\\n },\\n\\n created () {\\n this.object = new ItemCelestialSphereImageObject(this.$store, this.itemComponentInfo)\\n this.object.setBrightness(this.itemBrightness)\\n\\n this.threeContext.addItemObject(this.object.inner)\\n this.mediumStore.hlsActive = false\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.wrap {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.item-celestial-sphere-video[data-v-3fe794cb] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.video[data-v-3fe794cb] {\\n position: fixed;\\n top: 100%;\\n left: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-celestial-sphere-video.vue\"],\"names\":[],\"mappings\":\";AAkIA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;AACA;AACA;EACA,eAAA;EACA,SAAA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition appear\\n @before-enter=\\\"beforeEnter\\\"\\n @enter=\\\"enter\\\"\\n @after-enter=\\\"afterEnter\\\"\\n @before-leave=\\\"beforeLeave\\\"\\n @leave=\\\"leave\\\"\\n @after-leave=\\\"afterLeave\\\"\\n :css=\\\"false\\\"\\n >\\n <div class=\\\"item-celestial-sphere-video\\\"\\n v-hammer:tap=\\\"$_onTap\\\"\\n v-hammer:panstart=\\\"$_onPanStart\\\"\\n v-hammer:pan=\\\"$_onPan\\\"\\n v-hammer:panend=\\\"$_onPanEnd\\\"\\n v-hammer:pinchstart=\\\"$_onPinchStart\\\"\\n v-hammer:pinch=\\\"$_onPinch\\\"\\n v-hammer:pinchend=\\\"$_onPinchEnd\\\"\\n :hammer-options.prop=\\\"{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}\\\"\\n >\\n <div class=\\\"video\\\" />\\n <video-overlay\\n :overlay-video-play-button=\\\"overlayVideoPlayButton\\\"\\n :overlay-video-replay-button=\\\"overlayVideoReplayButton\\\"\\n @playVideo=\\\"playVideo\\\"\\n />\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters } from 'vuex'\\n\\nimport transition3d from './mixins/transition3d'\\nimport gesture from './mixins/gesture'\\nimport videoPlayer from './mixins/video-player'\\n\\nimport VideoOverlay from './video-overlay'\\n\\nimport ItemCelestialSphereVideoObject from './item-celestial-sphere-video-object'\\nimport CompositeDisposable from '~/shared/disposables/composite_disposable'\\nimport MediumElementFactory from '~/shared/medium_element_factory'\\nimport { useMediumStore } from '~/panoramas/stores/medium_store'\\n\\nexport default {\\n mixins: [ transition3d, gesture, videoPlayer ],\\n components: { VideoOverlay },\\n\\n props: ['threeContext'],\\n\\n setup() {\\n const mediumStore = useMediumStore()\\n return {\\n mediumStore,\\n }\\n },\\n\\n data () {\\n return {\\n object: null,\\n restoreVideoPlaying: false\\n }\\n },\\n\\n computed: {\\n video: {\\n cache: false,\\n get() {\\n return this.object.video\\n }\\n },\\n ...mapState('panorama', [\\n 'airtagInformationActive',\\n 'videoPlaying',\\n 'videoCurrentTime'\\n ]),\\n ...mapGetters('panorama', [\\n 'itemComponentInfo',\\n 'itemBrightness'\\n ])\\n },\\n\\n watch: {\\n airtagInformationActive () {\\n if (this.airtagInformationActive) {\\n this.restoreVideoPlaying = this.videoPlaying\\n this.pauseVideo()\\n } else {\\n if (this.restoreVideoPlaying) {\\n this.playVideo()\\n }\\n }\\n },\\n\\n videoCurrentTime () {\\n this.object.updateShowByTimeAirtags(this.videoCurrentTime)\\n }\\n },\\n\\n methods: {\\n // transition3d(-base) から呼び出す。\\n dispose () {\\n this.threeContext.removeItemObject(this.object.inner)\\n this.object.dispose()\\n }\\n },\\n\\n created() {\\n const videoObject = new ItemCelestialSphereVideoObject(this.$store, this.itemComponentInfo)\\n this.object = videoObject\\n this.disposables ??= new CompositeDisposable()\\n const hlsVideo = videoObject.videoTextureCache.hlsVideo\\n this.mediumStore.hlsActive = Boolean(hlsVideo)\\n if (hlsVideo) {\\n hlsVideo.promiseManifestParsed.then((data) => {\\n this.disposables.add(MediumElementFactory.setupLevelHandling(data, hlsVideo))\\n })\\n }\\n this.object.setBrightness(this.itemBrightness)\\n\\n this.threeContext.addItemObject(this.object.inner)\\n },\\n\\n destroyed() {\\n this.disposables.dispose()\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.item-celestial-sphere-video {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.video {\\n position: fixed;\\n top: 100%;\\n left: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#item-empty[data-v-bc6da550] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-empty.vue\"],\"names\":[],\"mappings\":\";AAyBA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div id=\\\"item-empty\\\" v-hammer:tap=\\\"onTap\\\" />\\n</template>\\n\\n<script>\\nimport { mapMutations } from 'vuex'\\n\\nexport default {\\n methods: {\\n onTap(e) {\\n this.$emit('tap', e)\\n },\\n\\n ...mapMutations('panorama', [\\n 'setPanoramaZoomEnabled',\\n ])\\n },\\n\\n mounted () {\\n this.setPanoramaZoomEnabled(false)\\n }\\n}\\n</script>\\n\\n<style scoped>\\n#item-empty {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.wrap[data-v-2121d532] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-fisheye-image.vue\"],\"names\":[],\"mappings\":\";AAyFA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition appear\\n @before-enter=\\\"beforeEnter\\\"\\n @enter=\\\"enter\\\"\\n @after-enter=\\\"afterEnter\\\"\\n @before-leave=\\\"beforeLeave\\\"\\n @leave=\\\"leave\\\"\\n @after-leave=\\\"afterLeave\\\"\\n :css=\\\"false\\\"\\n >\\n <div class=\\\"wrap\\\"\\n v-hammer:tap=\\\"$_onTap\\\"\\n v-hammer:panstart=\\\"$_onPanStart\\\"\\n v-hammer:pan=\\\"$_onPan\\\"\\n v-hammer:panend=\\\"$_onPanEnd\\\"\\n v-hammer:pinchstart=\\\"$_onPinchStart\\\"\\n v-hammer:pinch=\\\"$_onPinch\\\"\\n v-hammer:pinchend=\\\"$_onPinchEnd\\\"\\n :hammer-options.prop=\\\"{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}\\\"\\n >\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters, mapMutations } from 'vuex'\\n\\nimport transition3d from './mixins/transition3d'\\nimport gesture from './mixins/gesture'\\n\\nimport ItemFisheyeImageObject from './item-fisheye-image-object'\\nimport { useMediumStore } from '~/panoramas/stores/medium_store';\\n\\nexport default {\\n mixins: [ transition3d, gesture ],\\n\\n props: ['threeContext'],\\n\\n setup() {\\n const mediumStore = useMediumStore()\\n return {\\n mediumStore,\\n }\\n },\\n\\n data() {\\n return {\\n object: null\\n }\\n },\\n\\n computed: {\\n ...mapState('panorama', [\\n 'airtagInformationActive'\\n ]),\\n ...mapGetters('panorama', [\\n 'itemComponentInfo',\\n 'itemBrightness'\\n ])\\n },\\n\\n watch: {\\n airtagInformationActive () {\\n this.setIgnoreAutoRotation(this.airtagInformationActive)\\n }\\n },\\n\\n methods: {\\n ...mapMutations('panorama', [\\n 'setIgnoreAutoRotation',\\n ]),\\n\\n // transition3d(-base) から呼び出す。\\n dispose () {\\n this.threeContext.removeItemObject(this.object.inner)\\n this.object.dispose()\\n }\\n },\\n\\n created () {\\n this.object = new ItemFisheyeImageObject(this.$store, this.itemComponentInfo)\\n this.object.setBrightness(this.itemBrightness)\\n this.threeContext.addItemObject(this.object.inner)\\n this.mediumStore.hlsActive = false\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.wrap {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.item-celestial-sphere-video[data-v-3910d207] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.video[data-v-3910d207] {\\n position: fixed;\\n top: 100%;\\n left: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-fisheye-video.vue\"],\"names\":[],\"mappings\":\";AAmIA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;AACA;AACA;EACA,eAAA;EACA,SAAA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition appear\\n @before-enter=\\\"beforeEnter\\\"\\n @enter=\\\"enter\\\"\\n @after-enter=\\\"afterEnter\\\"\\n @before-leave=\\\"beforeLeave\\\"\\n @leave=\\\"leave\\\"\\n @after-leave=\\\"afterLeave\\\"\\n :css=\\\"false\\\"\\n >\\n <div class=\\\"item-celestial-sphere-video\\\"\\n v-hammer:tap=\\\"$_onTap\\\"\\n v-hammer:panstart=\\\"$_onPanStart\\\"\\n v-hammer:pan=\\\"$_onPan\\\"\\n v-hammer:panend=\\\"$_onPanEnd\\\"\\n v-hammer:pinchstart=\\\"$_onPinchStart\\\"\\n v-hammer:pinch=\\\"$_onPinch\\\"\\n v-hammer:pinchend=\\\"$_onPinchEnd\\\"\\n :hammer-options.prop=\\\"{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}\\\"\\n >\\n <div class=\\\"video\\\" />\\n <video-overlay\\n :overlay-video-play-button=\\\"overlayVideoPlayButton\\\"\\n :overlay-video-replay-button=\\\"overlayVideoReplayButton\\\"\\n @playVideo=\\\"playVideo\\\"\\n />\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters } from 'vuex'\\n\\nimport transition3d from './mixins/transition3d'\\nimport gesture from './mixins/gesture'\\nimport videoPlayer from './mixins/video-player'\\n\\nimport VideoOverlay from './video-overlay'\\n\\nimport ItemFisheyeVideoObject from './item-fisheye-video-object'\\nimport CompositeDisposable from '~/shared/disposables/composite_disposable'\\nimport MediumElementFactory from '~/shared/medium_element_factory'\\nimport { useMediumStore } from '~/panoramas/stores/medium_store'\\n\\nexport default {\\n mixins: [ transition3d, gesture, videoPlayer ],\\n components: { VideoOverlay },\\n\\n props: ['threeContext'],\\n\\n setup() {\\n const mediumStore = useMediumStore()\\n return {\\n mediumStore,\\n }\\n },\\n\\n data () {\\n return {\\n object: null,\\n restoreVideoPlaying: false\\n }\\n },\\n\\n computed: {\\n video: {\\n cache: false,\\n get() {\\n return this.object.video\\n }\\n },\\n\\n ...mapState('panorama', [\\n 'airtagInformationActive',\\n 'videoPlaying',\\n 'videoCurrentTime'\\n ]),\\n ...mapGetters('panorama', [\\n 'itemComponentInfo',\\n 'itemBrightness'\\n ])\\n },\\n\\n watch: {\\n airtagInformationActive () {\\n if (this.airtagInformationActive) {\\n this.restoreVideoPlaying = this.videoPlaying\\n this.pauseVideo()\\n } else {\\n if (this.restoreVideoPlaying) {\\n this.playVideo()\\n }\\n }\\n },\\n\\n videoCurrentTime () {\\n this.object.updateShowByTimeAirtags(this.videoCurrentTime)\\n }\\n },\\n\\n methods: {\\n // transition3d(-base) から呼び出す。\\n dispose () {\\n this.threeContext.removeItemObject(this.object.inner)\\n this.object.dispose()\\n }\\n },\\n\\n created () {\\n const videoObject = new ItemFisheyeVideoObject(this.$store, this.itemComponentInfo)\\n this.object = videoObject\\n this.disposables ??= new CompositeDisposable()\\n const hlsVideo = videoObject.videoTextureCache.hlsVideo\\n this.mediumStore.hlsActive = Boolean(hlsVideo)\\n if (hlsVideo) {\\n hlsVideo.promiseManifestParsed.then((data) => {\\n this.disposables.add(MediumElementFactory.setupLevelHandling(data, hlsVideo))\\n })\\n }\\n this.object.setBrightness(this.itemBrightness)\\n\\n this.threeContext.addItemObject(this.object.inner)\\n },\\n\\n destroyed() {\\n this.disposables.dispose()\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.item-celestial-sphere-video {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.video {\\n position: fixed;\\n top: 100%;\\n left: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.item-image[data-v-22a85052] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: center center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-image.vue\"],\"names\":[],\"mappings\":\";AAyDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,wBAAA;EACA,4BAAA;EACA,kCAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition appear\\n @before-enter=\\\"beforeEnter\\\"\\n @enter=\\\"enter\\\"\\n @after-enter=\\\"afterEnter\\\"\\n @before-leave=\\\"beforeLeave\\\"\\n @leave=\\\"leave\\\"\\n @after-leave=\\\"afterLeave\\\"\\n :css=\\\"false\\\"\\n >\\n <div class=\\\"item-image\\\" :style=\\\"style\\\" v-hammer:tap=\\\"onTap\\\" />\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapGetters } from 'vuex'\\n\\nimport transition2d from './mixins/transition2d'\\nimport { useMediumStore } from '~/panoramas/stores/medium_store';\\n\\nexport default {\\n mixins: [ transition2d ],\\n\\n setup() {\\n const mediumStore = useMediumStore()\\n return {\\n mediumStore,\\n }\\n },\\n\\n computed: {\\n ...mapGetters('panorama', [\\n 'itemComponentInfo',\\n 'itemBrightness'\\n ]),\\n style () {\\n return {\\n 'background-image': `url(\\\"${this.itemComponentInfo.img}\\\")`,\\n 'filter': `brightness(${this.itemBrightness})`\\n }\\n }\\n },\\n\\n methods: {\\n onTap(e) {\\n console.log('onTap')\\n this.$emit('tap', e)\\n }\\n },\\n\\n created() {\\n this.mediumStore.hlsActive = false\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.item-image {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: center center;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.item-swing-image[data-v-210e3ced] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-swing-image.vue\"],\"names\":[],\"mappings\":\";AAiMA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition appear\\n @before-enter=\\\"beforeEnter\\\"\\n @enter=\\\"enter\\\"\\n @after-enter=\\\"afterEnter\\\"\\n @before-leave=\\\"beforeLeave\\\"\\n @leave=\\\"leave\\\"\\n @after-leave=\\\"afterLeave\\\"\\n :css=\\\"false\\\"\\n >\\n <div class=\\\"item-swing-image\\\"\\n v-hammer:tap=\\\"onTap\\\" v-hammer:pan=\\\"onPan\\\" v-hammer:panstart=\\\"onPanStart\\\"\\n :hammer-options.prop=\\\"{pan: { direction: 'all', threshold: 0 }}\\\"\\n >\\n <img \\n ref=\\\"image\\\"\\n :src=\\\"itemComponentInfo.img\\\"\\n :style=\\\"imageStyle\\\"\\n @load=\\\"onLoad\\\"\\n @copy=\\\"onCopy($event)\\\"\\n />\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters, mapMutations } from 'vuex'\\nimport * as THREE from 'three'\\n\\nimport transition2d from './mixins/transition2d'\\nimport { useMediumStore } from '~/panoramas/stores/medium_store';\\n\\nexport default {\\n mixins: [ transition2d ],\\n\\n setup() {\\n const mediumStore = useMediumStore()\\n return {\\n mediumStore,\\n }\\n },\\n\\n data () {\\n return {\\n horizontal: true,\\n imageBoxWidth: 0,\\n imageBoxHeight: 0,\\n imageWidth: 0,\\n imageHeight: 0,\\n offsetX: 0,\\n offsetY: 0,\\n speedX: 0,\\n speedY: 0,\\n autoSwing: true\\n }\\n },\\n\\n computed: {\\n ...mapState('panorama', [\\n 'autoRotation'\\n ]),\\n ...mapGetters('panorama', [\\n 'itemComponentInfo',\\n 'itemBrightness'\\n ]),\\n imageStyle () {\\n const transform = `translate(${this.offsetX}px, ${this.offsetY}px)`\\n const filter = `brightness(${this.itemBrightness})`\\n const pointerEvents = 'none'\\n if (this.horizontal) {\\n return { height: '100%', transform, filter, pointerEvents}\\n } else {\\n return { width: '100%', transform, filter, pointerEvents}\\n }\\n },\\n diffWidth () {\\n return this.imageBoxWidth - this.imageWidth\\n },\\n minOffsetX () {\\n return this.diffWidth >= 0 ? this.diffWidth / 2 : this.diffWidth\\n },\\n maxOffsetX () {\\n return this.diffWidth >= 0 ? this.diffWidth / 2 : 0\\n },\\n diffHeight () {\\n return this.imageBoxHeight - this.imageHeight\\n },\\n minOffsetY () {\\n return this.diffHeight >= 0 ? this.diffHeight / 2 : this.diffHeight\\n },\\n maxOffsetY () {\\n return this.diffHeight >= 0 ? this.diffHeight / 2 : 0\\n },\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'setAutoRotation'\\n ]),\\n onLoad () {\\n this.horizontal = (this.$refs.image.naturalWidth >= this.$refs.image.naturalHeight)\\n this.$nextTick(() => {\\n this.updateSize()\\n if (this.horizontal) {\\n this.offsetX = this.diffWidth / 2\\n } else {\\n this.offsetY = this.diffHeight / 2\\n }\\n this.animate()\\n })\\n },\\n animate () {\\n if (this.$refs.image) {\\n this.updateSize()\\n if (this.autoRotation) {\\n this.updateOffset()\\n }\\n requestAnimationFrame(this.animate.bind(this))\\n }\\n },\\n updateSize () {\\n this.imageBoxWidth = this.$el.clientWidth\\n this.imageBoxHeight = this.$el.clientHeight\\n if (this.$refs.image) {\\n this.imageWidth = this.$refs.image.width\\n this.imageHeight = this.$refs.image.height\\n\\n // FIXME: diffWidth, diffHeight の計算はここでやるべきでは?\\n }\\n },\\n updateOffset () {\\n this.offsetX -= this.speedX\\n if (this.offsetX < this.minOffsetX || this.offsetX > this.maxOffsetX) {\\n this.speedX *= -1\\n }\\n this.offsetY -= this.speedY\\n if (this.offsetY < this.minOffsetY || this.offsetY > this.maxOffsetY) {\\n this.speedY *= -1\\n }\\n\\n this.offsetX = THREE.MathUtils.clamp(this.offsetX, this.minOffsetX, this.maxOffsetX)\\n this.offsetY = THREE.MathUtils.clamp(this.offsetY, this.minOffsetY, this.maxOffsetY)\\n },\\n\\n onTap(e) {\\n this.$emit('tap', e)\\n },\\n\\n onPanStart(e) {\\n this.setAutoRotation(false)\\n },\\n\\n onPan(e) {\\n this.offsetX += e.velocityX * 20\\n this.offsetY += e.velocityY * 20\\n\\n this.offsetX = THREE.MathUtils.clamp(this.offsetX, this.minOffsetX, this.maxOffsetX)\\n this.offsetY = THREE.MathUtils.clamp(this.offsetY, this.minOffsetY, this.maxOffsetY)\\n },\\n\\n onCopy(event) {\\n event.preventDefault()\\n },\\n },\\n\\n mounted () {\\n const speed = this.itemComponentInfo.cameraSpeed\\n switch (this.itemComponentInfo.cameraPan) {\\n case 'up': this.speedY = -speed; break\\n case 'down': this.speedY = speed; break\\n case 'left': this.speedX = -speed; break\\n case 'right': this.speedX = speed; break\\n }\\n\\n // 画像がドラッグできないようにする。\\n // FIXME: なんかダサい。他の方法ない?\\n this.$refs.image.addEventListener('dragstart', (e) => e.preventDefault())\\n\\n this.mediumStore.hlsActive = false\\n }\\n}\\n</script>\\n\\n<style scoped>\\n .item-swing-image {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n }\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.item-video[data-v-db055ed0] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n}\\n.video[data-v-db055ed0], .video[data-v-db055ed0] video {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-video.vue\"],\"names\":[],\"mappings\":\";AA2FA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;AACA;AACA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition appear\\n @before-enter=\\\"beforeEnter\\\"\\n @enter=\\\"enter\\\"\\n @after-enter=\\\"afterEnter\\\"\\n @before-leave=\\\"beforeLeave\\\"\\n @leave=\\\"leave\\\"\\n @after-leave=\\\"afterLeave\\\"\\n :css=\\\"false\\\"\\n >\\n <div class=\\\"item-video\\\" v-hammer:tap=\\\"onTap\\\">\\n <div class=\\\"video\\\" :style=\\\"style\\\" />\\n <video-overlay\\n :overlay-video-play-button=\\\"overlayVideoPlayButton\\\"\\n :overlay-video-replay-button=\\\"overlayVideoReplayButton\\\"\\n @playVideo=\\\"playVideo\\\"\\n />\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapGetters } from 'vuex'\\n\\nimport transition2d from './mixins/transition2d'\\nimport videoPlayer from './mixins/video-player'\\n\\nimport VideoOverlay from './video-overlay'\\nimport MediumCacheProvider from '~/panoramas/components/medium-cache-provider'\\nimport CompositeDisposable from '~/shared/disposables/composite_disposable'\\nimport MediumElementFactory from '~/shared/medium_element_factory'\\nimport { useMediumStore } from '~/panoramas/stores/medium_store'\\n\\nexport default {\\n setup() {\\n const mediumStore = useMediumStore()\\n return {\\n mediumStore,\\n }\\n },\\n\\n mixins: [ transition2d, videoPlayer ],\\n components: { VideoOverlay },\\n\\n computed: {\\n video() {\\n const item = this.itemComponentInfo\\n return MediumCacheProvider.getVideoCache(item.img).video\\n },\\n\\n style () {\\n return {\\n 'filter': `brightness(${this.itemBrightness})`\\n }\\n },\\n\\n ...mapGetters('panorama', [\\n 'itemBrightness'\\n ]),\\n },\\n\\n created() {\\n const item = this.itemComponentInfo\\n const videoObject = MediumCacheProvider.getVideoCache(item.img)\\n this.disposables ??= new CompositeDisposable()\\n const hlsVideo = videoObject.hlsVideo\\n this.mediumStore.hlsActive = Boolean(hlsVideo)\\n if (hlsVideo) {\\n hlsVideo.promiseManifestParsed.then((data) => {\\n this.disposables.add(MediumElementFactory.setupLevelHandling(data, hlsVideo))\\n })\\n }\\n },\\n\\n destroyed() {\\n this.disposables.dispose()\\n },\\n\\n methods: {\\n onTap(e) {\\n console.log('onTap')\\n if (e.target !== this.$el) {\\n return\\n }\\n this.$emit('tap', e)\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.item-video {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n}\\n.video, .video :deep(video) {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: none;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#item-view[data-v-6af92e8c] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/item-view.vue\"],\"names\":[],\"mappings\":\";AA+FA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div id=\\\"item-view\\\">\\n <div id=\\\"renderer\\\" :style=\\\"enableCssFilter ? style : ''\\\" />\\n <component\\n :is=\\\"itemComponent\\\"\\n :key=\\\"itemComponentInfo.key\\\"\\n :three-context=\\\"threeContext\\\"\\n @tap=\\\"$emit('tap', $event)\\\"\\n v-if=\\\"itemComponentInfo.id\\\"\\n />\\n </div>\\n</template>\\n\\n<script>\\nimport { mapGetters, mapMutations } from 'vuex'\\nimport ItemImage from './item-image'\\nimport ItemVideo from './item-video'\\nimport ItemCelestialSphereImage from './item-celestial-sphere-image'\\nimport ItemCelestialSphereVideo from './item-celestial-sphere-video'\\nimport ItemFisheyeImage from './item-fisheye-image'\\nimport ItemFisheyeVideo from './item-fisheye-video'\\nimport ItemSwingImage from './item-swing-image'\\nimport ItemEmpty from './item-empty'\\n\\nimport ThreeContext from './three-context'\\n\\nexport default {\\n components: {\\n ItemImage,\\n ItemVideo,\\n ItemCelestialSphereImage,\\n ItemCelestialSphereVideo,\\n ItemFisheyeImage,\\n ItemFisheyeVideo,\\n ItemSwingImage,\\n ItemEmpty\\n },\\n\\n data() {\\n return {\\n threeContext: new ThreeContext(this.$store)\\n }\\n },\\n\\n computed: {\\n ...mapGetters('panorama', [\\n 'itemComponentInfo',\\n 'isVideoFallback',\\n 'itemBrightness'\\n ]),\\n\\n itemComponent () {\\n if (this.isVideoFallback) {\\n return 'item-video'\\n }\\n switch (this.itemComponentInfo.type) {\\n case 'image': return 'item-image'\\n case 'video': return 'item-video'\\n case 'celestial_sphere_image': return 'item-celestial-sphere-image'\\n case 'celestial_sphere_video': return 'item-celestial-sphere-video'\\n case 'fisheye_250_image': return 'item-fisheye-image'\\n case 'fisheye_180_image': return 'item-fisheye-image'\\n case 'chipping_fisheye_image': return 'item-fisheye-image'\\n case 'fisheye_250_video': return 'item-fisheye-video'\\n case 'swing_image': return 'item-swing-image'\\n default: return 'item-empty'\\n }\\n },\\n\\n enableCssFilter () {\\n switch (this.itemComponentInfo.type) {\\n case 'celestial_sphere_image':\\n case 'celestial_sphere_video':\\n case 'fisheye_250_image':\\n case 'fisheye_180_image':\\n case 'chipping_fisheye_image':\\n case 'fisheye_250_video':\\n return false\\n default:\\n return true\\n }\\n },\\n\\n style () {\\n return { 'filter': `brightness(${this.itemBrightness})` }\\n }\\n },\\n\\n mounted () {\\n this.$el.querySelector('#renderer').appendChild(this.threeContext.canvas)\\n }\\n}\\n</script>\\n\\n<style scoped>\\n#item-view {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.overlay[data-v-948ad12a] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(255, 255, 255, 0.5);\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover;\\n}\\n.play-video-button[data-v-948ad12a], .replay-video-button[data-v-948ad12a] {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n color: #666;\\n text-align: center;\\n}\\nimg.play-video[data-v-948ad12a] {\\n width: 60px;\\n height: 60px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/item/video-overlay.vue\"],\"names\":[],\"mappings\":\";AAwCA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,0CAAA;EACA,2BAAA;EACA,4BAAA;EACA,sBAAA;AACA;AACA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;EACA,WAAA;EACA,kBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"overlay\\\"\\n @click=\\\"$emit('playVideo')\\\"\\n v-show=\\\"overlayVideoPlayButton || overlayVideoReplayButton\\\"\\n :style=\\\"overlayStyle\\\"\\n >\\n <div class=\\\"play-video-button\\\" v-if=\\\"overlayVideoPlayButton\\\">\\n <img class=\\\"play-video\\\" :src=\\\"theme.icons.overlayVideoPlay\\\">\\n <div>再生する</div>\\n </div>\\n <div class=\\\"replay-video-button\\\" v-if=\\\"overlayVideoReplayButton\\\">\\n <img class=\\\"play-video\\\" :src=\\\"theme.icons.overlayVideoPlay\\\">\\n <div>もう一度再生する</div>\\n </div>\\n </div>\\n</template>\\n\\n<script>\\nimport { mapGetters } from 'vuex'\\n\\nexport default {\\n props: [ 'overlayVideoPlayButton', 'overlayVideoReplayButton' ],\\n\\n computed: {\\n overlayStyle () {\\n if (! this.panoramaThumbUrl) return {}\\n\\n return {\\n 'background-image': `url(${this?.panoramaThumbUrl ?? ''})`,\\n }\\n },\\n ...mapGetters('panorama', [\\n 'theme',\\n 'panoramaThumbUrl',\\n ])\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.overlay {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(255, 255, 255, 0.5);\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover;\\n}\\n.play-video-button, .replay-video-button {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n color: #666;\\n text-align: center;\\n}\\nimg.play-video {\\n width: 60px;\\n height: 60px;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.loading[data-v-26d2eb91] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.2);\\n pointer-events: none;\\n}\\n.spin[data-v-26d2eb91] {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 80px;\\n height: 80px;\\n margin-top: -40px;\\n margin-left: -40px;\\n border: 3px solid #fff;\\n border-right-color: transparent;\\n border-radius: 50%;\\n animation: spin-26d2eb91 1s linear infinite;\\n}\\n@keyframes spin-26d2eb91 {\\n0% {\\n transform: rotate(0deg);\\n opacity: 0.2;\\n}\\n50% {\\n transform: rotate(180deg);\\n opacity: 1;\\n}\\n100% {\\n transform: rotate(360deg);\\n opacity: 0.2;\\n}\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/loading.vue\"],\"names\":[],\"mappings\":\";AAmBA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oCAAA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,+BAAA;EACA,kBAAA;EACA,2CAAA;AACA;AACA;AACA;IACA,uBAAA;IACA,YAAA;AACA;AACA;IACA,yBAAA;IACA,UAAA;AACA;AACA;IACA,yBAAA;IACA,YAAA;AACA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"loading\\\" v-if=\\\"loading\\\">\\n <div class=\\\"spin\\\" />\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState } from 'vuex'\\n\\nexport default {\\n computed: {\\n ...mapState('panorama', [\\n 'loading'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.loading {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.2);\\n pointer-events: none;\\n}\\n.spin {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 80px;\\n height: 80px;\\n margin-top: -40px;\\n margin-left: -40px;\\n border: 3px solid #fff;\\n border-right-color: transparent;\\n border-radius: 50%;\\n animation: spin 1s linear infinite;\\n}\\n@keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n opacity: 0.2;\\n }\\n 50% {\\n transform: rotate(180deg);\\n opacity: 1;\\n }\\n 100% {\\n transform: rotate(360deg);\\n opacity: 0.2;\\n }\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nbody {\\n /* disable pull-to-refresh */\\n overscroll-behavior: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/panorama.vue\"],\"names\":[],\"mappings\":\";AA6UA;EACA,4BAAA;EACA,yBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div id=\\\"panorama\\\">\\n <item-view @tap=\\\"showControls = !showControls\\\" />\\n\\n <loading />\\n\\n <div\\n v-if=\\\"hasDeviceMotionOptInFeature\\\"\\n class=\\\"motion-permission-overlay\\\" >\\n <div class=\\\"motion-permission-modal-wrapper\\\">\\n <div class=\\\"message-text\\\">\\n 次の画面で許可ボタンを<br>押すと端末の向いている<br>方向が見えます。\\n </div>\\n <button\\n class=\\\"button\\\"\\n :style=\\\"{ backgroundColor: theme.color1 }\\\"\\n @click=\\\"requestMotionPermission\\\" >\\n OK\\n </button>\\n </div>\\n </div>\\n\\n <transition name=\\\"fade\\\" v-if=\\\"ready\\\">\\n <ui-full v-if=\\\"uiComponent == 'full'\\\" @hideControls=\\\"showControls = false\\\" id=\\\"ui\\\" />\\n <ui-minimal v-if=\\\"uiComponent == 'minimal'\\\" @showControls=\\\"showControls = true\\\" id=\\\"ui\\\" />\\n <ui-vr v-if=\\\"uiComponent == 'vr'\\\" id=\\\"ui\\\" />\\n </transition>\\n\\n <div\\n v-if=\\\"(vrMode || gyroRotation) && deviceMotionDenied\\\"\\n :style=\\\"[uiComponent == 'minimal' || uiComponent == 'vr' ? { top: '0px' } : { top: '45px'}]\\\"\\n class=\\\"motion-denied-message-overlay\\\" >\\n <div class=\\\"overlay-text\\\">\\n 「動作と方向へのアクセス」が有効になっておりませんので、<br>\\n 使用できません。ブラウザを再起動してください。\\n </div>\\n </div>\\n\\n <error-message />\\n\\n <passcode id=\\\"passcode-lock\\\" :hashed=\\\"settings.passCodeHash\\\" @done=\\\"showPanorama\\\" v-if=\\\"waitPasscode\\\" />\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState, mapMutations, mapGetters, mapActions } from 'vuex'\\nimport TWEEN from '@tweenjs/tween.js'\\n\\nimport Loading from './loading.vue'\\nimport ErrorMessage from './error-message.vue'\\nimport ItemView from './item/item-view.vue'\\nimport UiFull from './ui/ui-full.vue'\\nimport UiMinimal from './ui/ui-minimal.vue'\\nimport UiVr from './ui/ui-vr.vue'\\nimport Passcode from './passcode.vue'\\n\\nimport AtbbHelper from '~/helpers/atbb'\\n\\nexport default {\\n components: { Loading, ErrorMessage, ItemView, UiFull, UiMinimal, UiVr, Passcode },\\n props: ['viewMode', 'atbbUserId', 'pathPanorama'],\\n data () {\\n return {\\n waitPasscode: false,\\n ready: false,\\n motionPermitted: false,\\n showControls: true\\n }\\n },\\n computed: {\\n hasDeviceMotionOptInFeature() {\\n return !this.motionPermitted && (\\n // TODO: this.viewModeは使われていない可能性あり、未使用の場合は削除\\n this.viewMode === \\\"vr\\\" || this.viewMode === \\\"gyro\\\" ||\\n this.settings.startVrMode || this.settings.startGyroMode\\n ) && (\\n (\\n window.DeviceMotionEvent &&\\n window.DeviceMotionEvent.requestPermission &&\\n typeof window.DeviceMotionEvent.requestPermission === 'function'\\n ) || (\\n window.DeviceOrientationEvent &&\\n window.DeviceOrientationEvent.requestPermission &&\\n typeof window.DeviceOrientationEvent.requestPermission === 'function'\\n )\\n )\\n },\\n ...mapState('panorama', [\\n 'settings',\\n 'loading',\\n 'vrMode',\\n 'gyroRotation',\\n 'deviceMotionDenied'\\n ]),\\n ...mapGetters('panorama', [\\n 'theme'\\n ]),\\n uiComponent() {\\n if (this.vrMode) {\\n return 'vr'\\n }\\n if (this.settings.hideControls) {\\n return 'minimal'\\n }\\n return this.showControls ? 'full' : 'minimal'\\n }\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'setSize',\\n 'setDeviceOrientationDetected',\\n 'setErrorMessage',\\n 'setTelopEnabled',\\n 'setGyroRotation',\\n 'setVrMode'\\n ]),\\n ...mapActions('panorama', [\\n 'loadPanorama',\\n 'showInitialItem',\\n 'requestPermissionDeviceMotion',\\n 'sendEvent'\\n ]),\\n async requestMotionPermission() {\\n this.motionPermitted = true\\n await this.requestPermissionDeviceMotion()\\n\\n // VRモードを自動開始\\n if (this.settings.startVrMode) {\\n this.setVrMode(true)\\n }\\n // ジャイロモードを自動開始\\n if (this.settings.startGyroMode) {\\n this.setGyroRotation(true)\\n }\\n },\\n onResize () {\\n this.setSize({\\n width: this.$el.clientWidth,\\n height: this.$el.clientHeight\\n })\\n },\\n onDeviceOrientaion (e) {\\n if (e.alpha !== null && e.beta !== null && e.gamma !== null) {\\n this.motionPermitted = true;\\n // DeviceOrientationを検出\\n this.setDeviceOrientationDetected()\\n window.removeEventListener('deviceorientation', this.onDeviceOrientaion, false)\\n\\n // 初回時にモーションセンサーの許可画面が出た場合、許可ボタンを押すまで待機するため、\\n // VRモード、ジャイロモードが上書きされるため、各モードの切替えはパラメータが入っている場合のみ行う\\n // 現仕様ではパラメータにVRモード、ジャイロモード両方入っている場合、ジャイロモードが優先される\\n // VRモードを自動開始\\n if (this.settings.startVrMode) {\\n this.setVrMode(true)\\n }\\n // ジャイロモードを自動開始\\n if (this.settings.startGyroMode) {\\n this.setGyroRotation(true)\\n }\\n }\\n },\\n checkPasscode() {\\n if(this.passcode.length < 6){\\n this.passcodeError = false\\n return;\\n }\\n\\n bcrypt.compare(this.passcode, this.settings.passCodeHash).then((result) => {\\n if(!result){\\n this.passcodeError = true\\n return;\\n }\\n\\n this.showPanorama();\\n });\\n },\\n async showPanorama () {\\n this.waitPasscode = false\\n\\n await this.loadPanorama(this.pathPanorama)\\n // パノラマデータの読み込みに失敗した場合はそこで打ち切る。\\n // 暫定対応。ちゃんとpromiseベースの処理に書き直す。\\n if (this.$store.state.panorama.loading) {\\n return\\n }\\n await this.showInitialItem()\\n\\n if(this.viewMode == \\\"vr\\\") {\\n this.setVrMode(true)\\n }\\n this.ready = true\\n this.sendEvent({ event: 'mounted' })\\n\\n const loop = (currentTime) => {\\n TWEEN.update(currentTime)\\n return requestAnimationFrame(loop)\\n }\\n const frameHandler = loop()\\n }\\n },\\n\\n async mounted () {\\n this.onResize()\\n window.addEventListener('resize', this.onResize, false)\\n window.addEventListener('deviceorientation', this.onDeviceOrientaion, false)\\n\\n if (!this.$store.state.contexts.modernizr.webgl) {\\n this.setErrorMessage('このブラウザはパノラマ表示をサポートしていません。')\\n return\\n }\\n\\n let uri = this.$store.state.contexts.url\\n const atbb_helper = new AtbbHelper(uri)\\n if (this.atbbUserId) {\\n if (!atbb_helper.isAccesible(this.atbbUserId)) {\\n this.setErrorMessage('データが取得できませんでした。')\\n return\\n }\\n if (atbb_helper.isSecondaryAd()) {\\n this.setTelopEnabled(false)\\n }\\n }\\n\\n if (this.settings.passCodeHash) {\\n this.waitPasscode = true\\n return\\n }\\n\\n this.showPanorama()\\n },\\n beforeDestroy () {\\n window.removeEventListener('resize', this.onResize, false)\\n window.removeEventListener('deviceorientation', this.onDeviceOrientaion, false)\\n }\\n}\\n</script>\\n\\n<style>\\n body {\\n /* disable pull-to-refresh */\\n overscroll-behavior: none;\\n }\\n</style>\\n\\n<style scoped>\\n #panorama {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n overflow: hidden;\\n }\\n #panorama :deep(*) {\\n font-family: sans-serif;\\n box-sizing: border-box;\\n }\\n #ui {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n }\\n .fade-enter-active, .fade-leave-active {\\n transition: opacity .5s;\\n }\\n .fade-enter, .fade-leave-to {\\n opacity: 0;\\n }\\n .motion-denied-message-overlay {\\n position: absolute;\\n background-color: rgba(0, 0, 0, 0.8);\\n width: 100%;\\n height: 50px;\\n top:45px;\\n z-index: 0;\\n display: flex;\\n }\\n .motion-denied-message-overlay > .overlay-text {\\n margin: auto;\\n text-align: center;\\n color: white;\\n font-size: 11px;\\n line-height: 12px;\\n }\\n .motion-permission-overlay {\\n background-color: rgba(0, 0, 0, 0.5);\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n position: absolute;\\n display: flex;\\n }\\n .motion-permission-overlay > .overlay-text {\\n margin: auto;\\n text-align: center;\\n color: white;\\n font-size: 2vh;\\n }\\n .motion-permission-modal-wrapper {\\n position: absolute;\\n background-color: white;\\n border-radius: 8px;\\n padding: 5px;\\n width: 280px;\\n height: 140px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n }\\n .motion-permission-modal-wrapper > .message-text {\\n padding: 15px;\\n margin: auto;\\n text-align: center;\\n color: black;\\n font-size: 20px;\\n line-height: 24px;\\n }\\n .motion-permission-modal-wrapper button {\\n position: absolute;\\n width: 40%;\\n height: 35px;\\n bottom: 10px;\\n left: 50%;\\n font-size: 16px;\\n color: white;\\n font-weight: bold;\\n border-radius: 8px;\\n transform: translateX(-50%);\\n }\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#panorama[data-v-517153b0] {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n overflow: hidden;\\n}\\n#panorama[data-v-517153b0] * {\\n font-family: sans-serif;\\n box-sizing: border-box;\\n}\\n#ui[data-v-517153b0] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n}\\n.fade-enter-active[data-v-517153b0], .fade-leave-active[data-v-517153b0] {\\n transition: opacity .5s;\\n}\\n.fade-enter[data-v-517153b0], .fade-leave-to[data-v-517153b0] {\\n opacity: 0;\\n}\\n.motion-denied-message-overlay[data-v-517153b0] {\\n position: absolute;\\n background-color: rgba(0, 0, 0, 0.8);\\n width: 100%;\\n height: 50px;\\n top:45px;\\n z-index: 0;\\n display: flex;\\n}\\n.motion-denied-message-overlay > .overlay-text[data-v-517153b0] {\\n margin: auto;\\n text-align: center;\\n color: white;\\n font-size: 11px;\\n line-height: 12px;\\n}\\n.motion-permission-overlay[data-v-517153b0] {\\n background-color: rgba(0, 0, 0, 0.5);\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n position: absolute;\\n display: flex;\\n}\\n.motion-permission-overlay > .overlay-text[data-v-517153b0] {\\n margin: auto;\\n text-align: center;\\n color: white;\\n font-size: 2vh;\\n}\\n.motion-permission-modal-wrapper[data-v-517153b0] {\\n position: absolute;\\n background-color: white;\\n border-radius: 8px;\\n padding: 5px;\\n width: 280px;\\n height: 140px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n.motion-permission-modal-wrapper > .message-text[data-v-517153b0] {\\n padding: 15px;\\n margin: auto;\\n text-align: center;\\n color: black;\\n font-size: 20px;\\n line-height: 24px;\\n}\\n.motion-permission-modal-wrapper button[data-v-517153b0] {\\n position: absolute;\\n width: 40%;\\n height: 35px;\\n bottom: 10px;\\n left: 50%;\\n font-size: 16px;\\n color: white;\\n font-weight: bold;\\n border-radius: 8px;\\n transform: translateX(-50%);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/panorama.vue\"],\"names\":[],\"mappings\":\";AA6UA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,gBAAA;AACA;AACA;EACA,uBAAA;EACA,sBAAA;AACA;AACA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;AACA;AACA;EACA,uBAAA;AACA;AACA;EACA,UAAA;AACA;AACA;EACA,kBAAA;EACA,oCAAA;EACA,WAAA;EACA,YAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;AACA;AACA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;AACA;AACA;EACA,oCAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,aAAA;AACA;AACA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;EACA,cAAA;AACA;AACA;EACA,kBAAA;EACA,uBAAA;EACA,kBAAA;EACA,YAAA;EACA,YAAA;EACA,aAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;AACA;AACA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;AACA;AACA;EACA,kBAAA;EACA,UAAA;EACA,YAAA;EACA,YAAA;EACA,SAAA;EACA,eAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,2BAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div id=\\\"panorama\\\">\\n <item-view @tap=\\\"showControls = !showControls\\\" />\\n\\n <loading />\\n\\n <div\\n v-if=\\\"hasDeviceMotionOptInFeature\\\"\\n class=\\\"motion-permission-overlay\\\" >\\n <div class=\\\"motion-permission-modal-wrapper\\\">\\n <div class=\\\"message-text\\\">\\n 次の画面で許可ボタンを<br>押すと端末の向いている<br>方向が見えます。\\n </div>\\n <button\\n class=\\\"button\\\"\\n :style=\\\"{ backgroundColor: theme.color1 }\\\"\\n @click=\\\"requestMotionPermission\\\" >\\n OK\\n </button>\\n </div>\\n </div>\\n\\n <transition name=\\\"fade\\\" v-if=\\\"ready\\\">\\n <ui-full v-if=\\\"uiComponent == 'full'\\\" @hideControls=\\\"showControls = false\\\" id=\\\"ui\\\" />\\n <ui-minimal v-if=\\\"uiComponent == 'minimal'\\\" @showControls=\\\"showControls = true\\\" id=\\\"ui\\\" />\\n <ui-vr v-if=\\\"uiComponent == 'vr'\\\" id=\\\"ui\\\" />\\n </transition>\\n\\n <div\\n v-if=\\\"(vrMode || gyroRotation) && deviceMotionDenied\\\"\\n :style=\\\"[uiComponent == 'minimal' || uiComponent == 'vr' ? { top: '0px' } : { top: '45px'}]\\\"\\n class=\\\"motion-denied-message-overlay\\\" >\\n <div class=\\\"overlay-text\\\">\\n 「動作と方向へのアクセス」が有効になっておりませんので、<br>\\n 使用できません。ブラウザを再起動してください。\\n </div>\\n </div>\\n\\n <error-message />\\n\\n <passcode id=\\\"passcode-lock\\\" :hashed=\\\"settings.passCodeHash\\\" @done=\\\"showPanorama\\\" v-if=\\\"waitPasscode\\\" />\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState, mapMutations, mapGetters, mapActions } from 'vuex'\\nimport TWEEN from '@tweenjs/tween.js'\\n\\nimport Loading from './loading.vue'\\nimport ErrorMessage from './error-message.vue'\\nimport ItemView from './item/item-view.vue'\\nimport UiFull from './ui/ui-full.vue'\\nimport UiMinimal from './ui/ui-minimal.vue'\\nimport UiVr from './ui/ui-vr.vue'\\nimport Passcode from './passcode.vue'\\n\\nimport AtbbHelper from '~/helpers/atbb'\\n\\nexport default {\\n components: { Loading, ErrorMessage, ItemView, UiFull, UiMinimal, UiVr, Passcode },\\n props: ['viewMode', 'atbbUserId', 'pathPanorama'],\\n data () {\\n return {\\n waitPasscode: false,\\n ready: false,\\n motionPermitted: false,\\n showControls: true\\n }\\n },\\n computed: {\\n hasDeviceMotionOptInFeature() {\\n return !this.motionPermitted && (\\n // TODO: this.viewModeは使われていない可能性あり、未使用の場合は削除\\n this.viewMode === \\\"vr\\\" || this.viewMode === \\\"gyro\\\" ||\\n this.settings.startVrMode || this.settings.startGyroMode\\n ) && (\\n (\\n window.DeviceMotionEvent &&\\n window.DeviceMotionEvent.requestPermission &&\\n typeof window.DeviceMotionEvent.requestPermission === 'function'\\n ) || (\\n window.DeviceOrientationEvent &&\\n window.DeviceOrientationEvent.requestPermission &&\\n typeof window.DeviceOrientationEvent.requestPermission === 'function'\\n )\\n )\\n },\\n ...mapState('panorama', [\\n 'settings',\\n 'loading',\\n 'vrMode',\\n 'gyroRotation',\\n 'deviceMotionDenied'\\n ]),\\n ...mapGetters('panorama', [\\n 'theme'\\n ]),\\n uiComponent() {\\n if (this.vrMode) {\\n return 'vr'\\n }\\n if (this.settings.hideControls) {\\n return 'minimal'\\n }\\n return this.showControls ? 'full' : 'minimal'\\n }\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'setSize',\\n 'setDeviceOrientationDetected',\\n 'setErrorMessage',\\n 'setTelopEnabled',\\n 'setGyroRotation',\\n 'setVrMode'\\n ]),\\n ...mapActions('panorama', [\\n 'loadPanorama',\\n 'showInitialItem',\\n 'requestPermissionDeviceMotion',\\n 'sendEvent'\\n ]),\\n async requestMotionPermission() {\\n this.motionPermitted = true\\n await this.requestPermissionDeviceMotion()\\n\\n // VRモードを自動開始\\n if (this.settings.startVrMode) {\\n this.setVrMode(true)\\n }\\n // ジャイロモードを自動開始\\n if (this.settings.startGyroMode) {\\n this.setGyroRotation(true)\\n }\\n },\\n onResize () {\\n this.setSize({\\n width: this.$el.clientWidth,\\n height: this.$el.clientHeight\\n })\\n },\\n onDeviceOrientaion (e) {\\n if (e.alpha !== null && e.beta !== null && e.gamma !== null) {\\n this.motionPermitted = true;\\n // DeviceOrientationを検出\\n this.setDeviceOrientationDetected()\\n window.removeEventListener('deviceorientation', this.onDeviceOrientaion, false)\\n\\n // 初回時にモーションセンサーの許可画面が出た場合、許可ボタンを押すまで待機するため、\\n // VRモード、ジャイロモードが上書きされるため、各モードの切替えはパラメータが入っている場合のみ行う\\n // 現仕様ではパラメータにVRモード、ジャイロモード両方入っている場合、ジャイロモードが優先される\\n // VRモードを自動開始\\n if (this.settings.startVrMode) {\\n this.setVrMode(true)\\n }\\n // ジャイロモードを自動開始\\n if (this.settings.startGyroMode) {\\n this.setGyroRotation(true)\\n }\\n }\\n },\\n checkPasscode() {\\n if(this.passcode.length < 6){\\n this.passcodeError = false\\n return;\\n }\\n\\n bcrypt.compare(this.passcode, this.settings.passCodeHash).then((result) => {\\n if(!result){\\n this.passcodeError = true\\n return;\\n }\\n\\n this.showPanorama();\\n });\\n },\\n async showPanorama () {\\n this.waitPasscode = false\\n\\n await this.loadPanorama(this.pathPanorama)\\n // パノラマデータの読み込みに失敗した場合はそこで打ち切る。\\n // 暫定対応。ちゃんとpromiseベースの処理に書き直す。\\n if (this.$store.state.panorama.loading) {\\n return\\n }\\n await this.showInitialItem()\\n\\n if(this.viewMode == \\\"vr\\\") {\\n this.setVrMode(true)\\n }\\n this.ready = true\\n this.sendEvent({ event: 'mounted' })\\n\\n const loop = (currentTime) => {\\n TWEEN.update(currentTime)\\n return requestAnimationFrame(loop)\\n }\\n const frameHandler = loop()\\n }\\n },\\n\\n async mounted () {\\n this.onResize()\\n window.addEventListener('resize', this.onResize, false)\\n window.addEventListener('deviceorientation', this.onDeviceOrientaion, false)\\n\\n if (!this.$store.state.contexts.modernizr.webgl) {\\n this.setErrorMessage('このブラウザはパノラマ表示をサポートしていません。')\\n return\\n }\\n\\n let uri = this.$store.state.contexts.url\\n const atbb_helper = new AtbbHelper(uri)\\n if (this.atbbUserId) {\\n if (!atbb_helper.isAccesible(this.atbbUserId)) {\\n this.setErrorMessage('データが取得できませんでした。')\\n return\\n }\\n if (atbb_helper.isSecondaryAd()) {\\n this.setTelopEnabled(false)\\n }\\n }\\n\\n if (this.settings.passCodeHash) {\\n this.waitPasscode = true\\n return\\n }\\n\\n this.showPanorama()\\n },\\n beforeDestroy () {\\n window.removeEventListener('resize', this.onResize, false)\\n window.removeEventListener('deviceorientation', this.onDeviceOrientaion, false)\\n }\\n}\\n</script>\\n\\n<style>\\n body {\\n /* disable pull-to-refresh */\\n overscroll-behavior: none;\\n }\\n</style>\\n\\n<style scoped>\\n #panorama {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n background-color: #000;\\n overflow: hidden;\\n }\\n #panorama :deep(*) {\\n font-family: sans-serif;\\n box-sizing: border-box;\\n }\\n #ui {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n }\\n .fade-enter-active, .fade-leave-active {\\n transition: opacity .5s;\\n }\\n .fade-enter, .fade-leave-to {\\n opacity: 0;\\n }\\n .motion-denied-message-overlay {\\n position: absolute;\\n background-color: rgba(0, 0, 0, 0.8);\\n width: 100%;\\n height: 50px;\\n top:45px;\\n z-index: 0;\\n display: flex;\\n }\\n .motion-denied-message-overlay > .overlay-text {\\n margin: auto;\\n text-align: center;\\n color: white;\\n font-size: 11px;\\n line-height: 12px;\\n }\\n .motion-permission-overlay {\\n background-color: rgba(0, 0, 0, 0.5);\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n position: absolute;\\n display: flex;\\n }\\n .motion-permission-overlay > .overlay-text {\\n margin: auto;\\n text-align: center;\\n color: white;\\n font-size: 2vh;\\n }\\n .motion-permission-modal-wrapper {\\n position: absolute;\\n background-color: white;\\n border-radius: 8px;\\n padding: 5px;\\n width: 280px;\\n height: 140px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n }\\n .motion-permission-modal-wrapper > .message-text {\\n padding: 15px;\\n margin: auto;\\n text-align: center;\\n color: black;\\n font-size: 20px;\\n line-height: 24px;\\n }\\n .motion-permission-modal-wrapper button {\\n position: absolute;\\n width: 40%;\\n height: 35px;\\n bottom: 10px;\\n left: 50%;\\n font-size: 16px;\\n color: white;\\n font-weight: bold;\\n border-radius: 8px;\\n transform: translateX(-50%);\\n }\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.information-image-box[data-v-5662c760] {\\n width: 100%;\\n max-height: 300px;\\n background-color: #fff;\\n margin: 0 auto;\\n text-align: center;\\n overflow: hidden;\\n}\\n[data-v-5662c760]::-webkit-scrollbar {\\n display: none\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/airtag-image.vue\"],\"names\":[],\"mappings\":\";AAyIA;EACA,WAAA;EACA,iBAAA;EACA,sBAAA;EACA,cAAA;EACA,kBAAA;EACA,gBAAA;AACA;AAEA;EACA;AACA\",\"sourcesContent\":[\"<template>\\n <div class='information-image-box'>\\n <img class='information-image'\\n :src='url'\\n :style='infoImgStyle'\\n ref=\\\"image\\\"\\n @load='loadedImage'\\n @error='loadFailed'\\n @wheel='onWheel'\\n\\n v-hammer:panstart='onPanStart'\\n v-hammer:pan='onPan'\\n v-hammer:panend='onPanEnd'\\n\\n v-hammer:pinchstart='onPinchStart'\\n v-hammer:pinch='onPinch'\\n v-hammer:pinchend='onPinchEnd'\\n\\n :hammer-options.prop=\\\"{pan: { direction: 'all', threshold: 5 }, pinch: { enable: true }}\\\"\\n >\\n </div>\\n</template>\\n\\n<script>\\nexport default {\\n props: ['url'],\\n\\n data() {\\n return {\\n dummyImage: null,\\n prevPosX: 0,\\n prevPosY: 0,\\n scale: 1,\\n transX: 0,\\n transY: 0,\\n isPinchEnd: false\\n }\\n },\\n\\n computed: {\\n infoImgStyle() {\\n return {\\n position: 'relative',\\n maxWidth: '90%',\\n maxHeight: '300px',\\n transform: `scale(${ this.scale }, ${ this.scale }) translate(${this.transX}px, ${this.transY}px)`\\n }\\n },\\n },\\n\\n methods: {\\n loadedImage() {\\n this.$nextTick(() => {\\n this.$emit('resizedImage')\\n })\\n },\\n\\n loadFailed() {\\n this.$emit('loadFailed')\\n },\\n\\n setScale(scale) {\\n this.scale = Math.max(scale, 1)\\n this.$emit('resizedImage')\\n },\\n\\n updateImageTransform() {\\n // 最大移動幅\\n const maxTransX = this.$refs.image.width / 2 * (1 - 1/this.scale)\\n const maxTransY = this.$refs.image.height / 2 * (1 - 1/this.scale)\\n if (-maxTransX > this.transX) this.transX = -maxTransX\\n else if (maxTransX < this.transX) this.transX = maxTransX\\n if (-maxTransY > this.transY) this.transY = -maxTransY\\n else if (maxTransY < this.transY) this.transY = maxTransY\\n },\\n\\n onPanStart(e) {\\n this.prevPosX = 0\\n this.prevPosY = 0\\n },\\n\\n onPan(e) {\\n // Pinchの終了時、onPanイベントを拾うため\\n if (this.isPinchEnd) {\\n this.isPinchEnd = false\\n return\\n }\\n this.transX -= (this.prevPosX - e.deltaX) / this.scale\\n this.transY -= (this.prevPosY - e.deltaY) / this.scale\\n\\n this.updateImageTransform()\\n\\n this.prevPosX = e.deltaX\\n this.prevPosY = e.deltaY\\n },\\n\\n onPanEnd(e) {\\n this.prevPosX = 0\\n this.prevPosY = 0\\n },\\n\\n onPinchStart(e) {\\n this.currentImgWidth = this.$refs.image.width * this.scale\\n },\\n\\n onPinch(e) {\\n this.setScale(this.currentImgWidth * e.scale / this.$refs.image.width)\\n this.updateImageTransform()\\n // スクロールに影響しないようにする\\n e.srcEvent.preventDefault()\\n },\\n\\n onPinchEnd(e) {\\n this.currentImgWidth = null\\n // 終了時、onPanイベントを拾うため\\n this.isPinchEnd = true\\n // スクロールに影響しないようにする\\n e.srcEvent.preventDefault()\\n },\\n\\n onWheel(e) {\\n const deltaY = Math.sign(e.wheelDeltaY || e.wheelDelta || -e.deltaY || e.detail) * 0.1\\n this.setScale(this.scale + deltaY)\\n this.updateImageTransform()\\n e.preventDefault()\\n }\\n },\\n\\n mounted() {\\n // ドラッグフィードバック画像用に空画像を読み込む\\n this.dummyImage = new Image()\\n this.dummyImage.src = require('@/images/empty.png')\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.information-image-box {\\n width: 100%;\\n max-height: 300px;\\n background-color: #fff;\\n margin: 0 auto;\\n text-align: center;\\n overflow: hidden;\\n}\\n\\n::-webkit-scrollbar {\\n display: none\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.backdrop[data-v-3fed03a1] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n pointer-events: auto;\\n}\\n.airtag-modal[data-v-3fed03a1] {\\n position: absolute;\\n width: 70%;\\n max-width: 450px;\\n min-height: 70px;\\n max-height: 70%;\\n top: 50%;\\n left: 50%;\\n padding: 0;\\n transform: translate(-50%, -50%);\\n background-color: #fcfcfc;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n overflow: auto;\\n}\\n.information-box[data-v-3fed03a1] {\\n padding: 15px;\\n}\\n.airtag-information-close[data-v-3fed03a1] {\\n background-color: #000;\\n border-radius: 50%;\\n border: 2px solid #ccc;\\n margin: 0px;\\n padding: 0px;\\n display: inline-block;\\n width: 31px;\\n height: 31px;\\n cursor: pointer;\\n position: absolute;\\n font-size: 15px;\\n line-height: 15px;\\n z-index: 100;\\n}\\n.airtag-information-close[data-v-3fed03a1]:before {\\n content: \\\"X\\\";\\n color: #fff;\\n font-weight: bold;\\n text-align: center;\\n}\\n.information-text[data-v-3fed03a1] {\\n display: flex;\\n padding: 5px;\\n background-color: #fff;\\n justify-content: space-between;\\n white-space: pre-line;\\n text-align: justify;\\n text-justify: inter-ideograph;\\n flex-direction: column;\\n}\\n.v-enter-active[data-v-3fed03a1],.v-leave-active[data-v-3fed03a1] {\\n transition: opacity 0.2s;\\n}\\n.v-enter[data-v-3fed03a1],.v-leave-to[data-v-3fed03a1] {\\n opacity: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/airtag-information.vue\"],\"names\":[],\"mappings\":\";AA+GA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oCAAA;EACA,oBAAA;AACA;AAEA;EACA,kBAAA;EACA,UAAA;EACA,gBAAA;EACA,gBAAA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,gCAAA;EACA,yBAAA;EACA,0CAAA;EACA,cAAA;AACA;AAEA;EACA,aAAA;AACA;AAEA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;AACA;AAEA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;EACA,kBAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;EACA,sBAAA;EACA,8BAAA;EACA,qBAAA;EACA,mBAAA;EACA,6BAAA;EACA,sBAAA;AACA;AAEA;EACA,wBAAA;AACA;AAEA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition>\\n <div class=\\\"backdrop\\\" v-show=\\\"isImageLoaded\\\" v-hammer:tap=\\\"onTap\\\">\\n <div slot=\\\"top-right\\\">\\n <button\\n type=\\\"button\\\"\\n class=\\\"airtag-information-close\\\"\\n :style=\\\"{'left':btnCloseX, 'top':btnCloseY}\\\"\\n @click=\\\"onClose\\\">\\n </button>\\n </div>\\n <div class=\\\"airtag-modal\\\" ref=\\\"modal\\\">\\n <div\\n class=\\\"information-box\\\"\\n v-if=\\\"airtagInformation.image_url || airtagInformation.text\\\">\\n <div class=\\\"content\\\">\\n <airtag-image v-if=\\\"airtagInformation.image_url\\\" :url=\\\"airtagInformation.image_url\\\" @resizedImage=\\\"onImageLoaded\\\" @loadFailed=\\\"onImageloadFailed\\\" />\\n <div class=\\\"information-text\\\" v-if=\\\"airtagInformation.text\\\" v-html=\\\"airtagInformationText\\\" />\\n </div>\\n </div>\\n\\n <airtag-movie class=\\\"information-youtube\\\" v-if=\\\"airtagInformation.youtube_url\\\" :url=\\\"airtagInformation.youtube_url\\\" />\\n </div>\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapState, mapMutations } from \\\"vuex\\\"\\n\\nimport AirtagImage from \\\"./airtag-image\\\"\\nimport AirtagMovie from \\\"./airtag-movie\\\"\\n\\nexport default {\\n components: { AirtagMovie, AirtagImage },\\n\\n data() {\\n return {\\n imgElem: null,\\n isActive: false,\\n imgMinWidth: null,\\n imgMinHeight: null,\\n btnCloseX: null,\\n btnCloseY: null,\\n isImageLoaded: false,\\n }\\n },\\n\\n computed: {\\n airtagInformationText() {\\n return this.replaceUrlToLink(this.airtagInformation.text)\\n },\\n ...mapState(\\\"panorama\\\", [\\\"airtagInformation\\\"])\\n },\\n\\n methods: {\\n ...mapMutations(\\\"panorama\\\", [\\\"toggleAirtagInformation\\\"]),\\n\\n updateBtnCloseLocate() {\\n let modalElemRect = this.$refs.modal.getBoundingClientRect()\\n this.btnCloseX = (modalElemRect.right - 15) + 'px'\\n this.btnCloseY = (modalElemRect.top - 15) + 'px'\\n },\\n onTap(e) {\\n if (e.target === this.$el) {\\n this.toggleAirtagInformation()\\n }\\n },\\n onClose() {\\n this.toggleAirtagInformation()\\n },\\n onImageLoaded() {\\n this.imageLoadFinished()\\n },\\n onImageloadFailed() {\\n this.imageLoadFinished()\\n },\\n imageLoadFinished() {\\n this.isImageLoaded = true\\n this.$nextTick(() => {\\n this.updateBtnCloseLocate()\\n })\\n },\\n replaceUrlToLink(text) {\\n return text.replace(/https?:\\\\/\\\\/[\\\\w\\\\/:%#\\\\$&\\\\?\\\\(\\\\)~\\\\.=\\\\+\\\\-]+/g, match => `<a href=\\\"${match}\\\" target=\\\"_blank\\\">${match}</a>`)\\n }\\n },\\n\\n mounted() {\\n // 画面の拡大縮小(縦横変更)時、閉じるボタンを再配置\\n this.$listen(window, 'resize', this.updateBtnCloseLocate, false)\\n\\n // iOSのSafariでのピンチアウトによる画面拡大を禁止\\n this.$listen(this.$el, 'touchmove', e => {\\n if (e.touches.length > 1) {\\n e.preventDefault()\\n }\\n }, false)\\n\\n if (!this.airtagInformation.image_url) {\\n this.isImageLoaded = true\\n }\\n\\n this.$nextTick(() => {\\n this.updateBtnCloseLocate()\\n })\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.backdrop {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n pointer-events: auto;\\n}\\n\\n.airtag-modal {\\n position: absolute;\\n width: 70%;\\n max-width: 450px;\\n min-height: 70px;\\n max-height: 70%;\\n top: 50%;\\n left: 50%;\\n padding: 0;\\n transform: translate(-50%, -50%);\\n background-color: #fcfcfc;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n overflow: auto;\\n}\\n\\n.information-box {\\n padding: 15px;\\n}\\n\\n.airtag-information-close {\\n background-color: #000;\\n border-radius: 50%;\\n border: 2px solid #ccc;\\n margin: 0px;\\n padding: 0px;\\n display: inline-block;\\n width: 31px;\\n height: 31px;\\n cursor: pointer;\\n position: absolute;\\n font-size: 15px;\\n line-height: 15px;\\n z-index: 100;\\n}\\n\\n.airtag-information-close:before {\\n content: \\\"X\\\";\\n color: #fff;\\n font-weight: bold;\\n text-align: center;\\n}\\n\\n.information-text {\\n display: flex;\\n padding: 5px;\\n background-color: #fff;\\n justify-content: space-between;\\n white-space: pre-line;\\n text-align: justify;\\n text-justify: inter-ideograph;\\n flex-direction: column;\\n}\\n\\n.v-enter-active,.v-leave-active {\\n transition: opacity 0.2s;\\n}\\n\\n.v-enter,.v-leave-to {\\n opacity: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.aspect-ratio[data-v-6082c957] {\\n position: relative;\\n width: 100%;\\n height: 0;\\n padding-bottom: 56.25%;\\n}\\n.youtube-frame[data-v-6082c957] {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/airtag-movie.vue\"],\"names\":[],\"mappings\":\";AAwCA;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,sBAAA;AACA;AAEA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"aspect-ratio\\\">\\n <iframe\\n class=\\\"youtube-frame\\\"\\n :src=\\\"src\\\"\\n frameborder=\\\"0\\\"\\n width=\\\"640\\\"\\n height=\\\"360\\\"\\n allow=\\\"accelerometer; autoplay; mute; encrypted-media; gyroscope; picture-in-picture\\\"\\n />\\n </div>\\n</template>\\n\\n<script setup>\\nimport { toRefs, computed } from 'vue'\\n\\nimport getVideoId from 'get-video-id'\\nimport qs from 'qs'\\n\\nconst props = defineProps(['url'])\\nconst { url } = toRefs(props)\\n\\nconst videoId = computed(() => getVideoId(url.value).id)\\nconst src = computed(() => {\\n const options = {\\n iv_load_policy: 3,\\n autoplay: 1,\\n controls: 1,\\n disablekb: 1,\\n mute: 1,\\n showinfo: 0,\\n modestbranding: 1,\\n loop: 1,\\n playlist: videoId.value\\n }\\n return `https://www.youtube-nocookie.com/embed/${videoId.value}?` + qs.stringify(options)\\n})\\n</script>\\n\\n<style scoped>\\n.aspect-ratio {\\n position: relative;\\n width: 100%;\\n height: 0;\\n padding-bottom: 56.25%;\\n}\\n\\n.youtube-frame {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.bottom-bar[data-v-09e6a96c] {\\n position: absolute;\\n height: 44px;\\n left: 0px;\\n right: 0px;\\n bottom: 0;\\n background-color: #2AB7D9;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);\\n pointer-events: auto;\\n}\\n.external-link[data-v-09e6a96c] {\\n float: right;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/bottom-bar.vue\"],\"names\":[],\"mappings\":\";AAkPA;EACA,kBAAA;EACA,YAAA;EACA,SAAA;EACA,UAAA;EACA,SAAA;EACA,yBAAA;EACA,0CAAA;EACA,oBAAA;AACA;AACA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"bottom-bar\\\" :style=\\\"{ backgroundColor: theme.color2 }\\\">\\n <!-- ポイントサムネイル -->\\n <button-icon class=\\\"button-left\\\"\\n :icon=\\\"theme.icons.pointThumbnails\\\"\\n :active=\\\"displayingThumbnailList == 'Points'\\\"\\n @click=\\\"togglePointThumbnails\\\"\\n />\\n\\n <!-- アイテムサムネイル -->\\n <button-icon class=\\\"button-left\\\"\\n :icon=\\\"theme.icons.itemThumbnails\\\"\\n :active=\\\"displayingThumbnailList == 'Items'\\\"\\n @click=\\\"toggleItemThumbnails\\\"\\n v-if=\\\"itemThumbnailsVisible\\\"\\n />\\n\\n <!-- 外部リンク -->\\n <external-link />\\n\\n <!-- ツールバー非表示 -->\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.controlsHide\\\"\\n @click=\\\"$parent.$emit('hideControls')\\\"\\n />\\n\\n <!-- フルスクリーン -->\\n <template v-if=\\\"fullscreenEnabled\\\">\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.fullscreenOn\\\"\\n @click=\\\"toggleFullscreen\\\"\\n v-if=\\\"!fullscreen\\\"\\n />\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.fullscreenOff\\\"\\n @click=\\\"toggleFullscreen\\\"\\n v-if=\\\"fullscreen\\\"\\n />\\n </template>\\n\\n <template v-else-if=\\\"parentExists && locationHashParams['panoramasjs']\\\">\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"fullscreen ? theme.icons.fullscreenOff : theme.icons.fullscreenOn\\\"\\n @click=\\\"toggleMaximize\\\"\\n />\\n </template>\\n\\n <!-- VR -->\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.vrEffect\\\"\\n @click=\\\"startVrMode\\\"\\n v-if=\\\"vrModeAvailable\\\"\\n />\\n\\n <!-- パノラマジャイロ -->\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.gyroRotation\\\"\\n :active=\\\"gyroRotationOn\\\"\\n @click=\\\"startGyroMode\\\"\\n v-if=\\\"panoramaGyroRotationAvailable\\\"\\n />\\n\\n <!-- 自動回転 -->\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.autoRotation\\\"\\n :active=\\\"autoRotationOn\\\"\\n :disabled=\\\"gyroRotationOn\\\"\\n @click=\\\"gyroRotationOn ? null : setAutoRotation(!autoRotationOn)\\\"\\n v-if=\\\"autoRotationVisible\\\"\\n />\\n\\n <!-- 動画コントロール -->\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.videoControls\\\"\\n @click=\\\"toggleVideoControls\\\"\\n v-if=\\\"videoControlVisible\\\"\\n />\\n </div>\\n</template>\\n\\n<script>\\nimport screenfull from 'screenfull'\\nimport { mapState, mapGetters, mapMutations, mapActions } from 'vuex'\\n\\nimport ButtonIcon from './button-icon.vue'\\nimport ExternalLink from './external-link.vue'\\n\\nexport default {\\n components: { ButtonIcon, ExternalLink },\\n data () {\\n return {\\n isTopWindow: false,\\n fullscreenEnabled: false,\\n parentExists: false,\\n }\\n },\\n computed: {\\n ...mapState('panorama', [\\n 'pointId',\\n 'settings',\\n 'videoControlsActive',\\n 'vrMode',\\n 'fullscreen',\\n 'locationHashParams',\\n ]),\\n ...mapGetters('panorama', [\\n 'itemThumbnailsVisible',\\n 'autoRotationVisible',\\n 'autoRotationOn',\\n 'gyroRotationOn',\\n 'videoControlVisible',\\n 'vrModeAvailable',\\n 'panoramaGyroRotationAvailable',\\n 'theme',\\n 'displayingThumbnailList'\\n ])\\n },\\n watch: {\\n videoControlVisible () {\\n if (this.videoControlVisible) {\\n if (!this.videoControlsActive) {\\n this.toggleVideoControls()\\n }\\n } else {\\n if (this.videoControlsActive) {\\n this.toggleVideoControls()\\n }\\n }\\n }\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'togglePointThumbnails',\\n 'toggleItemThumbnails',\\n 'toggleVideoControls',\\n 'setAutoRotation',\\n 'setFullscreen',\\n 'setGyroRotation',\\n 'setLocationHashParams',\\n 'setVrMode'\\n ]),\\n ...mapActions('panorama', ['requestPermissionDeviceMotion']),\\n\\n // Fullscreen APIが使用可能な場合\\n toggleFullscreen () {\\n if (this.fullscreen) {\\n screenfull.exit()\\n } else {\\n screenfull.request(document.querySelector('#panorama'))\\n }\\n },\\n\\n onFullscreenChange (e) {\\n this.setFullscreen(screenfull.isFullscreen)\\n },\\n\\n // Fullscreen APIを使用できない場合(ブラウザサイズで最大化を試みる)\\n toggleMaximize (e) {\\n window.parent?.postMessage(JSON.stringify({\\n action: `nurve-fullscreen-${this.fullscreen ? 'off' : 'on'}`,\\n by: this.locationHashParams['target'] ?? 0,\\n }), '*')\\n this.setFullscreen(!this.fullscreen)\\n\\n // iframeのサイズが変わるため、念の為のresize発火\\n setTimeout(() => {\\n window.dispatchEvent(new Event('resize'))\\n }, 500)\\n },\\n\\n async startVrMode (e) {\\n if (!this.isTopWindow) {\\n // 最上位のwindowで開き直してVRモードを自動開始する\\n // view_mode=vrの時もVRモードとして実行する\\n const url = new URL(window.location)\\n url.searchParams.set('point_id', this.pointId)\\n url.searchParams.set('vr_mode', true)\\n window.open(url, '_top')\\n return\\n }\\n\\n if (!this.fullscreen && this.fullscreenEnabled) {\\n screenfull.request(document.querySelector('#panorama'))\\n }\\n\\n await this.requestPermissionDeviceMotion()\\n // VRモード開始\\n this.setVrMode(true)\\n },\\n\\n async startGyroMode () {\\n if (this.gyroRotationOn){\\n this.setGyroRotation(false)\\n return\\n }\\n if (!this.isTopWindow) {\\n // 最上位のwindowで開き直してジャイロモードを自動開始する\\n // gyro_mode=vrの時もVRモードとして実行する\\n const url = new URL(window.location)\\n url.searchParams.set('point_id', this.pointId)\\n url.searchParams.set('view_mode', 'gyro')\\n window.open(url, '_top')\\n return\\n }\\n\\n await this.requestPermissionDeviceMotion()\\n // ジャイロモード開始\\n this.setGyroRotation(true)\\n },\\n\\n locationHashParser () {\\n const params = {}\\n location.hash.substring(1).split('&').forEach((p) => {\\n const [k, v] = p.split('=')\\n params[k] = v\\n })\\n this.setLocationHashParams(params)\\n },\\n },\\n\\n mounted () {\\n this.setFullscreen(screenfull.isFullscreen)\\n this.isTopWindow = (window === window.top)\\n this.fullscreenEnabled = this.settings.fullscreenEnable && screenfull.isEnabled\\n this.parentExists = window.parent?.postMessage\\n\\n if(screenfull.isEnabled) {\\n screenfull.on('change', this.onFullscreenChange)\\n }\\n\\n this.locationHashParser()\\n },\\n\\n beforeDestroy () {\\n if(screenfull.isEnabled) {\\n screenfull.off('change', this.onFullscreenChange)\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.bottom-bar {\\n position: absolute;\\n height: 44px;\\n left: 0px;\\n right: 0px;\\n bottom: 0;\\n background-color: #2AB7D9;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);\\n pointer-events: auto;\\n}\\n.external-link {\\n float: right;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.button[data-v-0f763ef4] {\\n position: relative;\\n width: 44px;\\n height: 44px;\\n cursor: pointer;\\n}\\n.button .icon[data-v-0f763ef4] {\\n position: absolute;\\n width: 40px;\\n height: 40px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n border-radius: 50%;\\n transition: all 0.2s;\\n}\\n.button .icon img[data-v-0f763ef4] {\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n.button .icon object[data-v-0f763ef4] {\\n pointer-events: none;\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n.button-left[data-v-0f763ef4] {\\n float: left;\\n}\\n.button-right[data-v-0f763ef4] {\\n float: right;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/button-icon.vue\"],\"names\":[],\"mappings\":\";AAgCA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;AACA;AAEA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;EACA,kBAAA;EACA,oBAAA;AACA;AAEA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;AACA;AAEA;EACA,oBAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"button\\\" @click=\\\"$emit('click')\\\">\\n <div class=\\\"icon\\\" :style=\\\"iconStyle\\\">\\n <svg-colored-icon :src=\\\"icon\\\" :color=\\\"theme.iconColor\\\" />\\n </div>\\n </div>\\n</template>\\n\\n<script>\\nimport SvgColoredIcon from '~/components/svg-colored-icon'\\n\\nimport { mapGetters } from 'vuex'\\n\\nexport default {\\n components: { SvgColoredIcon },\\n\\n props: [ 'icon', 'active', 'disabled' ],\\n\\n computed: {\\n ...mapGetters('panorama', ['theme']),\\n\\n iconStyle() {\\n return {\\n backgroundColor: this.active ? this.theme.iconBackground.activeColor : this.theme.iconBackground.defaultColor,\\n opacity: this.disabled ? 0.2 : 1\\n }\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.button {\\n position: relative;\\n width: 44px;\\n height: 44px;\\n cursor: pointer;\\n}\\n\\n.button .icon {\\n position: absolute;\\n width: 40px;\\n height: 40px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n border-radius: 50%;\\n transition: all 0.2s;\\n}\\n\\n.button .icon img {\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\\n.button .icon object {\\n pointer-events: none;\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\\n.button-left {\\n float: left;\\n}\\n\\n.button-right {\\n float: right;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.excuse-text[data-v-5e49ba12] {\\n min-width: min(330px, calc(100% - 76px));\\n flex: 1 1;\\n transition: all 0.2s;\\n padding: 8px;\\n line-height: 1.5;\\n text-align: right;\\n letter-spacing: 3px;\\n font-size: 10px;\\n color: rgba(255, 255, 255, 0.8);\\n text-shadow: 0 0 3px #000, 0 0 3px #000, 0 0 3px #000, 0 0 3px #000,\\n 4px 0 10px #000, -4px 0 10px #000, 0 2px 10px #000, 0 -2px 10px #000,\\n 4px 0 10px #000, -4px 0 10px #000, 0 2px 10px #000, 0 -2px 10px #000,\\n 4px 0 15px #000, -4px 0 15px #000, 0 2px 15px #000, 0 -2px 15px #000;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/excuse-text.vue\"],\"names\":[],\"mappings\":\";AAmBA;EACA,wCAAA;EACA,SAAA;EACA,oBAAA;EACA,YAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;EACA,eAAA;EACA,+BAAA;EACA;;;wEAGA;AACA\",\"sourcesContent\":[\"<template>\\n <div\\n class=\\\"excuse-text\\\"\\n v-html=\\\"excuseText\\\"\\n v-if=\\\"excuseText\\\">\\n </div>\\n</template>\\n\\n<script>\\nimport { mapGetters } from 'vuex'\\n\\nexport default {\\n computed: {\\n ...mapGetters('panorama', ['excuseText'])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.excuse-text {\\n min-width: min(330px, calc(100% - 76px));\\n flex: 1;\\n transition: all 0.2s;\\n padding: 8px;\\n line-height: 1.5;\\n text-align: right;\\n letter-spacing: 3px;\\n font-size: 10px;\\n color: rgba(255, 255, 255, 0.8);\\n text-shadow: 0 0 3px #000, 0 0 3px #000, 0 0 3px #000, 0 0 3px #000,\\n 4px 0 10px #000, -4px 0 10px #000, 0 2px 10px #000, 0 -2px 10px #000,\\n 4px 0 10px #000, -4px 0 10px #000, 0 2px 10px #000, 0 -2px 10px #000,\\n 4px 0 15px #000, -4px 0 15px #000, 0 2px 15px #000, 0 -2px 15px #000;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.external-link[data-v-78152270] {\\n display: block;\\n height: 44px;\\n padding: 4px;\\n text-decoration: none;\\n pointer-events: auto;\\n}\\n.external-link div[data-v-78152270] {\\n height: 36px;\\n padding: 6px;\\n font-size: 12px;\\n border-radius: 4px;\\n color: #fff;\\n background-color: #55c6e1;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/external-link.vue\"],\"names\":[],\"mappings\":\";AAkBA;EACA,cAAA;EACA,YAAA;EACA,YAAA;EACA,qBAAA;EACA,oBAAA;AACA;AACA;EACA,YAAA;EACA,YAAA;EACA,eAAA;EACA,kBAAA;EACA,WAAA;EACA,yBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <a class=\\\"external-link\\\" :href=\\\"externalLink.url\\\" target=\\\"_blank\\\" v-if=\\\"externalLink\\\">\\n <div>{{ externalLink.name }}</div>\\n </a>\\n</template>\\n\\n<script>\\nimport { mapGetters } from 'vuex'\\nexport default {\\n computed: {\\n ...mapGetters('panorama', [\\n 'externalLink'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.external-link {\\n display: block;\\n height: 44px;\\n padding: 4px;\\n text-decoration: none;\\n pointer-events: auto;\\n}\\n.external-link div {\\n height: 36px;\\n padding: 6px;\\n font-size: 12px;\\n border-radius: 4px;\\n color: #fff;\\n background-color: #55c6e1;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.backdrop[data-v-668599b8] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n pointer-events: auto;\\n}\\n.image-quality-modal[data-v-668599b8] {\\n position: absolute;\\n height: 188px;\\n width: 152px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n background-color: #fff;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n}\\n.header[data-v-668599b8] {\\n border-bottom: solid 1px #ccc;\\n height: 44px;\\n line-height: 44px;\\n font-size: 20px;\\n text-align: center;\\n color: #666;\\n}\\n.close[data-v-668599b8] {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 44px;\\n height: 44px;\\n font-weight: bold;\\n}\\n.content-wrapper[data-v-668599b8] {\\n height: calc(100% - 44px);\\n overflow: hidden;\\n}\\n.content[data-v-668599b8] {\\n color: #666;\\n}\\nlabel[data-v-668599b8] {\\n padding-left: 20px;\\n line-height: 36px;\\n}\\n.v-enter-active[data-v-668599b8], .v-leave-active[data-v-668599b8] {\\n transition: opacity .2s;\\n}\\n.v-enter[data-v-668599b8], .v-leave-to[data-v-668599b8] {\\n opacity: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/image-quality-modal.vue\"],\"names\":[],\"mappings\":\";AAwDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oCAAA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,aAAA;EACA,YAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;EACA,sBAAA;EACA,0CAAA;AACA;AACA;EACA,6BAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;EACA,WAAA;AACA;AACA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;AACA;AACA;EACA,yBAAA;EACA,gBAAA;AACA;AACA;EACA,WAAA;AACA;AACA;EACA,kBAAA;EACA,iBAAA;AACA;AACA;EACA,uBAAA;AACA;AACA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition>\\n <div class=\\\"backdrop\\\"\\n @touchstart.self.prevent.stop=\\\"toggleImageQualityModal\\\"\\n @mousedown.self.prevent.stop=\\\"toggleImageQualityModal\\\"\\n >\\n <div class=\\\"image-quality-modal\\\">\\n <div class=\\\"header\\\">\\n <span>画質設定</span>\\n <div class=\\\"close\\\" @click=\\\"toggleImageQualityModal\\\">×</div>\\n </div>\\n <div class=\\\"content-wrapper\\\">\\n <div class=\\\"content\\\">\\n <label><input type=\\\"radio\\\" value=\\\"low\\\" v-model=\\\"imageQuality\\\">低</label><br>\\n <label><input type=\\\"radio\\\" value=\\\"middle\\\" v-model=\\\"imageQuality\\\">中</label><br>\\n <label><input type=\\\"radio\\\" value=\\\"high\\\" v-model=\\\"imageQuality\\\">高</label><br>\\n <label><input type=\\\"radio\\\" value=\\\"original\\\" v-model=\\\"imageQuality\\\">オリジナル</label>\\n </div>\\n </div>\\n </div>\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapState, mapMutations, mapActions } from 'vuex'\\n\\nexport default {\\n computed: {\\n ...mapState('panorama', [\\n 'settings'\\n ]),\\n imageQuality: {\\n get () { return this.settings.imageQuality },\\n set (value) { this.setImageQuality(value) }\\n }\\n },\\n watch: {\\n imageQuality () {\\n this.toggleImageQualityModal()\\n this.changeImageQuality()\\n }\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'toggleImageQualityModal',\\n 'setImageQuality'\\n ]),\\n ...mapActions('panorama', [\\n 'changeImageQuality'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.backdrop {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n pointer-events: auto;\\n}\\n.image-quality-modal {\\n position: absolute;\\n height: 188px;\\n width: 152px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n background-color: #fff;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n}\\n.header {\\n border-bottom: solid 1px #ccc;\\n height: 44px;\\n line-height: 44px;\\n font-size: 20px;\\n text-align: center;\\n color: #666;\\n}\\n.close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 44px;\\n height: 44px;\\n font-weight: bold;\\n}\\n.content-wrapper {\\n height: calc(100% - 44px);\\n overflow: hidden;\\n}\\n.content {\\n color: #666;\\n}\\nlabel {\\n padding-left: 20px;\\n line-height: 36px;\\n}\\n.v-enter-active, .v-leave-active {\\n transition: opacity .2s;\\n}\\n.v-enter, .v-leave-to {\\n opacity: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.backdrop[data-v-187ee332] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n pointer-events: auto;\\n}\\n.info-modal[data-v-187ee332] {\\n position: absolute;\\n max-height: 400px;\\n max-width: 600px;\\n height: calc(100% - 40px);\\n width: calc(100% - 40px);\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n background-color: #fff;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n}\\n.header[data-v-187ee332] {\\n border-bottom: solid 1px #ccc;\\n height: 44px;\\n line-height: 44px;\\n font-size: 20px;\\n text-align: center;\\n color: #666;\\n}\\n.close[data-v-187ee332] {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 44px;\\n height: 44px;\\n font-weight: bold;\\n}\\n.content-wrapper[data-v-187ee332] {\\n padding: 10px;\\n height: calc(100% - 44px);\\n overflow: scroll;\\n}\\n.content[data-v-187ee332] {\\n color: #666;\\n}\\n.v-enter-active[data-v-187ee332], .v-leave-active[data-v-187ee332] {\\n transition: opacity .2s;\\n}\\n.v-enter[data-v-187ee332], .v-leave-to[data-v-187ee332] {\\n opacity: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/info-modal.vue\"],\"names\":[],\"mappings\":\";AAsCA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oCAAA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,iBAAA;EACA,gBAAA;EACA,yBAAA;EACA,wBAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;EACA,sBAAA;EACA,0CAAA;AACA;AACA;EACA,6BAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;EACA,WAAA;AACA;AACA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;AACA;AACA;EACA,aAAA;EACA,yBAAA;EACA,gBAAA;AACA;AACA;EACA,WAAA;AACA;AACA;EACA,uBAAA;AACA;AACA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition>\\n <div class=\\\"backdrop\\\"\\n @touchstart.self.prevent.stop=\\\"toggleInfoModal\\\"\\n @mousedown.self.prevent.stop=\\\"toggleInfoModal\\\"\\n >\\n <div class=\\\"info-modal\\\">\\n <div class=\\\"header\\\">\\n <span>物件情報</span>\\n <div class=\\\"close\\\" @click=\\\"toggleInfoModal\\\">×</div>\\n </div>\\n <div class=\\\"content-wrapper\\\">\\n <div class=\\\"content\\\">\\n 住所とか賃料とかいろいろ\\n <br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・\\n <br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・\\n <br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・\\n <br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・<br>・\\n </div>\\n </div>\\n </div>\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapMutations } from 'vuex'\\n\\nexport default {\\n methods: {\\n ...mapMutations('panorama', [\\n 'toggleInfoModal'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.backdrop {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n pointer-events: auto;\\n}\\n.info-modal {\\n position: absolute;\\n max-height: 400px;\\n max-width: 600px;\\n height: calc(100% - 40px);\\n width: calc(100% - 40px);\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n background-color: #fff;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n}\\n.header {\\n border-bottom: solid 1px #ccc;\\n height: 44px;\\n line-height: 44px;\\n font-size: 20px;\\n text-align: center;\\n color: #666;\\n}\\n.close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 44px;\\n height: 44px;\\n font-weight: bold;\\n}\\n.content-wrapper {\\n padding: 10px;\\n height: calc(100% - 44px);\\n overflow: scroll;\\n}\\n.content {\\n color: #666;\\n}\\n.v-enter-active, .v-leave-active {\\n transition: opacity .2s;\\n}\\n.v-enter, .v-leave-to {\\n opacity: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.item-thumbnails[data-v-5a31c192] {\\n position: absolute;\\n height: 96px;\\n left: 0px;\\n right: 0px;\\n bottom: 44px; /* ツールバー */\\n overflow: hidden;\\n pointer-events: auto;\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n}\\n.title[data-v-5a31c192] {\\n color: #fff;\\n font-size: 14px;\\n line-height: 20px;\\n height: 20px;\\n margin-top: 2px;\\n margin-left: 10px;\\n}\\n.thumbnails[data-v-5a31c192] {\\n margin: 5px 0;\\n white-space: nowrap;\\n}\\n.thumbnail[data-v-5a31c192] {\\n display: inline-block;\\n vertical-align: top;\\n margin: 0 2px;\\n background-color: transparent;\\n}\\n.thumbnail[data-v-5a31c192]:first-child {\\n margin-left: 10px;\\n}\\n.thumbnail[data-v-5a31c192]:last-child {\\n margin-right: 10px;\\n}\\n.image[data-v-5a31c192] {\\n position: relative;\\n width: calc(90px + 4px);\\n height: calc(45px + 4px);\\n background-color: rgba(0,0,0,0.2);\\n border: solid 2px #ccc;\\n}\\n.image.active[data-v-5a31c192] {\\n border: solid 2px #2AB7D9;\\n}\\n.image img[data-v-5a31c192] {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.caption[data-v-5a31c192] {\\n height: 18px;\\n line-height: 18px;\\n font-size: 12px;\\n text-align: center;\\n color: #fff;\\n}\\n.scroll-left[data-v-5a31c192], .scroll-right[data-v-5a31c192] {\\n position: absolute;\\n top: 27px;\\n height: 49px;\\n width: 30px;\\n padding: 8px 4px;\\n font-size: 20px;\\n font-weight: bold;\\n color: #fff;\\n}\\n.scroll-left[data-v-5a31c192] {\\n left: 0;\\n text-align: left;\\n background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.scroll-right[data-v-5a31c192] {\\n right: 0;\\n text-align: right;\\n background: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.v-enter-active[data-v-5a31c192], .v-leave-active[data-v-5a31c192] {\\n transition: height .2s;\\n}\\n.v-enter[data-v-5a31c192], .v-leave-to[data-v-5a31c192] {\\n height: 0;\\n}\\n.fade-enter-active[data-v-5a31c192], .fade-leave-active[data-v-5a31c192] {\\n transition: opacity .2s;\\n}\\n.fade-enter[data-v-5a31c192], .fade-leave-to[data-v-5a31c192] {\\n opacity: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/item-thumbnails.vue\"],\"names\":[],\"mappings\":\";AA+EA;EACA,kBAAA;EACA,YAAA;EACA,SAAA;EACA,UAAA;EACA,YAAA,EAAA,UAAA;EACA,gBAAA;EACA,oBAAA;EACA,oCAAA;EACA,0CAAA;AACA;AACA;EACA,WAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;AACA;AACA;EACA,aAAA;EACA,mBAAA;AACA;AACA;EACA,qBAAA;EACA,mBAAA;EACA,aAAA;EACA,6BAAA;AACA;AACA;EACA,iBAAA;AACA;AACA;EACA,kBAAA;AACA;AACA;EACA,kBAAA;EACA,uBAAA;EACA,wBAAA;EACA,iCAAA;EACA,sBAAA;AACA;AACA;EACA,yBAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,QAAA;EACA,gCAAA;EACA,eAAA;EACA,gBAAA;AACA;AACA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;EACA,WAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,WAAA;AACA;AACA;EACA,OAAA;EACA,gBAAA;EACA,sEAAA;AACA;AACA;EACA,QAAA;EACA,iBAAA;EACA,qEAAA;AACA;AACA;EACA,sBAAA;AACA;AACA;EACA,SAAA;AACA;AACA;EACA,uBAAA;AACA;AACA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition>\\n <div class=\\\"item-thumbnails\\\">\\n <div>\\n <div class=\\\"title\\\">{{ pointName }}のシーンを選択</div>\\n </div>\\n <scrollable class=\\\"thumbnails\\\" ref=\\\"scrollable\\\"\\n @update:isLeftScrollable=\\\"isLeftScrollable = $event\\\"\\n @update:isRightScrollable=\\\"isRightScrollable = $event\\\"\\n >\\n <div class=\\\"thumbnail\\\" v-for=\\\"thumbnail in itemThumbnails\\\" :key=\\\"thumbnail.itemId\\\">\\n <div class=\\\"image\\\"\\n :class=\\\"{ active: thumbnail.active }\\\"\\n :style=\\\"{ borderColor: thumbnailBorderColor(thumbnail) }\\\"\\n @click=\\\"changeItem({ pointId: thumbnail.pointId, itemId: thumbnail.itemId })\\\"\\n >\\n <img \\n :src=\\\"thumbnail.imageUrl\\\"\\n style=\\\"pointer-events: none;\\\"\\n @copy=\\\"onCopy($event)\\\"\\n >\\n </div>\\n <div class=\\\"caption\\\">{{ thumbnail.caption }}</div>\\n </div>\\n </scrollable>\\n <transition-group name=\\\"fade\\\">\\n <div class=\\\"scroll-left\\\" @click=\\\"onScrollLeft\\\" v-if=\\\"isLeftScrollable\\\" key=\\\"left\\\"><</div>\\n <div class=\\\"scroll-right\\\" @click=\\\"onScrollRight\\\" v-if=\\\"isRightScrollable\\\" key=\\\"right\\\">></div>\\n </transition-group>\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapGetters, mapActions } from 'vuex'\\nimport Scrollable from './scrollable.vue'\\n\\nexport default {\\n components: { Scrollable },\\n data () {\\n return {\\n isLeftScrollable: false,\\n isRightScrollable: false\\n }\\n },\\n computed: {\\n ...mapGetters('panorama', [\\n 'pointName',\\n 'itemThumbnails',\\n 'theme'\\n ])\\n },\\n methods: {\\n ...mapActions('panorama', [\\n 'changeItem'\\n ]),\\n thumbnailBorderColor (thumbnal) {\\n return thumbnal.active ? this.theme.thumbnailBorder.activeColor : this.theme.thumbnailBorder.defaultColor\\n },\\n onScrollLeft () {\\n this.$refs.scrollable.scroll(-1)\\n },\\n onScrollRight () {\\n this.$refs.scrollable.scroll(1)\\n },\\n onCopy (event) {\\n event.preventDefault()\\n },\\n },\\n activated () {\\n this.$el.querySelector('.thumbnails').scrollLeft = this.scrollLeft\\n },\\n deactivated () {\\n this.scrollLeft = this.$el.querySelector('.thumbnails').scrollLeft\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.item-thumbnails {\\n position: absolute;\\n height: 96px;\\n left: 0px;\\n right: 0px;\\n bottom: 44px; /* ツールバー */\\n overflow: hidden;\\n pointer-events: auto;\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n}\\n.title {\\n color: #fff;\\n font-size: 14px;\\n line-height: 20px;\\n height: 20px;\\n margin-top: 2px;\\n margin-left: 10px;\\n}\\n.thumbnails {\\n margin: 5px 0;\\n white-space: nowrap;\\n}\\n.thumbnail {\\n display: inline-block;\\n vertical-align: top;\\n margin: 0 2px;\\n background-color: transparent;\\n}\\n.thumbnail:first-child {\\n margin-left: 10px;\\n}\\n.thumbnail:last-child {\\n margin-right: 10px;\\n}\\n.image {\\n position: relative;\\n width: calc(90px + 4px);\\n height: calc(45px + 4px);\\n background-color: rgba(0,0,0,0.2);\\n border: solid 2px #ccc;\\n}\\n.image.active {\\n border: solid 2px #2AB7D9;\\n}\\n.image img {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.caption {\\n height: 18px;\\n line-height: 18px;\\n font-size: 12px;\\n text-align: center;\\n color: #fff;\\n}\\n.scroll-left, .scroll-right {\\n position: absolute;\\n top: 27px;\\n height: 49px;\\n width: 30px;\\n padding: 8px 4px;\\n font-size: 20px;\\n font-weight: bold;\\n color: #fff;\\n}\\n.scroll-left {\\n left: 0;\\n text-align: left;\\n background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.scroll-right {\\n right: 0;\\n text-align: right;\\n background: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.v-enter-active, .v-leave-active {\\n transition: height .2s;\\n}\\n.v-enter, .v-leave-to {\\n height: 0;\\n}\\n.fade-enter-active, .fade-leave-active {\\n transition: opacity .2s;\\n}\\n.fade-enter, .fade-leave-to {\\n opacity: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nsvg[data-v-586eea86] {\\n display: block;\\n pointer-events: auto;\\n}\\nsvg line[data-v-586eea86] {\\n stroke: rgba(42, 183, 217, 0.8);\\n stroke-linecap: round;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/map-svg.vue\"],\"names\":[],\"mappings\":\";AA4QA;EACA,cAAA;EACA,oBAAA;AACA;AACA;EACA,+BAAA;EACA,qBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n :width=\\\"size\\\"\\n :height=\\\"size\\\"\\n :viewBox=\\\"`0 0 ${size} ${size}`\\\"\\n @wheel.prevent=\\\"onWheel\\\"\\n v-hammer:tap=\\\"onTap\\\"\\n v-hammer:pan=\\\"onPan\\\"\\n :hammer-options.prop=\\\"{pan: { threshold: 0 }}\\\"\\n >\\n <g :opacity=\\\"opacity\\\">\\n <rect :width=\\\"size\\\" :height=\\\"size\\\" fill=\\\"#ccc\\\" />\\n <image\\n :x=\\\"imageX\\\"\\n :y=\\\"imageY\\\"\\n :width=\\\"imageWidth\\\"\\n :height=\\\"imageHeight\\\"\\n :xlink:href=\\\"mapImageUrl\\\"\\n />\\n </g>\\n\\n <path :d=\\\"raderShape\\\" fill=\\\"red\\\" opacity=\\\"0.3\\\" v-if=\\\"isRadarVisible\\\" />\\n\\n <template v-if=\\\"showWalkThrough\\\">\\n <line v-for=\\\"line in mapLines\\\"\\n :key=\\\"line.join('-')\\\"\\n :x1=\\\"pointX(pointById(line[0]))\\\"\\n :y1=\\\"pointY(pointById(line[0]))\\\"\\n :x2=\\\"pointX(pointById(line[1]))\\\"\\n :y2=\\\"pointY(pointById(line[1]))\\\"\\n :stroke-width=\\\"1.5 * zoomScale\\\"\\n :stroke-dasharray=\\\"`${1 * zoomScale}, ${3 * zoomScale}`\\\"\\n v-if=\\\"settings.drawLine\\\"\\n />\\n <circle v-for=\\\"point in mapPoints\\\"\\n :key=\\\"point.pointId\\\"\\n :cx=\\\"pointX(point)\\\"\\n :cy=\\\"pointY(point)\\\"\\n :r=\\\"3 * zoomScale\\\"\\n fill=\\\"#f5f5f5\\\"\\n stroke=\\\"#2AB7D9\\\"\\n :stroke-width=\\\"1.5 * zoomScale\\\"\\n />\\n <circle v-for=\\\"point in mapPoints\\\" v-if=\\\"!point.active\\\"\\n :key=\\\"`clickable-${point.pointId}`\\\"\\n :cx=\\\"pointX(point)\\\"\\n :cy=\\\"pointY(point)\\\"\\n :r=\\\"9 * zoomScale\\\"\\n :fill-opacity=\\\"0\\\"\\n @click=\\\"changePoint({ pointId: point.pointId })\\\"\\n />\\n </template>\\n\\n <circle\\n :cx=\\\"pointX(currentPosition)\\\"\\n :cy=\\\"pointY(currentPosition)\\\"\\n :r=\\\"3 * zoomScale\\\"\\n fill=\\\"#FF7373\\\"\\n stroke=\\\"#FF7373\\\"\\n :stroke-width=\\\"1.5 * zoomScale\\\"\\n v-if=\\\"currentPosition.visible\\\"\\n />\\n </svg>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters, mapActions } from 'vuex'\\n\\nimport * as THREE from 'three'\\nimport TWEEN from '@tweenjs/tween.js'\\n\\nexport default {\\n props: [ 'opacity', 'size', 'showWalkThrough' ],\\n\\n data () {\\n return {\\n currentPosition: {\\n x: -1,\\n y: -1,\\n visible: false\\n },\\n\\n originalWidth: 1,\\n originalHeight: 1,\\n\\n zoomScale: 1,\\n\\n panOffset: {\\n x: 0,\\n y: 0\\n }\\n }\\n },\\n\\n computed: {\\n normalization () {\\n const longSide = Math.max(this.originalWidth , this.originalHeight)\\n return longSide ? this.size / longSide : 0\\n },\\n\\n imageWidth () {\\n return this.originalWidth * this.normalization * this.zoomScale\\n },\\n\\n imageHeight () {\\n return this.originalHeight * this.normalization * this.zoomScale\\n },\\n\\n imageX () {\\n return (this.size - this.imageWidth) / 2 + this.panOffset.x\\n },\\n\\n imageY () {\\n return (this.size - this.imageHeight) / 2 + this.panOffset.y\\n },\\n\\n currentPoint () {\\n return this.mapPoints.find(point => point.active)\\n },\\n\\n raderShape () {\\n const x = this.pointX(this.currentPosition)\\n const y = this.pointY(this.currentPosition)\\n const r = this.size * this.zoomScale * 0.4\\n const dir = this.cameraRotation.y - 90\\n return this.createRaderShape(x, y, r, dir, this.fov.value)\\n },\\n\\n ...mapState('panorama', [\\n 'settings',\\n 'cameraRotation',\\n 'fov'\\n ]),\\n\\n ...mapGetters('panorama', [\\n 'mapImageUrl',\\n 'mapPoints',\\n 'mapLines',\\n 'isRadarVisible'\\n ]),\\n },\\n\\n watch: {\\n mapImageUrl () {\\n this.updateImageSize()\\n },\\n\\n currentPoint: {\\n handler () {\\n if (this.currentPosition.visible && this.currentPoint.visible) {\\n new TWEEN.Tween(this.currentPosition)\\n .to({ x: this.currentPoint.x, y: this.currentPoint.y }, 500)\\n .easing(TWEEN.Easing.Quadratic.InOut)\\n .start()\\n\\n } else {\\n this.currentPosition.x = this.currentPoint.x\\n this.currentPosition.y = this.currentPoint.y\\n this.currentPosition.visible = this.currentPoint.visible\\n }\\n },\\n deep: true\\n }\\n },\\n\\n methods: {\\n async updateImageSize() {\\n const image = await this.getImage(this.mapImageUrl)\\n this.originalWidth = image.naturalWidth\\n this.originalHeight = image.naturalHeight\\n },\\n\\n getImage (url) {\\n return new Promise((resolve, reject) => {\\n const image = new Image()\\n image.onload = () => resolve(image)\\n image.onerror = () => reject(image)\\n image.src = url\\n })\\n },\\n\\n createRaderShape (cx, cy, r, dir, fov) {\\n const x1 = Math.cos(THREE.MathUtils.degToRad(dir - fov / 2)) * r\\n const y1 = Math.sin(THREE.MathUtils.degToRad(dir - fov / 2)) * r\\n const x2 = Math.cos(THREE.MathUtils.degToRad(dir + fov / 2)) * r\\n const y2 = Math.sin(THREE.MathUtils.degToRad(dir + fov / 2)) * r\\n const dx = x2 - x1\\n const dy = y2 - y1\\n return `M ${cx} ${cy} l ${x1} ${y1} a ${r} ${r} 0 0 1 ${dx} ${dy} z`\\n },\\n\\n onTap () {\\n this.$emit('tap')\\n },\\n\\n onWheel (e) {\\n if (!this.showWalkThrough) return\\n\\n const delta = Math.sign(e.wheelDeltaY || e.wheelDelta || e.deltaY || e.detail) / 5\\n this.zoom(this.zoomScale + delta, e.offsetX / this.size, e.offsetY / this.size)\\n },\\n\\n zoom (zoomScale, viewFocalCurrentPointX, viewFocalCurrentPointY) {\\n zoomScale = THREE.MathUtils.clamp(zoomScale, 1, 5)\\n if (this.zoomScale !== zoomScale) {\\n const imageFocalCurrentPointX = (viewFocalCurrentPointX * this.size - this.imageX) / this.imageWidth\\n const imageFocalCurrentPointY = (viewFocalCurrentPointY * this.size - this.imageY) / this.imageHeight\\n this.zoomScale = zoomScale\\n this.panTo(imageFocalCurrentPointX, imageFocalCurrentPointY, viewFocalCurrentPointX, viewFocalCurrentPointY)\\n this.$emit('zoom', this.zoomScale)\\n }\\n },\\n\\n panTo (imageFocalCurrentPointX, imageFocalCurrentPointY, viewFocalCurrentPointX, viewFocalCurrentPointY) {\\n const dx = viewFocalCurrentPointX * this.size - (imageFocalCurrentPointX * this.imageWidth + this.imageX)\\n const dy = viewFocalCurrentPointY * this.size - (imageFocalCurrentPointY * this.imageHeight + this.imageY)\\n this.pan(this.panOffset.x + dx, this.panOffset.y + dy)\\n },\\n\\n onPan(e) {\\n if (!this.showWalkThrough) return\\n\\n this.pan(this.panOffset.x + e.velocityX * 10, this.panOffset.y + e.velocityY * 10)\\n },\\n\\n pan (x, y) {\\n this.panOffset.x = x\\n this.panOffset.y = y\\n this.restrictPan()\\n },\\n\\n restrictPan () {\\n const xGap = Math.max((this.imageWidth - this.size) / 2, 0)\\n const yGap = Math.max((this.imageHeight - this.size) / 2, 0)\\n this.panOffset.x = THREE.MathUtils.clamp(this.panOffset.x, -xGap, xGap)\\n this.panOffset.y = THREE.MathUtils.clamp(this.panOffset.y, -yGap, yGap)\\n },\\n\\n pointById (pointId) {\\n return this.mapPoints.find(point => point.pointId == pointId)\\n },\\n\\n pointX (point) {\\n return point.x * this.imageWidth + this.imageX\\n },\\n\\n pointY (point) {\\n return point.y * this.imageHeight + this.imageY\\n },\\n\\n ...mapActions('panorama', [\\n 'changePoint'\\n ])\\n },\\n\\n created () {\\n this.currentPosition.x = this.currentPoint.x\\n this.currentPosition.y = this.currentPoint.y\\n this.currentPosition.visible = this.currentPoint.visible\\n },\\n\\n mounted () {\\n this.updateImageSize()\\n }\\n}\\n</script>\\n\\n<style scoped>\\nsvg {\\n display: block;\\n pointer-events: auto;\\n}\\nsvg line {\\n stroke: rgba(42, 183, 217, 0.8);\\n stroke-linecap: round;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.map-view[data-v-6a80d33b] {\\n position: absolute;\\n margin: 8px;\\n font-size: 0;\\n pointer-events: auto;\\n cursor: pointer;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n transition: all 0.2s;\\n}\\n.v-enter-active[data-v-6a80d33b], .v-leave-active[data-v-6a80d33b] {\\n transition: all .2s;\\n}\\n.v-enter[data-v-6a80d33b], .v-leave-to[data-v-6a80d33b] {\\n opacity: 0;\\n}\\n.map-large.v-enter[data-v-6a80d33b], .map-large.v-leave-to[data-v-6a80d33b] {\\n width: 60px;\\n height: 60px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/map-view.vue\"],\"names\":[],\"mappings\":\";AA8BA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;EACA,eAAA;EACA,0CAAA;EACA,oBAAA;AACA;AACA;EACA,mBAAA;AACA;AACA;EACA,UAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition v-if=\\\"mapImageUrl\\\">\\n <keep-alive>\\n <map-small class=\\\"map-view\\\" @small=\\\"small = $event\\\" v-if=\\\"small\\\" />\\n <map-large class=\\\"map-view\\\" @small=\\\"small = $event\\\" v-if=\\\"!small\\\" />\\n </keep-alive>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapGetters } from 'vuex'\\nimport MapSmall from './map-small.vue'\\nimport MapLarge from './map-large.vue'\\n\\nexport default {\\n components: { MapSmall, MapLarge },\\n data () {\\n return {\\n small: true\\n }\\n },\\n computed: {\\n ...mapGetters('panorama', [\\n 'mapImageUrl'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.map-view {\\n position: absolute;\\n margin: 8px;\\n font-size: 0;\\n pointer-events: auto;\\n cursor: pointer;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n transition: all 0.2s;\\n}\\n.v-enter-active, .v-leave-active {\\n transition: all .2s;\\n}\\n.v-enter, .v-leave-to {\\n opacity: 0;\\n}\\n.map-large.v-enter, .map-large.v-leave-to {\\n width: 60px;\\n height: 60px;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.button[data-v-ddf031da] {\\n /* aタグのリセット */\\n text-decoration: none;\\n\\n /* buttonタグのリセット */\\n font-size: 1em;\\n line-height: 1.5em;\\n border-style: solid;\\n\\n /* 外見 */\\n text-align: center;\\n background-color: #2ad0d9;\\n color: white;\\n padding: 4px 24px;\\n border-radius: 4px;\\n border-color: #14aec8;\\n border-width: 1px;\\n}\\n.overlay-message-modal[data-v-ddf031da] {\\n width: 275px\\n}\\n.overlay-button[data-v-ddf031da] {\\n background-color: transparent;\\n border: rgba(0, 0, 0, 0);\\n padding: 0;\\n\\n /* クリッカバブル */\\n pointer-events: auto;\\n cursor: pointer;\\n margin: 16px 12px 0 0;\\n}\\n.overlay-button img[data-v-ddf031da] {\\n width: 100%;\\n}\\n.message-modal[data-v-ddf031da] {\\n /* 配置 */\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n transform: translateY(-50%) translateX(-50%);\\n -webkit-transform: translateY(-50%) translateX(-50%);\\n margin: auto;\\n width: min(100%, 400px);\\n /* ヘッダー(44px) + フッター(44px) + 上下余白(16px) = 104px */\\n max-height: calc(100% - 104px);\\n\\n /* クリッカバブル */\\n pointer-events: auto;\\n\\n /* 外見 */\\n background-color: rgba(255, 255, 255, 0.8);\\n padding: 8px;\\n border-radius: 4px;\\n display: flex;\\n flex-direction: column;\\n}\\n.message-modal-header[data-v-ddf031da] {\\n text-align: right;\\n}\\n.button-close[data-v-ddf031da] {\\n padding: 2px;\\n border: none;\\n border-radius: 50%;\\n font-size: 1em;\\n line-height: 1em;\\n width: calc(1em + 2px * 2);\\n height: calc(1em + 2px * 2);\\n}\\n.message-modal-content[data-v-ddf031da] {\\n padding: 4px 16px;\\n overflow: auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/overlay-message-modal.vue\"],\"names\":[],\"mappings\":\";AA6DA;EACA,aAAA;EACA,qBAAA;;EAEA,kBAAA;EACA,cAAA;EACA,kBAAA;EACA,mBAAA;;EAEA,OAAA;EACA,kBAAA;EACA,yBAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;AACA;AACA;EACA;AACA;AACA;EACA,6BAAA;EACA,wBAAA;EACA,UAAA;;EAEA,YAAA;EACA,oBAAA;EACA,eAAA;EACA,qBAAA;AACA;AACA;EACA,WAAA;AACA;AACA;EACA,OAAA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,4CAAA;EACA,oDAAA;EACA,YAAA;EACA,uBAAA;EACA,iDAAA;EACA,8BAAA;;EAEA,YAAA;EACA,oBAAA;;EAEA,OAAA;EACA,0CAAA;EACA,YAAA;EACA,kBAAA;EACA,aAAA;EACA,sBAAA;AACA;AACA;EACA,iBAAA;AACA;AACA;EACA,YAAA;EACA,YAAA;EACA,kBAAA;EACA,cAAA;EACA,gBAAA;EACA,0BAAA;EACA,2BAAA;AACA;AACA;EACA,iBAAA;EACA,cAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"overlay-message-modal\\\" v-if=\\\"enable\\\">\\n <button\\n class=\\\"overlay-button\\\"\\n v-if=\\\"!showModal\\\"\\n @click.prevent=\\\"showModal = true\\\">\\n <img src=\\\"@/images/panoramas/items/renovation_modal_button.png\\\" />\\n </button>\\n <div\\n class=\\\"message-modal\\\"\\n v-if=\\\"showModal\\\"\\n @click.stop=\\\"showModal = false\\\">\\n <div class=\\\"message-modal-header\\\">\\n <button\\n class=\\\"button button-close\\\"\\n @click.prevent=\\\"showModal = false\\\">\\n ✕\\n </button>\\n </div>\\n <div class=\\\"message-modal-content\\\">\\n <div style=\\\"padding-bottom: 12px;\\\" v-html=\\\"overlayModalData.content\\\"></div>\\n <div style=\\\"text-align: center;\\\">\\n <a\\n v-if=\\\"overlayModalData.external_url\\\"\\n :href=\\\"overlayModalData.external_url\\\"\\n v-html=\\\"overlayModalData.external_label\\\"\\n class=\\\"button\\\"\\n target=\\\"_blank\\\"\\n @click.stop>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n</template>\\n\\n<script>\\nimport { mapGetters } from 'vuex'\\n\\nexport default {\\n data() {\\n return { showModal: false }\\n },\\n computed: {\\n ...mapGetters('panorama', [\\n 'currentItem'\\n ]),\\n enable() {\\n return this.overlayModalData && this.overlayModalData.enable\\n },\\n overlayModalData() {\\n return this.currentItem &&\\n this.currentItem.meta_data &&\\n this.currentItem.meta_data.common &&\\n this.currentItem.meta_data.common.overlay_modal\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.button {\\n /* aタグのリセット */\\n text-decoration: none;\\n\\n /* buttonタグのリセット */\\n font-size: 1em;\\n line-height: 1.5em;\\n border-style: solid;\\n\\n /* 外見 */\\n text-align: center;\\n background-color: #2ad0d9;\\n color: white;\\n padding: 4px 24px;\\n border-radius: 4px;\\n border-color: #14aec8;\\n border-width: 1px;\\n}\\n.overlay-message-modal {\\n width: 275px\\n}\\n.overlay-button {\\n background-color: transparent;\\n border: rgba(0, 0, 0, 0);\\n padding: 0;\\n\\n /* クリッカバブル */\\n pointer-events: auto;\\n cursor: pointer;\\n margin: 16px 12px 0 0;\\n}\\n.overlay-button img {\\n width: 100%;\\n}\\n.message-modal {\\n /* 配置 */\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n transform: translateY(-50%) translateX(-50%);\\n -webkit-transform: translateY(-50%) translateX(-50%);\\n margin: auto;\\n width: min(100%, 400px);\\n /* ヘッダー(44px) + フッター(44px) + 上下余白(16px) = 104px */\\n max-height: calc(100% - 104px);\\n\\n /* クリッカバブル */\\n pointer-events: auto;\\n\\n /* 外見 */\\n background-color: rgba(255, 255, 255, 0.8);\\n padding: 8px;\\n border-radius: 4px;\\n display: flex;\\n flex-direction: column;\\n}\\n.message-modal-header {\\n text-align: right;\\n}\\n.button-close {\\n padding: 2px;\\n border: none;\\n border-radius: 50%;\\n font-size: 1em;\\n line-height: 1em;\\n width: calc(1em + 2px * 2);\\n height: calc(1em + 2px * 2);\\n}\\n.message-modal-content {\\n padding: 4px 16px;\\n overflow: auto;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.panorama-zoom[data-v-dd6e6d88] {\\n position: absolute;\\n right: 8px;\\n transition: all 0.2s;\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n border-radius: 4px;\\n pointer-events: auto;\\n}\\n.label[data-v-dd6e6d88] {\\n color: rgba(255, 255, 255, 0.5);\\n font-family: monospace;\\n font-size: 14px;\\n line-height: 20px;\\n text-align: center;\\n}\\n.slider[data-v-dd6e6d88] {\\n width: 30px;\\n height: 50px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/panorama-zoom.vue\"],\"names\":[],\"mappings\":\";AAmCA;EACA,kBAAA;EACA,UAAA;EACA,oBAAA;EACA,oCAAA;EACA,0CAAA;EACA,kBAAA;EACA,oBAAA;AACA;AACA;EACA,+BAAA;EACA,sBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"panorama-zoom\\\" :style=\\\"{ bottom: panoramaZoomBottom + 'px' }\\\">\\n <div class=\\\"label\\\">﹢</div>\\n <slider :vertical=\\\"true\\\" :min=\\\"fov.min\\\" :max=\\\"fov.max\\\" v-model=\\\"fovValue\\\" />\\n <div class=\\\"label\\\">﹣</div>\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters, mapActions } from 'vuex'\\nimport Slider from './slider.vue'\\n\\nexport default {\\n components: { Slider },\\n computed: {\\n ...mapState('panorama', [\\n 'fov'\\n ]),\\n ...mapGetters('panorama', [\\n 'panoramaZoomBottom'\\n ]),\\n fovValue: {\\n get () { return this.fov.value },\\n set (value) { this.changeFov(value) }\\n }\\n },\\n methods: {\\n ...mapActions('panorama', [\\n 'changeFov'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.panorama-zoom {\\n position: absolute;\\n right: 8px;\\n transition: all 0.2s;\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n border-radius: 4px;\\n pointer-events: auto;\\n}\\n.label {\\n color: rgba(255, 255, 255, 0.5);\\n font-family: monospace;\\n font-size: 14px;\\n line-height: 20px;\\n text-align: center;\\n}\\n.slider {\\n width: 30px;\\n height: 50px;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.point-thumbnails[data-v-3f18314c] {\\n position: absolute;\\n width: 100%;\\n height: 96px;\\n bottom: 44px; /* ツールバー */\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n pointer-events: auto;\\n}\\n.title[data-v-3f18314c] {\\n color: #fff;\\n font-size: 14px;\\n line-height: 20px;\\n height: 20px;\\n margin-top: 2px;\\n margin-left: 10px;\\n}\\n.thumbnails[data-v-3f18314c] {\\n margin: 5px 0;\\n white-space: nowrap;\\n}\\n.thumbnail[data-v-3f18314c] {\\n display: inline-block;\\n vertical-align: top;\\n margin: 0 2px;\\n background-color: transparent;\\n}\\n.thumbnail[data-v-3f18314c]:first-child {\\n margin-left: 10px;\\n}\\n.thumbnail[data-v-3f18314c]:last-child {\\n margin-right: 10px;\\n}\\n.image[data-v-3f18314c] {\\n position: relative;\\n width: calc(90px + 4px);\\n height: calc(45px + 4px);\\n background-color: rgba(0,0,0,0.2);\\n border: solid 2px #ccc;\\n}\\n.image img[data-v-3f18314c] {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.caption[data-v-3f18314c] {\\n height: 18px;\\n line-height: 18px;\\n font-size: 12px;\\n text-align: center;\\n color: #fff;\\n width: calc(90px + 4px);\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.scroll-left[data-v-3f18314c], .scroll-right[data-v-3f18314c] {\\n position: absolute;\\n top: 27px;\\n height: 49px;\\n width: 30px;\\n padding: 8px 4px;\\n font-size: 20px;\\n font-weight: bold;\\n color: #fff;\\n}\\n.scroll-left[data-v-3f18314c] {\\n left: 0;\\n text-align: left;\\n background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.scroll-right[data-v-3f18314c] {\\n right: 0;\\n text-align: right;\\n background: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.v-enter-active[data-v-3f18314c], .v-leave-active[data-v-3f18314c] {\\n transition: height .2s;\\n}\\n.v-enter[data-v-3f18314c], .v-leave-to[data-v-3f18314c] {\\n height: 0;\\n}\\n.fade-enter-active[data-v-3f18314c], .fade-leave-active[data-v-3f18314c] {\\n transition: opacity .2s;\\n}\\n.fade-enter[data-v-3f18314c], .fade-leave-to[data-v-3f18314c] {\\n opacity: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/point-thumbnails.vue\"],\"names\":[],\"mappings\":\";AA2EA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,YAAA,EAAA,UAAA;EACA,oCAAA;EACA,0CAAA;EACA,gBAAA;EACA,oBAAA;AACA;AACA;EACA,WAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;AACA;AACA;EACA,aAAA;EACA,mBAAA;AACA;AACA;EACA,qBAAA;EACA,mBAAA;EACA,aAAA;EACA,6BAAA;AACA;AACA;EACA,iBAAA;AACA;AACA;EACA,kBAAA;AACA;AACA;EACA,kBAAA;EACA,uBAAA;EACA,wBAAA;EACA,iCAAA;EACA,sBAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,QAAA;EACA,gCAAA;EACA,eAAA;EACA,gBAAA;AACA;AACA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;EACA,WAAA;EACA,uBAAA;EACA,gBAAA;EACA,uBAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,WAAA;AACA;AACA;EACA,OAAA;EACA,gBAAA;EACA,sEAAA;AACA;AACA;EACA,QAAA;EACA,iBAAA;EACA,qEAAA;AACA;AACA;EACA,sBAAA;AACA;AACA;EACA,SAAA;AACA;AACA;EACA,uBAAA;AACA;AACA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition>\\n <div class=\\\"point-thumbnails\\\">\\n <div>\\n <div class=\\\"title\\\">撮影場所の移動</div>\\n </div>\\n <scrollable class=\\\"thumbnails\\\" ref=\\\"scrollable\\\"\\n @update:isLeftScrollable=\\\"isLeftScrollable = $event\\\"\\n @update:isRightScrollable=\\\"isRightScrollable = $event\\\"\\n >\\n <div class=\\\"thumbnail\\\" v-for=\\\"thumbnail in pointThumbnails\\\" :key=\\\"thumbnail.pointId\\\">\\n <div class=\\\"image\\\"\\n :class=\\\"{ active: thumbnail.active }\\\"\\n :style=\\\"{ borderColor: thumbnailBorderColor(thumbnail) }\\\"\\n @click=\\\"hideItemThumbnails(); changePoint({ pointId: thumbnail.pointId })\\\"\\n >\\n <img \\n :src=\\\"thumbnail.imageUrl\\\"\\n style=\\\"pointer-events: none;\\\"\\n @copy=\\\"onCopy($event)\\\"\\n >\\n </div>\\n <div class=\\\"caption\\\">{{ thumbnail.caption }}</div>\\n </div>\\n </scrollable>\\n <transition-group name=\\\"fade\\\">\\n <div class=\\\"scroll-left\\\" @click=\\\"onScrollLeft\\\" v-if=\\\"isLeftScrollable\\\" key=\\\"left\\\"><</div>\\n <div class=\\\"scroll-right\\\" @click=\\\"onScrollRight\\\" v-if=\\\"isRightScrollable\\\" key=\\\"right\\\">></div>\\n </transition-group>\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapGetters, mapActions, mapMutations } from 'vuex'\\nimport Scrollable from './scrollable.vue'\\n\\nexport default {\\n components: { Scrollable },\\n data () {\\n return {\\n isLeftScrollable: false,\\n isRightScrollable: false\\n }\\n },\\n computed: {\\n ...mapGetters('panorama', [\\n 'pointThumbnails',\\n 'theme'\\n ])\\n },\\n methods: {\\n ...mapActions('panorama', [\\n 'changePoint'\\n ]),\\n ...mapMutations('panorama', [\\n 'hideItemThumbnails' // 撮影点一覧を触ってPointを切り替えたのに、突然表示がアイテムリストに切り替わってしまうのを防ぐ\\n ]),\\n thumbnailBorderColor (thumbnal) {\\n return thumbnal.active ? this.theme.thumbnailBorder.activeColor : this.theme.thumbnailBorder.defaultColor\\n },\\n onScrollLeft () {\\n this.$refs.scrollable.scroll(-1)\\n },\\n onScrollRight () {\\n this.$refs.scrollable.scroll(1)\\n },\\n onCopy (event) {\\n event.preventDefault()\\n },\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.point-thumbnails {\\n position: absolute;\\n width: 100%;\\n height: 96px;\\n bottom: 44px; /* ツールバー */\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n pointer-events: auto;\\n}\\n.title {\\n color: #fff;\\n font-size: 14px;\\n line-height: 20px;\\n height: 20px;\\n margin-top: 2px;\\n margin-left: 10px;\\n}\\n.thumbnails {\\n margin: 5px 0;\\n white-space: nowrap;\\n}\\n.thumbnail {\\n display: inline-block;\\n vertical-align: top;\\n margin: 0 2px;\\n background-color: transparent;\\n}\\n.thumbnail:first-child {\\n margin-left: 10px;\\n}\\n.thumbnail:last-child {\\n margin-right: 10px;\\n}\\n.image {\\n position: relative;\\n width: calc(90px + 4px);\\n height: calc(45px + 4px);\\n background-color: rgba(0,0,0,0.2);\\n border: solid 2px #ccc;\\n}\\n.image img {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.caption {\\n height: 18px;\\n line-height: 18px;\\n font-size: 12px;\\n text-align: center;\\n color: #fff;\\n width: calc(90px + 4px);\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.scroll-left, .scroll-right {\\n position: absolute;\\n top: 27px;\\n height: 49px;\\n width: 30px;\\n padding: 8px 4px;\\n font-size: 20px;\\n font-weight: bold;\\n color: #fff;\\n}\\n.scroll-left {\\n left: 0;\\n text-align: left;\\n background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.scroll-right {\\n right: 0;\\n text-align: right;\\n background: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent);\\n}\\n.v-enter-active, .v-leave-active {\\n transition: height .2s;\\n}\\n.v-enter, .v-leave-to {\\n height: 0;\\n}\\n.fade-enter-active, .fade-leave-active {\\n transition: opacity .2s;\\n}\\n.fade-enter, .fade-leave-to {\\n opacity: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.scrollable[data-v-664e9c2e] {\\n overflow-x: scroll;\\n overflow-y: hidden;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/scrollable.vue\"],\"names\":[],\"mappings\":\";AA4EA;EACA,kBAAA;EACA,kBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"scrollable\\\" @scroll=\\\"onScroll\\\">\\n <slot></slot>\\n </div>\\n</template>\\n\\n<script>\\nimport TWEEN from '@tweenjs/tween.js'\\n\\nexport default {\\n data () {\\n return {\\n clientWidth: 0,\\n scrollWidth: 0,\\n scrollLeft: 0\\n }\\n },\\n\\n computed: {\\n maxScrollLeft () {\\n return this.scrollWidth - this.clientWidth\\n },\\n isLeftScrollable () {\\n return this.scrollLeft > 0\\n },\\n isRightScrollable () {\\n return this.scrollLeft < this.maxScrollLeft\\n }\\n },\\n\\n watch: {\\n isLeftScrollable () {\\n this.$emit('update:isLeftScrollable', this.isLeftScrollable)\\n },\\n isRightScrollable () {\\n this.$emit('update:isRightScrollable', this.isRightScrollable)\\n },\\n '$screen.width'() {\\n this.updateWidth()\\n }\\n },\\n\\n methods: {\\n updateWidth () {\\n this.scrollWidth = this.$el.scrollWidth\\n this.clientWidth = this.$el.clientWidth\\n },\\n onScroll () {\\n this.scrollLeft = this.$el.scrollLeft\\n },\\n scroll (page) {\\n const newScrollLeft = Math.max(0, Math.min(this.maxScrollLeft, this.$el.scrollLeft + page * this.clientWidth))\\n\\n new TWEEN.Tween(this.$el)\\n .to({ scrollLeft: newScrollLeft }, 200)\\n .easing(TWEEN.Easing.Quadratic.Out)\\n .start()\\n }\\n },\\n\\n mounted() {\\n this.updateWidth()\\n },\\n\\n activated () {\\n this.updateWidth()\\n this.$el.scrollLeft = this.scrollLeft\\n },\\n\\n deactivated () {\\n this.scrollLeft = this.$el.scrollLeft\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.scrollable {\\n overflow-x: scroll;\\n overflow-y: hidden;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.slider[data-v-5bf7fa6a] {\\n position: relative;\\n}\\n.track-outer[data-v-5bf7fa6a], .track[data-v-5bf7fa6a] {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n.track-outer[data-v-5bf7fa6a] {\\n background-color: rgba(255, 255, 255, 0.5);\\n border-radius: 2px;\\n}\\n.horizontal .track-outer[data-v-5bf7fa6a] {\\n width: 100%;\\n height: 4px;\\n}\\n.horizontal .track[data-v-5bf7fa6a] {\\n width: calc(100% - 16px);\\n height: 100%;\\n}\\n.vertical .track-outer[data-v-5bf7fa6a] {\\n width: 4px;\\n height: 100%;\\n}\\n.vertical .track[data-v-5bf7fa6a] {\\n width: 100%;\\n height: calc(100% - 16px);\\n}\\n.thumb[data-v-5bf7fa6a] {\\n position: absolute;\\n width: 44px;\\n height: 44px;\\n}\\n.horizontal .thumb[data-v-5bf7fa6a] {\\n transform: translate(-22px, -20px);\\n}\\n.vertical .thumb[data-v-5bf7fa6a] {\\n transform: translate(-20px, -22px);\\n}\\n.thumb[data-v-5bf7fa6a]:before {\\n content: \\\"\\\";\\n background-color: #fff;\\n width: 16px;\\n height: 16px;\\n border-radius: 50%;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/slider.vue\"],\"names\":[],\"mappings\":\";AA+CA;EACA,kBAAA;AACA;AACA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;AACA;AACA;EACA,0CAAA;EACA,kBAAA;AACA;AACA;EACA,WAAA;EACA,WAAA;AACA;AACA;EACA,wBAAA;EACA,YAAA;AACA;AACA;EACA,UAAA;EACA,YAAA;AACA;AACA;EACA,WAAA;EACA,yBAAA;AACA;AAEA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;AACA;AACA;EACA,kCAAA;AACA;AACA;EACA,kCAAA;AACA;AACA;EACA,WAAA;EACA,sBAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"slider\\\" :class=\\\"vertical ? 'vertical' : 'horizontal'\\\">\\n <div class=\\\"track-outer\\\">\\n <div class=\\\"track\\\" ref=\\\"track\\\">\\n <div class=\\\"thumb\\\" :style=\\\"thumbStyle\\\" v-hammer:pan=\\\"onPan\\\" v-hammer:panstart=\\\"onPanStart\\\" :hammer-options.prop=\\\"{pan: { direction: 'all', threshold: 0 }}\\\" />\\n </div>\\n </div>\\n </div>\\n</template>\\n\\n<script>\\nexport default {\\n props: [ 'value', 'min', 'max', 'vertical' ],\\n\\n data() {\\n return {\\n oldValue: null,\\n trackLength: null\\n }\\n },\\n\\n computed: {\\n thumbStyle () {\\n const pos = (this.value - this.min) / (this.max - this.min) * 100\\n return this.vertical ? { top: pos + '%' } : { left: pos + '%' }\\n }\\n },\\n\\n methods: {\\n updateValue (value) {\\n this.$emit('input', Math.max(this.min, Math.min(this.max, value)))\\n },\\n\\n onPanStart(e) {\\n this.oldValue = this.value\\n this.trackLength = this.vertical ? this.$refs.track.clientHeight : this.$refs.track.clientWidth\\n },\\n\\n onPan(e) {\\n const delta = (this.vertical ? e.velocityY : e.velocityX) * 20\\n this.updateValue(delta / this.trackLength * (this.max - this.min) + this.value)\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.slider {\\n position: relative;\\n}\\n.track-outer, .track {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n.track-outer {\\n background-color: rgba(255, 255, 255, 0.5);\\n border-radius: 2px;\\n}\\n.horizontal .track-outer {\\n width: 100%;\\n height: 4px;\\n}\\n.horizontal .track {\\n width: calc(100% - 16px);\\n height: 100%;\\n}\\n.vertical .track-outer {\\n width: 4px;\\n height: 100%;\\n}\\n.vertical .track {\\n width: 100%;\\n height: calc(100% - 16px);\\n}\\n\\n.thumb {\\n position: absolute;\\n width: 44px;\\n height: 44px;\\n}\\n.horizontal .thumb {\\n transform: translate(-22px, -20px);\\n}\\n.vertical .thumb {\\n transform: translate(-20px, -22px);\\n}\\n.thumb:before {\\n content: \\\"\\\";\\n background-color: #fff;\\n width: 16px;\\n height: 16px;\\n border-radius: 50%;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.telop[data-v-d3a937a2] {\\n height: 24px;\\n line-height: 24px;\\n font-size: 14px;\\n overflow: hidden;\\n pointer-events: auto;\\n}\\n.text[data-v-d3a937a2] {\\n position: absolute;\\n white-space: nowrap;\\n color: #fff;\\n padding-left: 100%;\\n\\n animation: marquee-d3a937a2 30s linear infinite;\\n}\\n@keyframes marquee-d3a937a2 {\\nfrom { transform: translate(0%);\\n}\\n100%,to { transform: translate(-100%);\\n}\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/telop.vue\"],\"names\":[],\"mappings\":\";AAoBA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,oBAAA;AACA;AAEA;EACA,kBAAA;EACA,mBAAA;EACA,WAAA;EACA,kBAAA;;EAEA,+CAAA;AACA;AAEA;AACA,UAAA,wBAAA;AAAA;AACA,UAAA,2BAAA;AAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"telop\\\">\\n <div class=\\\"text\\\">\\n <slot></slot>\\n </div>\\n </div>\\n</template>\\n\\n<script>\\nexport default {\\n props: [ 'speed' ],\\n\\n data () {\\n return {\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.telop {\\n height: 24px;\\n line-height: 24px;\\n font-size: 14px;\\n overflow: hidden;\\n pointer-events: auto;\\n}\\n\\n.text {\\n position: absolute;\\n white-space: nowrap;\\n color: #fff;\\n padding-left: 100%;\\n\\n animation: marquee 30s linear infinite;\\n}\\n\\n@keyframes marquee {\\n from { transform: translate(0%); }\\n 100%,to { transform: translate(-100%); }\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.title-bar[data-v-17f57eb4] {\\n position: absolute;\\n top: 0;\\n height: 44px;\\n left: 0px;\\n right: 0px;\\n background-color: #2AB7D9;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);\\n pointer-events: auto;\\n}\\nh1[data-v-17f57eb4] {\\n position: absolute;\\n left: 44px;\\n right: 44px; /* 88px */\\n margin: 0;\\n padding: 0;\\n font-size: 16px;\\n line-height: 44px;\\n color: #fff;\\n white-space: nowrap;\\n font-weight: normal;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/title-bar.vue\"],\"names\":[],\"mappings\":\";AAsDA;EACA,kBAAA;EACA,MAAA;EACA,YAAA;EACA,SAAA;EACA,UAAA;EACA,yBAAA;EACA,0CAAA;EACA,oBAAA;AACA;AAEA;EACA,kBAAA;EACA,UAAA;EACA,WAAA,EAAA,SAAA;EACA,SAAA;EACA,UAAA;EACA,eAAA;EACA,iBAAA;EACA,WAAA;EACA,mBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"title-bar\\\" :style=\\\"{ backgroundColor: theme.color2 }\\\">\\n <button-icon class=\\\"button-left\\\"\\n :icon=\\\"theme.icons.back\\\"\\n @click=\\\"backPrevPoint\\\"\\n v-if=\\\"backButtonVisible\\\"\\n />\\n\\n <h1 :style=\\\"{ color: theme.color1 }\\\">{{ title }}</h1>\\n\\n <template>\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.more\\\"\\n @click=\\\"toggleMoreMenu\\\"\\n v-if=\\\"settings.imageQualityModal\\\"\\n />\\n <button-icon class=\\\"button-right\\\"\\n :icon=\\\"theme.icons.info\\\"\\n @click=\\\"toggleInfoModal\\\"\\n v-if=\\\"false\\\"\\n />\\n </template>\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters, mapMutations, mapActions } from 'vuex'\\nimport ButtonIcon from './button-icon.vue'\\n\\nexport default {\\n components: { ButtonIcon },\\n computed: {\\n ...mapState('panorama', [\\n 'settings'\\n ]),\\n ...mapGetters('panorama', [\\n 'backButtonVisible',\\n 'title',\\n 'theme'\\n ])\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'toggleMoreMenu',\\n 'toggleInfoModal'\\n ]),\\n ...mapActions('panorama', [\\n 'backPrevPoint'\\n ])\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.title-bar {\\n position: absolute;\\n top: 0;\\n height: 44px;\\n left: 0px;\\n right: 0px;\\n background-color: #2AB7D9;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);\\n pointer-events: auto;\\n}\\n\\nh1 {\\n position: absolute;\\n left: 44px;\\n right: 44px; /* 88px */\\n margin: 0;\\n padding: 0;\\n font-size: 16px;\\n line-height: 44px;\\n color: #fff;\\n white-space: nowrap;\\n font-weight: normal;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.ui-full[data-v-2f316488] {\\n pointer-events: none;\\n}\\n.telop-wrapper[data-v-2f316488] {\\n position: absolute;\\n top: 44px;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n}\\n.panorama-header[data-v-2f316488] {\\n position: absolute;\\n right: 0;\\n width: calc(100% - 76px);\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-end;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/ui-full.vue\"],\"names\":[],\"mappings\":\";AAoHA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;EACA,oCAAA;EACA,0CAAA;AACA;AACA;EACA,kBAAA;EACA,QAAA;EACA,wBAAA;EACA,aAAA;EACA,eAAA;EACA,yBAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"ui-full\\\" onselectstart=\\\"return false\\\" style=\\\"user-select:none;\\\">\\n <div class=\\\"telop-wrapper\\\" v-if=\\\"telopEnabled\\\">\\n <telop v-if=\\\"parentPlaceTelopText\\\">{{ parentPlaceTelopText }}</telop>\\n <telop :speed=\\\"itemTelopSpeed\\\" v-if=\\\"itemTelopText\\\">{{ itemTelopText }}</telop>\\n </div>\\n\\n <keep-alive>\\n <item-thumbnails v-if=\\\"displayingThumbnailList == 'Items'\\\" />\\n <point-thumbnails v-if=\\\"displayingThumbnailList == 'Points'\\\" />\\n </keep-alive>\\n\\n <title-bar />\\n <bottom-bar />\\n\\n <panorama-zoom v-if=\\\"panoramaZoomActive\\\" />\\n\\n <map-view :style=\\\"mapViewStyle\\\" />\\n <div class=\\\"panorama-header\\\" :style=\\\"panoramaHeaderStyle\\\">\\n <excuse-text />\\n <overlay-message-modal />\\n </div>\\n\\n <video-controls v-if=\\\"videoControlsActive\\\" />\\n <video-speed-menu v-if=\\\"videoSpeedMenuActive\\\" />\\n\\n <more-menu v-if=\\\"moreMenuActive\\\" />\\n <info-modal v-if=\\\"infoModalActive\\\" />\\n <image-quality-modal v-if=\\\"imageQualityModalActive\\\" />\\n <airtag-information v-if=\\\"airtagInformationActive\\\" />\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters } from 'vuex'\\n\\nimport Telop from './telop.vue'\\nimport ExcuseText from './excuse-text.vue'\\nimport PointThumbnails from './point-thumbnails.vue'\\nimport ItemThumbnails from './item-thumbnails.vue'\\nimport TitleBar from './title-bar.vue'\\nimport BottomBar from './bottom-bar.vue'\\nimport PanoramaZoom from './panorama-zoom.vue'\\nimport MapView from './map-view.vue'\\nimport VideoControls from './video-controls.vue'\\nimport VideoSpeedMenu from './video-speed-menu.vue'\\nimport MoreMenu from './more-menu.vue'\\nimport InfoModal from './info-modal.vue'\\nimport ImageQualityModal from './image-quality-modal.vue'\\nimport AirtagInformation from './airtag-information.vue'\\nimport OverlayMessageModal from './overlay-message-modal'\\n\\nexport default {\\n components: {\\n Telop, ExcuseText,\\n PointThumbnails, ItemThumbnails,\\n TitleBar, BottomBar,\\n PanoramaZoom, MapView,\\n VideoControls, VideoSpeedMenu,\\n MoreMenu, InfoModal, ImageQualityModal,\\n AirtagInformation, OverlayMessageModal\\n },\\n data() {\\n return {\\n defaultOverlayButtonTop: 60,\\n overlayButtonTop: 0\\n }\\n },\\n computed: {\\n ...mapState('panorama', [\\n 'telopEnabled',\\n 'videoControlsActive',\\n 'videoSpeedMenuActive',\\n 'moreMenuActive',\\n 'infoModalActive',\\n 'imageQualityModalActive',\\n 'airtagInformationActive'\\n ]),\\n ...mapGetters('panorama', [\\n 'parentPlaceTelopText',\\n 'itemTelopText',\\n 'itemTelopSpeed',\\n 'panoramaZoomActive',\\n 'displayingThumbnailList',\\n 'currentItem'\\n ]),\\n telopHeight () {\\n let height = 0\\n if (this.itemTelopText) {\\n height += 24\\n }\\n if (this.parentPlaceTelopText) {\\n height += 24\\n }\\n return height\\n },\\n mapViewStyle () {\\n const top = 44 + this.telopHeight\\n return { top: `${top}px` }\\n },\\n panoramaHeaderStyle () {\\n const top = 44 + this.telopHeight\\n return { top: `${top}px` }\\n },\\n showOverlayModal() {\\n return this.currentItem &&\\n this.currentItem.meta_data &&\\n this.currentItem.meta_data.common &&\\n this.currentItem.meta_data.common.overlay_modal &&\\n this.currentItem.meta_data.common.overlay_modal.enable\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.ui-full {\\n pointer-events: none;\\n}\\n.telop-wrapper {\\n position: absolute;\\n top: 44px;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n}\\n.panorama-header {\\n position: absolute;\\n right: 0;\\n width: calc(100% - 76px);\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-end;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.video-panel[data-v-11b72186] {\\n position: absolute;\\n height: 44px;\\n left: 0;\\n right: 0px;\\n bottom: 0;\\n background-color: #2AB7D9;\\n pointer-events: auto;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);\\n}\\n.button[data-v-11b72186] {\\n position: relative;\\n width: 44px;\\n height: 44px;\\n cursor: pointer;\\n}\\n.button img[data-v-11b72186] {\\n width: 30px;\\n height: 30px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n.button-left[data-v-11b72186] {\\n float: left;\\n}\\n.button-right[data-v-11b72186] {\\n float: right;\\n}\\n.close[data-v-11b72186] {\\n border-left: 1px solid #fff;\\n float: right;\\n}\\n.speed[data-v-11b72186] {\\n float: right;\\n color: #fff;\\n font-size: 14px;\\n vertical-align: middle;\\n line-height: 44px;\\n height: 44px;\\n width: 60px;\\n text-align: center;\\n}\\n.volume[data-v-11b72186] {\\n position: relative;\\n}\\n.v-enter-active[data-v-11b72186], .v-leave-active[data-v-11b72186] {\\n transition: height .2s;\\n}\\n.v-enter[data-v-11b72186], .v-leave-to[data-v-11b72186] {\\n height: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/video-controls.vue\"],\"names\":[],\"mappings\":\";AAuJA;EACA,kBAAA;EACA,YAAA;EACA,OAAA;EACA,UAAA;EACA,SAAA;EACA,yBAAA;EACA,oBAAA;EACA,0CAAA;AACA;AACA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,eAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gCAAA;AACA;AACA;EACA,WAAA;AACA;AACA;EACA,YAAA;AACA;AACA;EACA,2BAAA;EACA,YAAA;AACA;AACA;EACA,YAAA;EACA,WAAA;EACA,eAAA;EACA,sBAAA;EACA,iBAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;AACA;AACA;EACA,kBAAA;AACA;AACA;EACA,sBAAA;AACA;AACA;EACA,SAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition>\\n <div class=\\\"video-panel\\\"\\n :style=\\\"{ backgroundColor: theme.color2 }\\\"\\n @toushstart=\\\"touch\\\"\\n @touchmove=\\\"touch\\\"\\n @touchend=\\\"touch\\\"\\n @mousedown=\\\"touch\\\"\\n @mousemove=\\\"touch\\\"\\n @mouseup=\\\"touch\\\"\\n >\\n <button-icon class=\\\"button-left\\\"\\n :icon=\\\"theme.icons.videoPlay\\\"\\n @click=\\\"playVideo()\\\"\\n v-if=\\\"!videoPlaying\\\"\\n />\\n <button-icon class=\\\"button-left\\\"\\n :icon=\\\"theme.icons.videoPause\\\"\\n @click=\\\"pauseVideo()\\\"\\n v-if=\\\"videoPlaying\\\"\\n />\\n <button-icon class=\\\"button-left\\\"\\n :icon=\\\"theme.icons.videoBwd5\\\"\\n @click=\\\"skipVideo(-5)\\\"\\n />\\n <button-icon class=\\\"button-left\\\"\\n :icon=\\\"theme.icons.videoFwd5\\\"\\n @click=\\\"skipVideo(5)\\\"\\n />\\n <button-icon class=\\\"button-right close\\\"\\n :icon=\\\"theme.icons.close\\\"\\n @click=\\\"toggleVideoControls\\\"\\n />\\n <div class=\\\"button button-right speed\\\" :style=\\\"{ color: theme.color1 }\\\" @click=\\\"toggleVideoSpeedMenu\\\">\\n ×{{ videoSpeed }}\\n </div>\\n <div class=\\\"button-right volume\\\" @mouseover=\\\"mouseOverVolume\\\" @mouseleave=\\\"mouseLeaveVolume\\\">\\n <button-icon\\n :icon=\\\"videoMuted ? theme.icons.volumeOff : theme.icons.volumeUp\\\"\\n @click=\\\"toggleMute\\\"\\n />\\n <video-volume-slider v-if=\\\"videoVolumeSlideActive\\\" />\\n </div>\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapState, mapGetters, mapMutations } from 'vuex'\\nimport screenfull from 'screenfull'\\n\\nimport videoControlsBus from '../video-controls-bus'\\nimport ButtonIcon from './button-icon'\\nimport VideoVolumeSlider from './video-volume-slider'\\n\\nexport default {\\n components: { ButtonIcon, VideoVolumeSlider },\\n data () {\\n return {\\n videoVolumeSlideActive: false\\n }\\n },\\n computed: {\\n ...mapState('panorama', [\\n 'fullscreen',\\n 'locationHashParams',\\n 'videoPlaying',\\n 'videoSpeed',\\n 'videoControlsActive',\\n 'videoMuted'\\n ]),\\n ...mapGetters('panorama', [\\n 'theme'\\n ]),\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'setFullscreen',\\n 'setVideoPlaying',\\n 'toggleVideoControls',\\n 'toggleVideoSpeedMenu'\\n ]),\\n playVideo () {\\n videoControlsBus.$emit('play-video')\\n\\n // 親がいない(iframeではない)場合と既に最大化した後はスキップ\\n if (window.parent == window || Nurve.$store.state.panorama.fullscreenExecuted) return\\n\\n Nurve.$store.commit('panorama/setFullscreenExecuted', true)\\n if (screenfull.isEnabled) {\\n // Fullscreen APIが有効な場合\\n screenfull.request(document.querySelector('#panorama'))\\n } else {\\n // Fullscreen APIを使用できない場合、ブラウザサイズで最大化をiframeの親に要求\\n window.parent?.postMessage(JSON.stringify({\\n action: `nurve-fullscreen-${this.fullscreen ? 'off' : 'on'}`,\\n by: this.locationHashParams['target'] ?? 0,\\n }), '*')\\n this.setFullscreen(!this.fullscreen)\\n\\n // iframeのサイズが変わるため、念の為のresize発火\\n setTimeout(() => {\\n window.dispatchEvent(new Event('resize'))\\n }, 500)\\n }\\n },\\n pauseVideo () {\\n videoControlsBus.$emit('pause-video')\\n },\\n skipVideo (seconds) {\\n videoControlsBus.$emit('skip-video', seconds)\\n },\\n touch () {\\n this.lastActiveTime = new Date().getTime()\\n },\\n checkDeactive () {\\n if (new Date().getTime() - this.lastActiveTime > 5000) {\\n this.toggleVideoControls()\\n }\\n },\\n toggleMute() {\\n if (this.videoMuted) {\\n videoControlsBus.$emit('unmute-video')\\n } else {\\n videoControlsBus.$emit('mute-video')\\n }\\n },\\n mute () {\\n videoControlsBus.$emit('mute-video')\\n },\\n unmute () {\\n videoControlsBus.$emit('unmute-video')\\n },\\n mouseOverVolume () {\\n this.videoVolumeSlideActive = true\\n },\\n mouseLeaveVolume () {\\n this.videoVolumeSlideActive = false\\n }\\n },\\n mounted () {\\n this.lastActiveTime = new Date().getTime()\\n this.intervalId = setInterval(this.checkDeactive, 100)\\n },\\n beforeDestroy () {\\n clearInterval(this.intervalId)\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.video-panel {\\n position: absolute;\\n height: 44px;\\n left: 0;\\n right: 0px;\\n bottom: 0;\\n background-color: #2AB7D9;\\n pointer-events: auto;\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);\\n}\\n.button {\\n position: relative;\\n width: 44px;\\n height: 44px;\\n cursor: pointer;\\n}\\n.button img {\\n width: 30px;\\n height: 30px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n.button-left {\\n float: left;\\n}\\n.button-right {\\n float: right;\\n}\\n.close {\\n border-left: 1px solid #fff;\\n float: right;\\n}\\n.speed {\\n float: right;\\n color: #fff;\\n font-size: 14px;\\n vertical-align: middle;\\n line-height: 44px;\\n height: 44px;\\n width: 60px;\\n text-align: center;\\n}\\n.volume {\\n position: relative;\\n}\\n.v-enter-active, .v-leave-active {\\n transition: height .2s;\\n}\\n.v-enter, .v-leave-to {\\n height: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.backdrop[data-v-4f5d6a68] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: auto;\\n}\\n.menu[data-v-4f5d6a68] {\\n position: absolute;\\n width: 100px;\\n right: 8px;\\n bottom: calc(44px + 8px);\\n background-color: #fff;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n pointer-events: auto;\\n}\\n.menu-item[data-v-4f5d6a68] {\\n height: 36px;\\n padding: 8px 16px;\\n font-size: 14px;\\n color: #666;\\n border-bottom: 1px solid #ccc;\\n}\\n.v-enter-active[data-v-4f5d6a68], .v-enter-active .menu[data-v-4f5d6a68], .v-leave-active[data-v-4f5d6a68], .v-leave-active .menu[data-v-4f5d6a68] {\\n transition: opacity .2s;\\n}\\n.v-enter .menu[data-v-4f5d6a68], .v-leave-to .menu[data-v-4f5d6a68] {\\n opacity: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/video-speed-menu.vue\"],\"names\":[],\"mappings\":\";AAsCA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,YAAA;EACA,UAAA;EACA,wBAAA;EACA,sBAAA;EACA,0CAAA;EACA,gBAAA;EACA,oBAAA;AACA;AACA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,WAAA;EACA,6BAAA;AACA;AACA;EACA,uBAAA;AACA;AACA;EACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n <transition>\\n <div class=\\\"backdrop\\\"\\n @touchstart.self.prevent.stop=\\\"toggleVideoSpeedMenu\\\"\\n @mousedown.self.prevent.stop=\\\"toggleVideoSpeedMenu\\\"\\n >\\n <div class=\\\"menu\\\" :style=\\\"{ height: `${36 * speeds.length}px`}\\\" >\\n <div class=\\\"menu-item\\\" v-for=\\\"speed in speeds\\\" @click=\\\"selectMenuItem(speed)\\\" :key=\\\"speed\\\" >\\n <span>×{{ speed }}</span>\\n </div>\\n </div>\\n </div>\\n </transition>\\n</template>\\n\\n<script>\\nimport { mapMutations } from 'vuex'\\nimport videoControlsBus from '../video-controls-bus'\\n\\nexport default {\\n data () {\\n return {\\n speeds: [2, 1, 0.75, 0.5, 0.25]\\n }\\n },\\n methods: {\\n ...mapMutations('panorama', [\\n 'toggleVideoSpeedMenu',\\n ]),\\n selectMenuItem (speed) {\\n videoControlsBus.$emit('change-video-speed', speed)\\n this.toggleVideoSpeedMenu()\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.backdrop {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: auto;\\n}\\n.menu {\\n position: absolute;\\n width: 100px;\\n right: 8px;\\n bottom: calc(44px + 8px);\\n background-color: #fff;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n pointer-events: auto;\\n}\\n.menu-item {\\n height: 36px;\\n padding: 8px 16px;\\n font-size: 14px;\\n color: #666;\\n border-bottom: 1px solid #ccc;\\n}\\n.v-enter-active, .v-enter-active .menu, .v-leave-active, .v-leave-active .menu {\\n transition: opacity .2s;\\n}\\n.v-enter .menu, .v-leave-to .menu {\\n opacity: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.video-volume-slider[data-v-21a75756] {\\n position: absolute;\\n bottom: 44px;\\n width: 44px;\\n display: flex;\\n justify-content: center;\\n}\\n.slider-wrapper[data-v-21a75756] {\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgb(0 0 0 / 20%);\\n border-radius: 4px;\\n margin-bottom: 8px;\\n width: 30px;\\n}\\n.label[data-v-21a75756] {\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 14px;\\n line-height: 20px;\\n text-align: center;\\n}\\n.slider[data-v-21a75756] {\\n height: 50px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/video-volume-slider.vue\"],\"names\":[],\"mappings\":\";AAsCA;EACA,kBAAA;EACA,YAAA;EACA,WAAA;EACA,aAAA;EACA,uBAAA;AACA;AACA;EACA,oCAAA;EACA,wCAAA;EACA,kBAAA;EACA,kBAAA;EACA,WAAA;AACA;AACA;EACA,+BAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;AACA;AACA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n <div class=\\\"video-volume-slider\\\">\\n <div class=\\\"slider-wrapper\\\">\\n <div class=\\\"label\\\">﹢</div>\\n <slider :vertical=\\\"true\\\" :min=\\\"videoVolume.min\\\" :max=\\\"videoVolume.max\\\" v-model=\\\"videoVolumeValue\\\" />\\n <div class=\\\"label\\\">﹣</div>\\n </div>\\n </div>\\n</template>\\n\\n<script>\\nimport { mapState } from 'vuex'\\n\\nimport videoControlsBus from '../video-controls-bus'\\nimport Slider from './slider'\\n\\nexport default {\\n components: { Slider },\\n computed: {\\n ...mapState('panorama', [\\n 'videoMuted',\\n 'videoVolume'\\n ]),\\n videoVolumeValue: {\\n get () {\\n let value = this.videoVolume.value\\n\\n if (this.videoMuted) value = 0\\n\\n return this.videoVolume.max - value\\n },\\n set (volume) { videoControlsBus.$emit('change-video-volume', this.videoVolume.max - volume) }\\n }\\n }\\n}\\n</script>\\n\\n<style scoped>\\n.video-volume-slider {\\n position: absolute;\\n bottom: 44px;\\n width: 44px;\\n display: flex;\\n justify-content: center;\\n}\\n.slider-wrapper {\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgb(0 0 0 / 20%);\\n border-radius: 4px;\\n margin-bottom: 8px;\\n width: 30px;\\n}\\n.label {\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 14px;\\n line-height: 20px;\\n text-align: center;\\n}\\n.slider {\\n height: 50px;\\n}\\n</style>\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,menu,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,main,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}*[hidden]{display:none}body{line-height:1}menu,ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\\\"\\\";content:none}table{border-collapse:collapse;border-spacing:0}html,body{height:100%;font-size:16px;line-height:24px;font-family:Meiryo,\\\"メイリオ\\\",\\\"MS PGothic\\\",Osaka,Arial,sans-serif;background:#eee;color:#000}a{color:#55c6e1;text-decoration:underline}a:visited{color:#55c6e1}a:focus{color:#55c6e1}a:hover{color:#a3e0ef}a:active{color:#a3e0ef}a,a:hover{transition-duration:.5s}a:hover,a:visited{text-decoration:none}a img{border:none}select{color:#333;border:2px solid #55c6e1;height:28px;background-color:#fff;box-sizing:content-box;vertical-align:top;margin-top:5px}@keyframes spin{0%{transform:rotate(0deg);opacity:.2}50%{transform:rotate(180deg);opacity:1}100%{transform:rotate(360deg);opacity:.2}}#loading{box-sizing:border-box;position:absolute;display:inline-block;width:100%;height:100%}#loading.active{background-color:rgba(0,0,0,.5);z-index:9999}#loading.active.black{background-color:#000}#loading.active::before{box-sizing:border-box;animation:spin 1s linear infinite;position:absolute;content:\\\"\\\";width:80px;height:80px;border-radius:50%;border:3px solid #fff;border-right-color:rgba(0,0,0,0);top:50%;left:50%;margin-top:-40px;margin-left:-40px}.loading{box-sizing:border-box;position:relative;display:inline-block}.loading.active{background-color:rgba(0,0,0,.5);z-index:9997}.loading.active.black{background-color:#000}.loading.active::before{box-sizing:border-box;animation:spin 1s linear infinite;position:absolute;content:\\\"\\\";width:80px;height:80px;border-radius:50%;border:3px solid #fff;border-right-color:rgba(0,0,0,0);top:50%;left:50%;margin-top:-40px;margin-left:-40px}.imageloading{box-sizing:border-box;position:relative;display:inline-block}.imageloading.active{background-color:rgba(0,0,0,.5);z-index:9996}.imageloading.active.black{background-color:#000}.imageloading.active::before{box-sizing:border-box;animation:spin 1s linear infinite;position:absolute;content:\\\"\\\";width:30px;height:30px;border-radius:50%;border:3px solid #fff;border-right-color:rgba(0,0,0,0);top:50%;left:50%;margin-top:-15px;margin-left:-15px}#error{box-sizing:border-box;position:absolute;width:100%;height:100%;display:none}#error.active{display:block;background-color:#000;z-index:9999}#error.active .message{box-sizing:border-box;position:absolute;top:50%;left:0;width:100%;height:50px;line-height:50px;margin-top:-25px;text-align:center;color:#fff}#passcode-lock{box-sizing:border-box;position:absolute;width:100%;height:100%;display:none}#passcode-lock.active{display:block;background-color:#000;z-index:9999}#passcode-lock.active .message{box-sizing:border-box;position:absolute;top:50%;left:0;width:100%;height:50px;line-height:50px;margin-top:-25px;text-align:center;color:#fff}#overlay{box-sizing:border-box;user-select:none;position:absolute;display:none;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:9998;cursor:pointer}#popup{box-sizing:border-box;position:absolute;cursor:default}#popup img{width:100%;height:100%;vertical-align:bottom}#popup .close{box-sizing:border-box;border-radius:50%;border:2px solid #f5f5f5;background-color:#333;position:absolute;width:35px;height:35px;top:-15px;right:-15px;cursor:pointer}#popup .close::before,#popup .close::after{box-sizing:border-box;content:\\\"\\\";position:absolute;width:20px;height:20px}#popup .close::before{top:-1px;left:12px;border-left:2px solid #f5f5f5;transform:rotate(-45deg)}#popup .close::after{top:-1px;left:-1px;border-right:2px solid #f5f5f5;transform:rotate(45deg)}#c{box-sizing:border-box;height:100%;width:100%;overflow:hidden;position:relative}#header{box-sizing:border-box;position:absolute;width:inherit;height:40px;line-height:32px;overflow:hidden;top:0;left:0;padding:5px 10px;background-color:#eee;color:#000;font-size:16px;z-index:500}#panorama{box-sizing:border-box;position:absolute;width:inherit;height:inherit;overflow:hidden;left:0;z-index:100}#panorama canvas{cursor:move}#panorama .arrow-guide{box-sizing:border-box;border-radius:50px;position:absolute;background-color:rgba(255,255,255,.7);white-space:nowrap;cursor:pointer;display:none;color:#000;z-index:101;border-radius:50px;padding:clamp(4.8px,.96vw,.96vh) clamp(6px,1.2vw,1.2vh);font-size:clamp(12px,2.4vw,2.4vh);line-height:clamp(12px,2.4vw,2.4vh)}#excuse-text{position:absolute;width:65%;line-height:1.5;top:8px;right:8px;letter-spacing:3px;color:rgba(255,255,255,.8);font-size:18px;z-index:101;text-align:right;text-shadow:0 0 3px #000,0 0 3px #000,0 0 3px #000,0 0 3px #000,4px 0 10px #000,-4px 0 10px #000,0 2px 10px #000,0 -2px 10px #000,4px 0 10px #000,-4px 0 10px #000,0 2px 10px #000,0 -2px 10px #000,4px 0 15px #000,-4px 0 15px #000,0 2px 15px #000,0 -2px 15px #000;display:none}#play-video{display:none;position:absolute;top:0;left:0;right:0;bottom:0;color:#666;background-color:rgba(255,255,255,.8)}#play-video div{position:absolute;width:300px;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center;line-height:24px}#play-video div img{width:60px}#back-room{position:absolute;top:40px;left:40px;size:30px;z-index:500;display:none}#back-room img{cursor:pointer;width:60px;height:60px}#information-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:none;z-index:300}#information{background-color:#fff;padding:10px;position:absolute;max-width:400px;width:70%;min-height:70px;max-height:70%;top:50%;left:50%;transform:translate(-50%, -50%);overflow:auto}#information img{max-width:100%;max-height:320px}#information .information-text{white-space:pre-wrap}#information-close{position:absolute;border:2px solid #ccc;border-radius:50%;background-color:#000;color:#fff;width:30px;height:30px;transform:translate(-50%, -50%)}.scene{box-sizing:border-box;position:absolute;width:inherit;height:100%;overflow:hidden;top:0;left:0;z-index:100}.arrow-css3d{cursor:pointer}#floorplans{box-sizing:border-box;background-color:#eee;color:#000;position:absolute;bottom:0px;left:7px;width:300px;height:290px;padding:5px 5px;overflow:hidden;z-index:600}#floorplan-item_wrap{user-select:none;box-sizing:border-box;position:relative;width:100%;height:100%;overflow:hidden;cursor:move}#floorplan-item{position:absolute;top:0;left:0;width:290px;height:250px}#floorplan-item img{position:absolute;top:0;left:0;z-index:601}#floorplan-item .floorplan-point{box-sizing:border-box;border-radius:50%;border:2px solid #2ab7d9;background-color:#f5f5f5;position:absolute;z-index:604;width:20px;height:20px}#floorplan-item .floorplan-point.hover{cursor:pointer;background-color:#2ab7d9}#floorplan-item .floorplan-point.active{border:2px solid #ff7373;background-color:#ff7373}#floorplan-item .floorplan-point.active::before{box-sizing:border-box;border-radius:50%;position:absolute;content:\\\"\\\";top:-8px;left:-8px;width:30px;height:30px;background-color:rgba(255,115,115,.3)}#floorplan-item .floorplan-point.active:hover{cursor:default}#floorplan-lines,#floorplan-radar{position:absolute;top:0;left:0}#floorplan-lines{z-index:602}#floorplan-lines line{stroke:rgba(42,183,217,.8);stroke-width:1.5;stroke-dasharray:1,3;stroke-linecap:round}#floorplan-radar{z-index:603}#floorplan-radar path{fill:rgba(255,115,115,.3)}#floorplan-footer{box-sizing:border-box;position:absolute;bottom:-15px;left:0px;width:100%;height:15px;background-color:rgba(0,0,0,.5);z-index:610}#floorplan-pages{box-sizing:border-box;position:absolute;top:-25px;left:3px;width:auto;height:15px;padding:0px 5px;font-size:14px}#floorplan-pages .floorplan-page{box-sizing:border-box;border-radius:50%;position:relative;display:inline-block;margin:0 5px;background-color:#ccc;width:11px;height:11px;top:-3px}#floorplan-pages .floorplan-page:hover,#floorplan-pages .floorplan-page.active{background-color:#2ab7d9}#floorplan-pages .floorplan-page:hover{cursor:pointer}#floorplan-pages .floorplan-page.active:hover{cursor:default}#floorplan-zoom_wrap{box-sizing:border-box;position:absolute;top:-70px;right:10px;width:30px;height:60px}#floorplan-zoom-out,#floorplan-zoom-in{box-sizing:border-box;position:absolute;width:30px;height:30px;background-color:rgba(0,0,0,.5)}#floorplan-zoom-out::before,#floorplan-zoom-out::after,#floorplan-zoom-in::before,#floorplan-zoom-in::after{box-sizing:border-box;position:absolute;content:\\\"\\\";width:10px;height:10px}#floorplan-zoom-out.enabled::before,#floorplan-zoom-in.enabled::before{border-top:1px solid #f5f5f5}#floorplan-zoom-out.enabled::after,#floorplan-zoom-in.enabled::after{border-left:1px solid #f5f5f5}#floorplan-zoom-out.enabled:hover,#floorplan-zoom-in.enabled:hover{cursor:pointer}#floorplan-zoom-out.enabled:hover::before,#floorplan-zoom-in.enabled:hover::before{border-top:1px solid #2ab7d9}#floorplan-zoom-out.enabled:hover::after,#floorplan-zoom-in.enabled:hover::after{border-left:1px solid #2ab7d9}#floorplan-zoom-out{border-radius:0 0 2px 2px;top:30px}#floorplan-zoom-out::before{border-top:1px solid #5c5c5c;top:15px;left:10px}#floorplan-zoom-out.enabled::after{border-left:0}#floorplan-zoom-out.enabled:hover::after{border-left:0}#floorplan-zoom-in{border-radius:2px 2px 0 0;top:0px;border-bottom:1px solid rgba(245,245,245,.5)}#floorplan-zoom-in::before{border-top:1px solid #5c5c5c;width:11px;top:14px;left:9px}#floorplan-zoom-in::after{height:11px;border-left:1px solid #5c5c5c;top:9px;left:14px}#floorplan-control{box-sizing:border-box;cursor:pointer;position:absolute;top:5px;right:5px;width:23px;height:22px;z-index:620}#floorplan-control::before{position:absolute;top:7px;right:5px;border-width:8px 6px;border-style:solid;border-color:#2ab7d9 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);content:\\\"\\\"}#floorplan-control.hide::before{top:-1px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #2ab7d9 rgba(0,0,0,0)}#footer-controls{box-sizing:border-box;position:absolute;bottom:0px;left:0px;width:100%;height:141px;background-color:#eee;border-top:1px solid #ccc;cursor:default;z-index:300}#control-menu{user-select:none;box-sizing:border-box;border-radius:3px 3px 0 0;cursor:pointer;position:absolute;top:-31px;right:5px;width:135px;height:32px;line-height:32px;padding:0 13px;border:1px solid #ccc;border-bottom:none;background-color:#eee;color:#2ab7d9;font-size:14px;text-align:center;z-index:301}#control-menu:after{position:absolute;top:11px;right:13px;border-color:#2ab7d9 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);border-width:8px 6px;border-style:solid;content:\\\"\\\"}#control-menu.hide:after{top:3px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #2ab7d9 rgba(0,0,0,0)}#thumbnails{box-sizing:border-box;position:absolute;right:0;bottom:40px;width:calc(100% - 310px);height:100px;background-color:#eee;color:#000;font-size:11px;z-index:400}#thumbnail-items_wrap{user-select:none;box-sizing:border-box;position:absolute;left:20px;width:calc(100% - 40px);height:100px;overflow:hidden}#thumbnail-items{box-sizing:border-box;position:absolute;top:0;left:0;height:100px;padding:10px 0;white-space:nowrap}#thumbnail-items .thumbnail-item{box-sizing:border-box;display:inline-block;width:90px;margin:0 6px;cursor:pointer;vertical-align:top}#thumbnail-items .thumbnail-item-active{overflow:visible !important;background-color:#fff;padding:5px;display:inline;z-index:10;opacity:.9}#thumbnail-items .thumbnail-item:first-child{margin-left:0px}#thumbnail-items .thumbnail-item .thumbnail-image_wrap:hover{transition-duration:.3s;border:3px solid #2ab7d9}#thumbnail-items .thumbnail-item.active{cursor:default}#thumbnail-items .thumbnail-item.active .thumbnail-image_wrap{border:3px solid #2ab7d9}#thumbnail-items .thumbnail-item .thumbnail-image_wrap{box-sizing:border-box;transition-duration:.3s;position:relative;width:90px;height:54px;margin-bottom:2px;background-color:#000;border:3px solid #eee;overflow:hidden}#thumbnail-items .thumbnail-item .thumbnail-image_wrap .thumbnail-image{box-sizing:border-box;max-width:120%;max-height:120%;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}#thumbnail-items .thumbnail-item .thumbnail-title{box-sizing:border-box;width:90px;overflow:hidden;text-align:center;text-overflow:ellipsis}#thumbnail-prev,#thumbnail-next{box-sizing:border-box;position:absolute;top:0;width:20px;height:100px}#thumbnail-prev::before,#thumbnail-next::before{top:32px}#thumbnail-prev::after,#thumbnail-next::after{top:39px}#thumbnail-prev::before,#thumbnail-prev::after,#thumbnail-next::before,#thumbnail-next::after{box-sizing:border-box;position:absolute;content:\\\"\\\";width:10px;height:0px;border-top:2px solid #ace3f0}#thumbnail-prev.enabled,#thumbnail-next.enabled{cursor:pointer}#thumbnail-prev.enabled::before,#thumbnail-prev.enabled::after,#thumbnail-next.enabled::before,#thumbnail-next.enabled::after{border-top:2px solid #2ab7d9}#thumbnail-prev.enabled:hover::before,#thumbnail-prev.enabled:hover::after,#thumbnail-next.enabled:hover::before,#thumbnail-next.enabled:hover::after{border-top:2px solid #1f94b1}#thumbnail-prev{left:0}#thumbnail-prev::before{left:4.5px;transform:rotate(-45deg)}#thumbnail-prev::after{left:4.5px;transform:rotate(45deg)}#thumbnail-next{right:0}#thumbnail-next::before{left:2.5px;transform:rotate(45deg)}#thumbnail-next::after{left:2.5px;transform:rotate(-45deg)}#thumbnails #thumbnail-close{box-sizing:border-box;display:none}#footer{box-sizing:border-box;position:absolute;left:0;bottom:0;width:100%;height:40px;background-color:#eee;z-index:500}#controls{user-select:none;box-sizing:border-box;position:absolute;height:inherit;right:0px;font-size:0px}#control-scene{box-sizing:border-box;width:150px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-scene:hover{background-color:#d5d5d5}#control-scene img{height:19px}#control-vreffect{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:none;line-height:52px;font-size:16px}#control-vreffect:hover{background-color:#d5d5d5}#control-vreffect img{height:19px}#control-video{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-video:hover{background-color:#d5d5d5}#control-video img{height:19px}#control-video-rewind{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-video-rewind:hover{background-color:#d5d5d5}#control-video-rewind img{height:19px}#control-video-forward{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-video-forward:hover{background-color:#d5d5d5}#control-video-forward img{height:19px}#control-video-speed{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-video-speed:hover{background-color:#d5d5d5}#control-video-speed span{color:#2ab7d9;font-size:.8em;position:relative;top:-4px}#control-rotation{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-rotation:hover{background-color:#d5d5d5}#control-rotation img{height:19px}#control-floorplans{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-floorplans:hover{background-color:#d5d5d5}#control-floorplans img{height:19px}#control-floorplans.hide img{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:.5}#control-fullscreen{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-fullscreen:hover{background-color:#d5d5d5}#control-fullscreen img{height:19px}#control-help{box-sizing:border-box;width:48px;height:inherit;cursor:pointer;text-align:center;display:inline-block;line-height:52px;font-size:16px}#control-help:hover{background-color:#d5d5d5}#control-help img{height:19px}#control-scene-switcher-panel.close{transform:translate3d(96px, 0, 0)}#control-scene-switcher-panel.open{transform:translate3d(0, 0, 0)}#control-scene-switcher-panel{transition:all .2s}#control-scene-switcher-panel{position:absolute;top:-340px;right:0;width:96px;display:none}#control-scene-switcher-panel .toggle-button{position:absolute;height:88px;line-height:88px;font-size:10px;color:#fff;left:-42px;padding:0 16px;background-color:rgba(0,0,0,.5);text-decoration:none;border-top-left-radius:16px;border-bottom-left-radius:16px}#control-scene-switcher-panel #control-scene-switcher-title{background-color:rgba(0,0,0,.5);color:#fff;font-size:10px;text-align:center}#control-scene-switcher-panel #control-scene-switcher{background-color:rgba(0,0,0,.7);position:relative;height:64px;opacity:.7;overflow-y:scroll}#control-scene-switcher-panel #control-scene-switcher img{width:100%;height:auto}#control-scene-switcher-panel #control-scene-switcher .scene-name-label{position:relative;top:-48px;color:#fff;line-height:1.2;font-size:10px;padding:4px;text-align:center;box-sizing:border-box;text-shadow:1px 1px 1px #000,-1px -1px 1px #000}#control-zoom_wrap{box-sizing:border-box;position:absolute;top:-220px;right:5px;width:30px;height:60px}#control-zoom-out,#control-zoom-in{box-sizing:border-box;position:absolute;width:30px;height:30px;background-color:rgba(0,0,0,.5)}#control-zoom-out::before,#control-zoom-out::after,#control-zoom-in::before,#control-zoom-in::after{box-sizing:border-box;position:absolute;content:\\\"\\\";width:10px;height:10px}#control-zoom-out.enabled::before,#control-zoom-in.enabled::before{border-top:1px solid #f5f5f5}#control-zoom-out.enabled::after,#control-zoom-in.enabled::after{border-left:1px solid #f5f5f5}#control-zoom-out.enabled:hover,#control-zoom-in.enabled:hover{cursor:pointer}#control-zoom-out.enabled:hover::before,#control-zoom-in.enabled:hover::before{border-top:1px solid #2ab7d9}#control-zoom-out.enabled:hover::after,#control-zoom-in.enabled:hover::after{border-left:1px solid #2ab7d9}#control-zoom-out{border-radius:0 0 2px 2px;top:30px}#control-zoom-out::before{border-top:1px solid #5c5c5c;top:15px;left:10px}#control-zoom-out.enabled::after{border-left:0}#control-zoom-out.enabled:hover::after{border-left:0}#control-zoom-in{border-radius:2px 2px 0 0;top:0px;border-bottom:1px solid rgba(245,245,245,.5)}#control-zoom-in::before{border-top:1px solid #5c5c5c;width:11px;top:14px;left:9px}#control-zoom-in::after{height:11px;border-left:1px solid #5c5c5c;top:9px;left:14px}#links{box-sizing:border-box;border-radius:3px;position:absolute;height:30px;top:5px;right:5px;background-color:#2ab7d9;font-size:75%;color:#fff;padding:3px 10px 3px 10px;display:none;overflow:hidden;z-index:510}#links.active{display:block}#links.active a{color:#fff;text-decoration:none}#links.active a:visited{color:#fff}#links.active a:focus{color:#fff}#links.active a:hover{color:#fff}#links.active a:active{color:#fff}.without-map #thumbnails{width:100%}#vrModeStartButton{position:absolute;top:0;left:0;width:100vw;height:100vh;line-height:100vh;text-align:center;color:#fff;background-color:rgba(0,0,0,.75);z-index:1000}.sp #floorplans{width:200px;height:190px}.sp #thumbnails{width:calc(100% - 210px)}.sp.without-map #thumbnails{width:100%}.sp #control-vreffect{display:inline-block}.sp.portrait #floorplans{width:100%;height:130px;left:0;bottom:50px}.sp.portrait #floorplan-control{display:none}.sp.portrait #footer-controls{padding-top:270px}.sp.portrait #footer-controls #control-menu{left:50%;transform:translateX(-50%)}.sp.portrait #control-scene-switcher-panel{top:-460px}.sp.portrait #control-zoom_wrap{top:-340px}.sp.portrait #thumbnails{width:100%}.sp.portrait.without-map #footer-controls{padding-top:0}.sp.portrait.without-map #control-zoom_wrap{top:-198px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/packs/panoramas/embed.scss\",\"webpack://./node_modules/reset-css/reset.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n\\n@import 'reset-css/reset';\\n\\n/**\\n * 間取り図\\n */\\n/**\\n * サムネイル\\n */\\n/**\\n * 共通\\n */\\nhtml, body {\\n height: 100%;\\n font-size: 16px;\\n line-height: 24px;\\n font-family: Meiryo, \\\"メイリオ\\\", \\\"MS PGothic\\\", Osaka, Arial, sans-serif;\\n background: #EEEEEE;\\n color: #000;\\n}\\n\\na {\\n color: #55c6e1;\\n text-decoration: underline;\\n}\\na:visited {\\n color: #55c6e1;\\n}\\na:focus {\\n color: #55c6e1;\\n}\\na:hover {\\n color: #a3e0ef;\\n}\\na:active {\\n color: #a3e0ef;\\n}\\na, a:hover {\\n transition-duration: 0.5s;\\n}\\na:hover, a:visited {\\n text-decoration: none;\\n}\\na img {\\n border: none;\\n}\\n\\nselect {\\n color: #333;\\n border: 2px solid #55c6e1;\\n height: 28px;\\n background-color: white;\\n box-sizing: content-box;\\n vertical-align: top;\\n margin-top: 5px;\\n}\\n\\n/**\\n * ローディング\\n */\\n@keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n opacity: 0.2;\\n }\\n 50% {\\n transform: rotate(180deg);\\n opacity: 1;\\n }\\n 100% {\\n transform: rotate(360deg);\\n opacity: 0.2;\\n }\\n}\\n#loading {\\n box-sizing: border-box;\\n position: absolute;\\n display: inline-block;\\n width: 100%;\\n height: 100%;\\n}\\n\\n#loading.active {\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 9999;\\n}\\n\\n#loading.active.black {\\n background-color: black;\\n}\\n\\n#loading.active::before {\\n box-sizing: border-box;\\n animation: spin 1s linear infinite;\\n position: absolute;\\n content: \\\"\\\";\\n width: 80px;\\n height: 80px;\\n border-radius: 50%;\\n border: 3px solid #fff;\\n border-right-color: transparent;\\n top: 50%;\\n left: 50%;\\n margin-top: -40px;\\n margin-left: -40px;\\n}\\n\\n.loading {\\n box-sizing: border-box;\\n position: relative;\\n display: inline-block;\\n}\\n.loading.active {\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 9997;\\n}\\n.loading.active.black {\\n background-color: black;\\n}\\n.loading.active::before {\\n box-sizing: border-box;\\n animation: spin 1s linear infinite;\\n position: absolute;\\n content: \\\"\\\";\\n width: 80px;\\n height: 80px;\\n border-radius: 50%;\\n border: 3px solid #fff;\\n border-right-color: transparent;\\n top: 50%;\\n left: 50%;\\n margin-top: -40px;\\n margin-left: -40px;\\n}\\n\\n.imageloading {\\n box-sizing: border-box;\\n position: relative;\\n display: inline-block;\\n}\\n.imageloading.active {\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 9996;\\n}\\n.imageloading.active.black {\\n background-color: black;\\n}\\n.imageloading.active::before {\\n box-sizing: border-box;\\n animation: spin 1s linear infinite;\\n position: absolute;\\n content: \\\"\\\";\\n width: 30px;\\n height: 30px;\\n border-radius: 50%;\\n border: 3px solid #fff;\\n border-right-color: transparent;\\n top: 50%;\\n left: 50%;\\n margin-top: -15px;\\n margin-left: -15px;\\n}\\n\\n#error {\\n box-sizing: border-box;\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n display: none;\\n}\\n\\n#error.active {\\n display: block;\\n background-color: #000;\\n z-index: 9999;\\n}\\n\\n#error.active .message {\\n box-sizing: border-box;\\n position: absolute;\\n top: 50%;\\n left: 0;\\n width: 100%;\\n height: 50px;\\n line-height: 50px;\\n margin-top: -25px;\\n text-align: center;\\n color: #fff;\\n}\\n\\n#passcode-lock {\\n box-sizing: border-box;\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n display: none;\\n}\\n\\n#passcode-lock.active {\\n display: block;\\n background-color: #000;\\n z-index: 9999;\\n}\\n\\n#passcode-lock.active .message {\\n box-sizing: border-box;\\n position: absolute;\\n top: 50%;\\n left: 0;\\n width: 100%;\\n height: 50px;\\n line-height: 50px;\\n margin-top: -25px;\\n text-align: center;\\n color: #fff;\\n}\\n\\n/**\\n * オーバーレイ\\n */\\n#overlay {\\n box-sizing: border-box;\\n user-select: none;\\n position: absolute;\\n display: none;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 9998;\\n cursor: pointer;\\n}\\n\\n#popup {\\n box-sizing: border-box;\\n position: absolute;\\n cursor: default;\\n}\\n\\n#popup img {\\n width: 100%;\\n height: 100%;\\n vertical-align: bottom;\\n}\\n\\n#popup .close {\\n box-sizing: border-box;\\n border-radius: 50%;\\n border: 2px solid #f5f5f5;\\n background-color: #333333;\\n position: absolute;\\n width: 35px;\\n height: 35px;\\n top: -15px;\\n right: -15px;\\n cursor: pointer;\\n}\\n\\n#popup .close::before, #popup .close::after {\\n box-sizing: border-box;\\n content: \\\"\\\";\\n position: absolute;\\n width: 20px;\\n height: 20px;\\n}\\n\\n#popup .close::before {\\n top: -1px;\\n left: 12px;\\n border-left: 2px solid #f5f5f5;\\n transform: rotate(-45deg);\\n}\\n\\n#popup .close::after {\\n top: -1px;\\n left: -1px;\\n border-right: 2px solid #f5f5f5;\\n transform: rotate(45deg);\\n}\\n\\n/**\\n * body wrapper\\n */\\n#c {\\n box-sizing: border-box;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n position: relative;\\n}\\n\\n/**\\n * ヘッダー\\n */\\n#header {\\n box-sizing: border-box;\\n position: absolute;\\n width: inherit;\\n height: 40px;\\n line-height: 32px;\\n overflow: hidden;\\n top: 0;\\n left: 0;\\n padding: 5px 10px;\\n background-color: #EEEEEE;\\n color: #000;\\n font-size: 16px;\\n z-index: 500;\\n}\\n\\n/**\\n * ビューワー\\n */\\n#panorama {\\n box-sizing: border-box;\\n position: absolute;\\n width: inherit;\\n height: inherit;\\n overflow: hidden;\\n left: 0;\\n z-index: 100;\\n}\\n\\n#panorama canvas {\\n cursor: move;\\n}\\n\\n#panorama .arrow-guide {\\n box-sizing: border-box;\\n border-radius: 50px;\\n position: absolute;\\n background-color: rgba(255, 255, 255, 0.7);\\n white-space: nowrap;\\n cursor: pointer;\\n display: none;\\n color: #000;\\n z-index: 101;\\n\\n /* textToCanvasLabel() と見た目を合わせる */\\n border-radius: 50px;\\n padding: clamp(4.8px, 0.96vw, 0.96vh) clamp(6px, 1.2vw, 1.2vh) ;\\n font-size: clamp(12px, 2.4vw, 2.4vh);\\n line-height: clamp(12px, 2.4vw, 2.4vh);\\n}\\n\\n#excuse-text {\\n position: absolute;\\n width: 65%;\\n line-height: 1.5;\\n top: 8px;\\n right: 8px;\\n letter-spacing: 3px;\\n color: rgba(255, 255, 255, 0.8);\\n font-size: 18px;\\n z-index: 101;\\n text-align: right;\\n text-shadow: 0 0 3px #000, 0 0 3px #000, 0 0 3px #000, 0 0 3px #000,\\n 4px 0 10px #000, -4px 0 10px #000, 0 2px 10px #000, 0 -2px 10px #000,\\n 4px 0 10px #000, -4px 0 10px #000, 0 2px 10px #000, 0 -2px 10px #000,\\n 4px 0 15px #000, -4px 0 15px #000, 0 2px 15px #000, 0 -2px 15px #000;\\n display: none;\\n}\\n\\n#play-video {\\n display: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n color: #666;\\n background-color: rgba(255, 255, 255, 0.8);\\n div {\\n position: absolute;\\n width: 300px;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n text-align: center;\\n line-height: 24px;\\n img {\\n width: 60px;\\n }\\n }\\n}\\n\\n#back-room {\\n position: absolute;\\n top: 40px;\\n left: 40px;\\n size: 30px;\\n z-index: 500;\\n display:none;\\n img {\\n cursor: pointer;\\n width: 60px;\\n height: 60px;\\n }\\n}\\n\\n#information-overlay {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: rgba(0, 0, 0, 0.5);\\n display: none;\\n z-index: 300;\\n}\\n\\n#information {\\n background-color: #fff;\\n padding: 10px;\\n position: absolute;\\n max-width: 400px;\\n width: 70%;\\n min-height: 70px;\\n max-height: 70%;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n overflow: auto;\\n img {\\n max-width: 100%;\\n max-height: 320px;\\n }\\n .information-text {\\n white-space: pre-wrap;\\n }\\n}\\n\\n#information-close {\\n position: absolute;\\n border: 2px solid #ccc;\\n border-radius: 50%;\\n background-color: #000;\\n color: #fff;\\n width: 30px;\\n height: 30px;\\n transform: translate(-50%, -50%);\\n}\\n\\n.scene {\\n box-sizing: border-box;\\n position: absolute;\\n width: inherit;\\n height: 100%;\\n overflow: hidden;\\n top: 0;\\n left: 0;\\n z-index: 100;\\n}\\n\\n.arrow-css3d {\\n cursor: pointer;\\n}\\n\\n/**\\n * フロアー\\n */\\n#floorplans {\\n box-sizing: border-box;\\n background-color: #EEEEEE;\\n color: #000;\\n position: absolute;\\n bottom: 0px;\\n left: 7px;\\n width: 300px;\\n height: 290px;\\n padding: 5px 5px;\\n overflow: hidden;\\n z-index: 600;\\n}\\n\\n#floorplan-item_wrap {\\n user-select: none;\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n cursor: move;\\n}\\n\\n#floorplan-item {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 290px;\\n height: 250px;\\n}\\n\\n#floorplan-item img {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 601;\\n}\\n\\n#floorplan-item .floorplan-point {\\n box-sizing: border-box;\\n border-radius: 50%;\\n border: 2px solid #2AB7D9;\\n background-color: #f5f5f5;\\n position: absolute;\\n z-index: 604;\\n width: 20px;\\n height: 20px;\\n}\\n\\n#floorplan-item .floorplan-point.hover {\\n cursor: pointer;\\n background-color: #2AB7D9;\\n}\\n\\n#floorplan-item .floorplan-point.active {\\n border: 2px solid #FF7373;\\n background-color: #FF7373;\\n}\\n\\n#floorplan-item .floorplan-point.active::before {\\n box-sizing: border-box;\\n border-radius: 50%;\\n position: absolute;\\n content: \\\"\\\";\\n top: -8px;\\n left: -8px;\\n width: 30px;\\n height: 30px;\\n background-color: rgba(255, 115, 115, 0.3);\\n}\\n\\n#floorplan-item .floorplan-point.active:hover {\\n cursor: default;\\n}\\n\\n#floorplan-lines, #floorplan-radar {\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n#floorplan-lines {\\n z-index: 602;\\n}\\n\\n#floorplan-lines line {\\n stroke: rgba(42, 183, 217, 0.8);\\n stroke-width: 1.5;\\n stroke-dasharray: 1, 3;\\n stroke-linecap: round;\\n}\\n\\n#floorplan-radar {\\n z-index: 603;\\n}\\n\\n#floorplan-radar path {\\n fill: rgba(255, 115, 115, 0.3);\\n}\\n\\n#floorplan-footer {\\n box-sizing: border-box;\\n position: absolute;\\n bottom: -15px;\\n left: 0px;\\n width: 100%;\\n height: 15px;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 610;\\n}\\n\\n#floorplan-pages {\\n box-sizing: border-box;\\n position: absolute;\\n top: -25px;\\n left: 3px;\\n width: auto;\\n height: 15px;\\n padding: 0px 5px;\\n font-size: 14px;\\n}\\n\\n#floorplan-pages .floorplan-page {\\n box-sizing: border-box;\\n border-radius: 50%;\\n position: relative;\\n display: inline-block;\\n margin: 0 5px;\\n background-color: #CCCCCC;\\n width: 11px;\\n height: 11px;\\n top: -3px;\\n}\\n\\n#floorplan-pages .floorplan-page:hover, #floorplan-pages .floorplan-page.active {\\n background-color: #2AB7D9;\\n}\\n\\n#floorplan-pages .floorplan-page:hover {\\n cursor: pointer;\\n}\\n\\n#floorplan-pages .floorplan-page.active:hover {\\n cursor: default;\\n}\\n\\n#floorplan-zoom_wrap {\\n box-sizing: border-box;\\n position: absolute;\\n top: -70px;\\n right: 10px;\\n width: 30px;\\n height: 60px;\\n}\\n\\n#floorplan-zoom-out, #floorplan-zoom-in {\\n box-sizing: border-box;\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n background-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n#floorplan-zoom-out::before, #floorplan-zoom-out::after, #floorplan-zoom-in::before, #floorplan-zoom-in::after {\\n box-sizing: border-box;\\n position: absolute;\\n content: \\\"\\\";\\n width: 10px;\\n height: 10px;\\n}\\n\\n#floorplan-zoom-out.enabled::before, #floorplan-zoom-in.enabled::before {\\n border-top: 1px solid #f5f5f5;\\n}\\n\\n#floorplan-zoom-out.enabled::after, #floorplan-zoom-in.enabled::after {\\n border-left: 1px solid #f5f5f5;\\n}\\n\\n#floorplan-zoom-out.enabled:hover, #floorplan-zoom-in.enabled:hover {\\n cursor: pointer;\\n}\\n\\n#floorplan-zoom-out.enabled:hover::before, #floorplan-zoom-in.enabled:hover::before {\\n border-top: 1px solid #2AB7D9;\\n}\\n\\n#floorplan-zoom-out.enabled:hover::after, #floorplan-zoom-in.enabled:hover::after {\\n border-left: 1px solid #2AB7D9;\\n}\\n\\n#floorplan-zoom-out {\\n border-radius: 0 0 2px 2px;\\n top: 30px;\\n}\\n\\n#floorplan-zoom-out::before {\\n border-top: 1px solid #5c5c5c;\\n top: 15px;\\n left: 10px;\\n}\\n\\n#floorplan-zoom-out.enabled::after {\\n border-left: 0;\\n}\\n\\n#floorplan-zoom-out.enabled:hover::after {\\n border-left: 0;\\n}\\n\\n#floorplan-zoom-in {\\n border-radius: 2px 2px 0 0;\\n top: 0px;\\n border-bottom: 1px solid rgba(245, 245, 245, 0.5);\\n}\\n\\n#floorplan-zoom-in::before {\\n border-top: 1px solid #5c5c5c;\\n width: 11px;\\n top: 14px;\\n left: 9px;\\n}\\n\\n#floorplan-zoom-in::after {\\n height: 11px;\\n border-left: 1px solid #5c5c5c;\\n top: 9px;\\n left: 14px;\\n}\\n\\n#floorplan-control {\\n box-sizing: border-box;\\n cursor: pointer;\\n position: absolute;\\n top: 5px;\\n right: 5px;\\n width: 23px;\\n height: 22px;\\n z-index: 620;\\n}\\n\\n#floorplan-control::before {\\n position: absolute;\\n top: 7px;\\n right: 5px;\\n border-width: 8px 6px;\\n border-style: solid;\\n border-color: #2AB7D9 transparent transparent transparent;\\n content: \\\"\\\";\\n}\\n\\n#floorplan-control.hide::before {\\n top: -1px;\\n border-color: transparent transparent #2AB7D9 transparent;\\n}\\n\\n/**\\n * フッターコンテンツ\\n */\\n#footer-controls {\\n box-sizing: border-box;\\n position: absolute;\\n bottom: 0px;\\n left: 0px;\\n width: 100%;\\n height: 141px;\\n background-color: #EEEEEE;\\n border-top: 1px solid #CCCCCC;\\n cursor: default;\\n z-index: 300;\\n}\\n\\n#control-menu {\\n user-select: none;\\n box-sizing: border-box;\\n border-radius: 3px 3px 0 0;\\n cursor: pointer;\\n position: absolute;\\n top: -31px;\\n right: 5px;\\n width: 135px;\\n height: 32px;\\n line-height: 32px;\\n padding: 0 13px;\\n border: 1px solid #CCCCCC;\\n border-bottom: none;\\n background-color: #EEEEEE;\\n color: #2AB7D9;\\n font-size: 14px;\\n text-align: center;\\n z-index: 301;\\n}\\n\\n#control-menu:after {\\n position: absolute;\\n top: 11px;\\n right: 13px;\\n border-color: #2AB7D9 transparent transparent transparent;\\n border-width: 8px 6px;\\n border-style: solid;\\n content: \\\"\\\";\\n}\\n\\n#control-menu.hide:after {\\n top: 3px;\\n border-color: transparent transparent #2AB7D9 transparent;\\n}\\n\\n/**\\n * サムネイル\\n */\\n#thumbnails {\\n box-sizing: border-box;\\n position: absolute;\\n right: 0;\\n bottom: 40px;\\n width: calc(100% - 310px);\\n height: 100px;\\n background-color: #EEEEEE;\\n color: #000;\\n font-size: 11px;\\n z-index: 400;\\n}\\n\\n#thumbnail-items_wrap {\\n user-select: none;\\n box-sizing: border-box;\\n position: absolute;\\n left: 20px;\\n width: calc(100% - 40px);\\n height: 100px;\\n overflow: hidden;\\n}\\n\\n#thumbnail-items {\\n box-sizing: border-box;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100px;\\n padding: 10px 0;\\n white-space: nowrap;\\n}\\n\\n#thumbnail-items .thumbnail-item {\\n box-sizing: border-box;\\n display: inline-block;\\n width: 90px;\\n margin: 0 6px;\\n cursor: pointer;\\n vertical-align: top;\\n}\\n\\n#thumbnail-items .thumbnail-item-active {\\n overflow: visible !important;\\n background-color: white;\\n padding: 5px;\\n display: inline;\\n z-index: 10;\\n opacity: 0.9;\\n}\\n\\n#thumbnail-items .thumbnail-item:first-child {\\n margin-left: 0px;\\n}\\n\\n#thumbnail-items .thumbnail-item .thumbnail-image_wrap:hover {\\n transition-duration: 0.3s;\\n border: 3px solid #2AB7D9;\\n}\\n\\n#thumbnail-items .thumbnail-item.active {\\n cursor: default;\\n}\\n\\n#thumbnail-items .thumbnail-item.active .thumbnail-image_wrap {\\n border: 3px solid #2AB7D9;\\n}\\n\\n#thumbnail-items .thumbnail-item .thumbnail-image_wrap {\\n box-sizing: border-box;\\n transition-duration: 0.3s;\\n position: relative;\\n width: 90px;\\n height: 54px;\\n margin-bottom: 2px;\\n background-color: black;\\n border: 3px solid #EEEEEE;\\n overflow: hidden;\\n}\\n\\n#thumbnail-items .thumbnail-item .thumbnail-image_wrap .thumbnail-image {\\n box-sizing: border-box;\\n max-width: 120%;\\n max-height: 120%;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\\n#thumbnail-items .thumbnail-item .thumbnail-title {\\n box-sizing: border-box;\\n width: 90px;\\n overflow: hidden;\\n text-align: center;\\n text-overflow: ellipsis;\\n}\\n\\n#thumbnail-prev, #thumbnail-next {\\n box-sizing: border-box;\\n position: absolute;\\n top: 0;\\n width: 20px;\\n height: 100px;\\n}\\n\\n#thumbnail-prev::before, #thumbnail-next::before {\\n top: 32px;\\n}\\n\\n#thumbnail-prev::after, #thumbnail-next::after {\\n top: 39px;\\n}\\n\\n#thumbnail-prev::before, #thumbnail-prev::after, #thumbnail-next::before, #thumbnail-next::after {\\n box-sizing: border-box;\\n position: absolute;\\n content: \\\"\\\";\\n width: 10px;\\n height: 0px;\\n border-top: 2px solid #ace3f0;\\n}\\n\\n#thumbnail-prev.enabled, #thumbnail-next.enabled {\\n cursor: pointer;\\n}\\n\\n#thumbnail-prev.enabled::before, #thumbnail-prev.enabled::after, #thumbnail-next.enabled::before, #thumbnail-next.enabled::after {\\n border-top: 2px solid #2AB7D9;\\n}\\n\\n#thumbnail-prev.enabled:hover::before, #thumbnail-prev.enabled:hover::after, #thumbnail-next.enabled:hover::before, #thumbnail-next.enabled:hover::after {\\n border-top: 2px solid #1f94b1;\\n}\\n\\n#thumbnail-prev {\\n left: 0;\\n}\\n\\n#thumbnail-prev::before {\\n left: 4.5px;\\n transform: rotate(-45deg);\\n}\\n\\n#thumbnail-prev::after {\\n left: 4.5px;\\n transform: rotate(45deg);\\n}\\n\\n#thumbnail-next {\\n right: 0;\\n}\\n\\n#thumbnail-next::before {\\n left: 2.5px;\\n transform: rotate(45deg);\\n}\\n\\n#thumbnail-next::after {\\n left: 2.5px;\\n transform: rotate(-45deg);\\n}\\n\\n#thumbnails #thumbnail-close {\\n box-sizing: border-box;\\n display: none;\\n}\\n\\n/**\\n * フッター\\n */\\n#footer {\\n box-sizing: border-box;\\n position: absolute;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n height: 40px;\\n background-color: #EEEEEE;\\n z-index: 500;\\n}\\n#controls {\\n user-select: none;\\n box-sizing: border-box;\\n position: absolute;\\n height: inherit;\\n right: 0px;\\n font-size: 0px;\\n}\\n\\n#control-scene {\\n box-sizing: border-box;\\n width: 150px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-scene:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-scene img {\\n height: 19px;\\n}\\n\\n#control-vreffect {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: none;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-vreffect:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-vreffect img {\\n height: 19px;\\n}\\n\\n#control-video {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-video:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-video img {\\n height: 19px;\\n}\\n\\n#control-video-rewind {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-video-rewind:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-video-rewind img {\\n height: 19px;\\n}\\n\\n#control-video-forward {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-video-forward:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-video-forward img {\\n height: 19px;\\n}\\n\\n#control-video-speed {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-video-speed:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-video-speed span {\\n color: #2AB7D9;\\n font-size: 0.8em;\\n position: relative;\\n top: -4px;\\n}\\n\\n#control-rotation {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-rotation:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-rotation img {\\n height: 19px;\\n}\\n\\n#control-floorplans {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-floorplans:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-floorplans img {\\n height: 19px;\\n}\\n\\n#control-floorplans.hide img {\\n filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);\\n opacity: 0.5;\\n}\\n\\n#control-fullscreen {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-fullscreen:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-fullscreen img {\\n height: 19px;\\n}\\n\\n#control-help {\\n box-sizing: border-box;\\n width: 48px;\\n height: inherit;\\n cursor: pointer;\\n text-align: center;\\n display: inline-block;\\n line-height: 52px;\\n font-size: 16px;\\n}\\n\\n#control-help:hover {\\n background-color: #d5d5d5;\\n}\\n\\n#control-help img {\\n height: 19px;\\n}\\n\\n$scene-switcher-width: 96px;\\n$scene-switcher-height: 88px;\\n$scene-switcher-toggle-padding: 16px;\\n\\n#control-scene-switcher-panel.close {\\n transform: translate3d($scene-switcher-width, 0, 0);\\n}\\n\\n#control-scene-switcher-panel.open {\\n transform: translate3d(0, 0, 0);\\n}\\n\\n#control-scene-switcher-panel {\\n transition: all .2s;\\n}\\n\\n#control-scene-switcher-panel {\\n position: absolute;\\n top: -340px;\\n right: 0;\\n width: $scene-switcher-width;\\n display: none;\\n\\n .toggle-button {\\n position: absolute;\\n height: $scene-switcher-height;\\n line-height: $scene-switcher-height;\\n font-size: 10px;\\n color: white;\\n left: -(2 * $scene-switcher-toggle-padding + 10);\\n padding: 0 $scene-switcher-toggle-padding;\\n background-color: rgba(0, 0, 0, 0.5);\\n text-decoration: none;\\n border-top-left-radius: 16px;\\n border-bottom-left-radius: 16px;\\n }\\n\\n #control-scene-switcher-title {\\n background-color: rgba(0, 0, 0, 0.5);\\n color: white;\\n font-size: 10px;\\n text-align: center;\\n }\\n\\n #control-scene-switcher {\\n background-color: rgba(0, 0, 0, 0.7);\\n position: relative;\\n height: 64px;\\n opacity: 0.7;\\n overflow-y: scroll;\\n img {\\n width: 100%;\\n height: auto;\\n }\\n .scene-name-label {\\n position: relative;\\n top: -48px;\\n color: white;\\n line-height: 1.2;\\n font-size: 10px;\\n padding: 4px;\\n text-align: center;\\n box-sizing: border-box;\\n text-shadow: 1px 1px 1px #000, -1px -1px 1px #000;\\n }\\n }\\n}\\n\\n#control-zoom_wrap {\\n box-sizing: border-box;\\n position: absolute;\\n top: -220px;\\n right: 5px;\\n width: 30px;\\n height: 60px;\\n}\\n\\n#control-zoom-out, #control-zoom-in {\\n box-sizing: border-box;\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n background-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n#control-zoom-out::before, #control-zoom-out::after, #control-zoom-in::before, #control-zoom-in::after {\\n box-sizing: border-box;\\n position: absolute;\\n content: \\\"\\\";\\n width: 10px;\\n height: 10px;\\n}\\n\\n#control-zoom-out.enabled::before, #control-zoom-in.enabled::before {\\n border-top: 1px solid #f5f5f5;\\n}\\n\\n#control-zoom-out.enabled::after, #control-zoom-in.enabled::after {\\n border-left: 1px solid #f5f5f5;\\n}\\n\\n#control-zoom-out.enabled:hover, #control-zoom-in.enabled:hover {\\n cursor: pointer;\\n}\\n\\n#control-zoom-out.enabled:hover::before, #control-zoom-in.enabled:hover::before {\\n border-top: 1px solid #2AB7D9;\\n}\\n\\n#control-zoom-out.enabled:hover::after, #control-zoom-in.enabled:hover::after {\\n border-left: 1px solid #2AB7D9;\\n}\\n\\n#control-zoom-out {\\n border-radius: 0 0 2px 2px;\\n top: 30px;\\n}\\n\\n#control-zoom-out::before {\\n border-top: 1px solid #5c5c5c;\\n top: 15px;\\n left: 10px;\\n}\\n\\n#control-zoom-out.enabled::after {\\n border-left: 0;\\n}\\n\\n#control-zoom-out.enabled:hover::after {\\n border-left: 0;\\n}\\n\\n#control-zoom-in {\\n border-radius: 2px 2px 0 0;\\n top: 0px;\\n border-bottom: 1px solid rgba(245, 245, 245, 0.5);\\n}\\n\\n#control-zoom-in::before {\\n border-top: 1px solid #5c5c5c;\\n width: 11px;\\n top: 14px;\\n left: 9px;\\n}\\n\\n#control-zoom-in::after {\\n height: 11px;\\n border-left: 1px solid #5c5c5c;\\n top: 9px;\\n left: 14px;\\n}\\n\\n/**\\n * 外部リンク\\n */\\n#links {\\n box-sizing: border-box;\\n border-radius: 3px;\\n position: absolute;\\n height: 30px;\\n top: 5px;\\n right: 5px;\\n background-color: #2AB7D9;\\n font-size: 75%;\\n color: #fff;\\n padding: 3px 10px 3px 10px;\\n display: none;\\n overflow: hidden;\\n z-index: 510;\\n}\\n\\n#links.active {\\n display: block;\\n}\\n\\n#links.active a {\\n color: #fff;\\n text-decoration: none;\\n}\\n\\n#links.active a:visited {\\n color: #fff;\\n}\\n\\n#links.active a:focus {\\n color: #fff;\\n}\\n\\n#links.active a:hover {\\n color: #fff;\\n}\\n\\n#links.active a:active {\\n color: #fff;\\n}\\n\\n.without-map {\\n #thumbnails {\\n width: 100%;\\n }\\n}\\n\\n#vrModeStartButton {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100vw;\\n height: 100vh;\\n line-height: 100vh;\\n text-align: center;\\n color: white;\\n background-color: rgba(0, 0, 0, 0.75);\\n z-index: 1000;\\n}\\n\\n.sp {\\n #floorplans {\\n width: 200px;\\n height: 190px;\\n }\\n #thumbnails {\\n width: calc(100% - 210px);\\n }\\n &.without-map #thumbnails {\\n width: 100%;\\n }\\n #control-vreffect {\\n display: inline-block;\\n }\\n}\\n.sp.portrait {\\n #floorplans {\\n width: 100%;\\n height: 130px;\\n left: 0;\\n bottom: 50px;\\n }\\n #floorplan-control {\\n display: none;\\n }\\n #footer-controls {\\n padding-top: 270px;\\n }\\n #footer-controls #control-menu {\\n left: 50%;\\n transform: translateX(-50%);\\n }\\n #control-scene-switcher-panel {\\n top: -460px;\\n }\\n #control-zoom_wrap {\\n top: -340px;\\n }\\n #thumbnails {\\n width: 100%;\\n }\\n}\\n.sp.portrait.without-map {\\n #footer-controls {\\n padding-top: 0;\\n }\\n #control-zoom_wrap {\\n top: -198px;\\n }\\n}\\n\",\"/* http://meyerweb.com/eric/tools/css/reset/\\n v5.0.1 | 20191019\\n License: none (public domain)\\n*/\\n\\nhtml, body, div, span, applet, object, iframe,\\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\\na, abbr, acronym, address, big, cite, code,\\ndel, dfn, em, img, ins, kbd, q, s, samp,\\nsmall, strike, strong, sub, sup, tt, var,\\nb, u, i, center,\\ndl, dt, dd, menu, ol, ul, li,\\nfieldset, form, label, legend,\\ntable, caption, tbody, tfoot, thead, tr, th, td,\\narticle, aside, canvas, details, embed,\\nfigure, figcaption, footer, header, hgroup,\\nmain, menu, nav, output, ruby, section, summary,\\ntime, mark, audio, video {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\tfont-size: 100%;\\n\\tfont: inherit;\\n\\tvertical-align: baseline;\\n}\\n/* HTML5 display-role reset for older browsers */\\narticle, aside, details, figcaption, figure,\\nfooter, header, hgroup, main, menu, nav, section {\\n\\tdisplay: block;\\n}\\n/* HTML5 hidden-attribute fix for newer browsers */\\n*[hidden] {\\n display: none;\\n}\\nbody {\\n\\tline-height: 1;\\n}\\nmenu, ol, ul {\\n\\tlist-style: none;\\n}\\nblockquote, q {\\n\\tquotes: none;\\n}\\nblockquote:before, blockquote:after,\\nq:before, q:after {\\n\\tcontent: '';\\n\\tcontent: none;\\n}\\ntable {\\n\\tborder-collapse: collapse;\\n\\tborder-spacing: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".fk-input-container[data-v-32c17cb5]{display:inline-block}.fk-input-container input[data-v-32c17cb5]{border:none;margin-left:10px;text-align:center}.fk-input-container input[data-v-32c17cb5]:first-child{margin-left:0}.fk-input-container input[data-v-32c17cb5]:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/VueFakeInput.vue\"],\"names\":[],\"mappings\":\"AACA,qCACE,oBAAA,CAEA,2CACE,WAAA,CACA,gBAAA,CACA,iBAAA,CAEA,uDAAA,aAAA,CACA,iDAAA,YAAA\",\"sourcesContent\":[\"\\n.fk-input-container {\\n display: inline-block;\\n\\n input {\\n border: none;\\n margin-left: 10px;\\n text-align: center;\\n\\n &:first-child { margin-left: 0; }\\n &:focus { outline: none; }\\n }\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".map-large[data-v-42a450c7]{overflow:hidden;width:180px;font-size:0}.map-name[data-v-42a450c7]{background-color:#2ab7d9;font-size:12px;line-height:18px;color:#fff;text-align:center}.map-name button[data-v-42a450c7]{border-width:1px;border-radius:3px;border-style:solid;margin-left:1px;border-color:#fff;background-color:#2ab7d9;color:#fff}.map-name button.active[data-v-42a450c7]{border-color:#2ab7d9;background-color:#fff;color:#2ab7d9}.bottom-bar[data-v-42a450c7]{position:relative;background-color:#2ab7d9;width:100%;height:30px}.map-zoom[data-v-42a450c7]{width:calc(100% - 30px);font-size:0}.slider[data-v-42a450c7],.label[data-v-42a450c7]{display:inline-block;vertical-align:middle}.slider[data-v-42a450c7]{width:calc(100% - 40px);height:30px}.label[data-v-42a450c7]{width:20px;height:30px;line-height:30px;font-size:14px;text-align:center;color:rgba(255,255,255,.5)}.minimize[data-v-42a450c7]{position:absolute;box-sizing:border-box;right:-7px;bottom:-7px;width:44px;height:44px}.minimize img[data-v-42a450c7]{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:30px;height:30px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/map-large.vue\"],\"names\":[],\"mappings\":\"AACA,4BACE,eAAA,CACA,WAAA,CACA,WAAA,CAEF,2BACE,wBAAA,CACA,cAAA,CACA,gBAAA,CACA,UAAA,CACA,iBAAA,CACA,kCACE,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,iBAAA,CACA,wBAAA,CACA,UAAA,CAEF,yCACE,oBAAA,CACA,qBAAA,CACA,aAAA,CAGJ,6BACE,iBAAA,CACA,wBAAA,CACA,UAAA,CACA,WAAA,CAEF,2BACE,uBAAA,CACA,WAAA,CAEF,iDACE,oBAAA,CACA,qBAAA,CAEF,yBACE,uBAAA,CACA,WAAA,CAEF,wBACE,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,iBAAA,CACA,0BAAA,CAEF,2BACE,iBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,WAAA,CAEF,+BACE,iBAAA,CACA,OAAA,CACA,QAAA,CACA,+BAAA,CACA,UAAA,CACA,WAAA\",\"sourcesContent\":[\"\\n.map-large {\\n overflow: hidden;\\n width: 180px;\\n font-size: 0;\\n}\\n.map-name {\\n background-color: #2AB7D9;\\n font-size: 12px;\\n line-height: 18px;\\n color: white;\\n text-align: center;\\n button {\\n border-width: 1px;\\n border-radius: 3px;\\n border-style: solid;\\n margin-left: 1px;\\n border-color: white;\\n background-color: #2AB7D9;\\n color: white;\\n }\\n button.active {\\n border-color: #2AB7D9;\\n background-color: white;\\n color: #2AB7D9;\\n }\\n}\\n.bottom-bar {\\n position: relative;\\n background-color: #2AB7D9;\\n width: 100%;\\n height: 30px;\\n}\\n.map-zoom {\\n width: calc(100% - 30px);\\n font-size: 0;\\n}\\n.slider, .label {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n.slider {\\n width: calc(100% - 40px);\\n height: 30px;\\n}\\n.label {\\n width: 20px;\\n height: 30px;\\n line-height: 30px;\\n font-size: 14px;\\n text-align: center;\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.minimize {\\n position: absolute;\\n box-sizing: border-box;\\n right: -7px;\\n bottom: -7px;\\n width: 44px;\\n height: 44px;\\n}\\n.minimize img {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n width: 30px;\\n height: 30px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".backdrop[data-v-9b51534c]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:auto}.menu[data-v-9b51534c]{position:absolute;width:100px;right:8px;top:52px;background-color:#fff;box-shadow:0 0 4px 4px rgba(0,0,0,.2);overflow:hidden;pointer-events:auto}.menu-item[data-v-9b51534c]{padding:8px 16px;font-size:14px;color:#666;border-bottom:1px solid #ccc;cursor:pointer}.menu-item.disabled[data-v-9b51534c]{color:#ccc;cursor:not-allowed}.menu-item[data-v-9b51534c]:last-child{border-bottom:none}.v-enter-active[data-v-9b51534c],.v-enter-active .menu[data-v-9b51534c],.v-leave-active[data-v-9b51534c],.v-leave-active .menu[data-v-9b51534c]{transition:opacity .2s}.v-enter .menu[data-v-9b51534c],.v-leave-to .menu[data-v-9b51534c]{opacity:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/more-menu.vue\"],\"names\":[],\"mappings\":\"AACA,2BACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,mBAAA,CAGF,uBACE,iBAAA,CACA,WAAA,CACA,SAAA,CACA,QAAA,CACA,qBAAA,CACA,qCAAA,CACA,eAAA,CACA,mBAAA,CAGF,4BACE,gBAAA,CACA,cAAA,CACA,UAAA,CACA,4BAAA,CACA,cAAA,CAEA,qCACE,UAAA,CACA,kBAAA,CAIJ,uCACE,kBAAA,CAGF,gJACE,sBAAA,CAGF,mEACE,SAAA\",\"sourcesContent\":[\"\\n.backdrop {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: auto;\\n}\\n\\n.menu {\\n position: absolute;\\n width: 100px;\\n right: 8px;\\n top: calc(44px + 8px);\\n background-color: #fff;\\n box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.2);\\n overflow: hidden;\\n pointer-events: auto;\\n}\\n\\n.menu-item {\\n padding: 8px 16px;\\n font-size: 14px;\\n color: #666;\\n border-bottom: 1px solid #ccc;\\n cursor: pointer;\\n\\n &.disabled {\\n color: #ccc;\\n cursor: not-allowed;\\n }\\n}\\n\\n.menu-item:last-child {\\n border-bottom: none;\\n}\\n\\n.v-enter-active, .v-enter-active .menu, .v-leave-active, .v-leave-active .menu {\\n transition: opacity .2s;\\n}\\n\\n.v-enter .menu, .v-leave-to .menu {\\n opacity: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ui-minimal[data-v-4c7a8569]{pointer-events:none}.telop-wrapper[data-v-4c7a8569]{position:absolute;top:0px;width:100%;background-color:rgba(0,0,0,.1);box-shadow:0 0 2px 2px rgba(0,0,0,.2)}.ui-minimal-icons-area[data-v-4c7a8569]{position:absolute;pointer-events:auto;display:flex;justify-content:flex-end;height:44px;left:0px;bottom:0px;right:0px}.ui-minimal-icons-area .icon-frame[data-v-4c7a8569]{pointer-events:auto;position:relative;width:42px;height:42px;margin:0px 1px;background-color:rgba(0,0,0,.2);border-radius:50%}.ui-minimal-icons-area .icon-frame .icon[data-v-4c7a8569]{pointer-events:none;position:absolute;top:50%;left:50%;width:85%;height:85%;transform:translate(-50%, -50%)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/ui-minimal.vue\"],\"names\":[],\"mappings\":\"AACA,6BACE,mBAAA,CAGF,gCACE,iBAAA,CACA,OAAA,CACA,UAAA,CACA,+BAAA,CACA,qCAAA,CAGF,wCACE,iBAAA,CACA,mBAAA,CACA,YAAA,CACA,wBAAA,CACA,WAAA,CACA,QAAA,CACA,UAAA,CACA,SAAA,CAEA,oDACE,mBAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,+BAAA,CACA,iBAAA,CAEA,0DACE,mBAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,+BAAA\",\"sourcesContent\":[\"\\n.ui-minimal {\\n pointer-events: none;\\n}\\n\\n.telop-wrapper {\\n position: absolute;\\n top: 0px;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);\\n}\\n\\n.ui-minimal-icons-area {\\n position: absolute;\\n pointer-events: auto;\\n display: flex;\\n justify-content: flex-end;\\n height: 44px;\\n left: 0px;\\n bottom: 0px;\\n right: 0px;\\n\\n .icon-frame {\\n pointer-events: auto;\\n position: relative;\\n width: 42px;\\n height: 42px;\\n margin: 0px 1px;\\n background-color: rgba(0, 0, 0, 0.2);\\n border-radius: 50%;\\n\\n .icon {\\n pointer-events: none;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 85%;\\n height: 85%;\\n transform: translate(-50%, -50%);\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".button-exit-vr-frame[data-v-677d92be]{position:absolute;top:50%;left:50%;width:90px;height:90px;transform:translate(-50%, -50%);border-radius:15px;background-color:rgba(0,0,0,.6);z-index:100}.button-exit-vr-frame .button-exit-vr[data-v-677d92be]{position:absolute;top:35%;left:50%;width:50%;height:50%;transform:translate(-50%, -50%)}.button-exit-vr-frame .button-exit-vr-text[data-v-677d92be]{position:absolute;top:65%;left:50%;width:80%;transform:translate(-50%, 0);font-size:11px;line-height:12px;color:#fff;text-align:center}.toggle-fullscreen-frame[data-v-677d92be]{position:absolute;bottom:5px;right:5px;padding:0px;width:40px;height:40px;border-radius:20px;background-color:rgba(10,10,10,.6);z-index:100}.toggle-fullscreen-frame .toggle-fullscreen[data-v-677d92be]{pointer-events:none;position:absolute;top:50%;left:50%;width:80%;height:80%;transform:translate(-50%, -50%)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./app/javascript/src/panoramas/components/ui/ui-vr.vue\"],\"names\":[],\"mappings\":\"AACA,uCACE,iBAAA,CACA,OAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,+BAAA,CACA,kBAAA,CACA,+BAAA,CACA,WAAA,CAEA,uDACE,iBAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,+BAAA,CAGF,4DACE,iBAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,4BAAA,CACA,cAAA,CACA,gBAAA,CACA,UAAA,CACA,iBAAA,CAIJ,0CACE,iBAAA,CACA,UAAA,CACA,SAAA,CACA,WAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,kCAAA,CACA,WAAA,CAEA,6DACE,mBAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,+BAAA\",\"sourcesContent\":[\"\\n.button-exit-vr-frame {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 90px;\\n height: 90px;\\n transform: translate(-50%, -50%);\\n border-radius: 15px;\\n background-color: rgba(0, 0, 0, 0.6);\\n z-index: 100;\\n\\n .button-exit-vr {\\n position: absolute;\\n top: 35%;\\n left: 50%;\\n width: 50%;\\n height: 50%;\\n transform: translate(-50%, -50%);\\n }\\n\\n .button-exit-vr-text {\\n position: absolute;\\n top: 65%;\\n left: 50%;\\n width: 80%;\\n transform: translate(-50%, 0);\\n font-size: 11px;\\n line-height: 12px;\\n color: #FFFFFF;\\n text-align: center;\\n }\\n}\\n\\n.toggle-fullscreen-frame {\\n position: absolute;\\n bottom: 5px;\\n right: 5px;\\n padding: 0px;\\n width: 40px;\\n height: 40px;\\n border-radius: 20px;\\n background-color: rgba(10, 10, 10, 0.6);\\n z-index: 100;\\n\\n .toggle-fullscreen {\\n pointer-events: none;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 80%;\\n height: 80%;\\n transform: translate(-50%, -50%);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"fk-input-container\"},_vm._l((_vm.length),function(input,index){return _c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValues[index]),expression:\"inputValues[index]\"}],key:index,ref:_vm.generateInputId(index),refInFor:true,style:({\n fontSize: _vm.fkFontSize,\n borderBottom: _vm.fkInputColor(index),\n color: _vm.fontColor,\n width: _vm.fkWidth,\n }),attrs:{\"id\":_vm.generateInputId(index),\"type\":\"tel\",\"maxlength\":\"1\",\"contenteditable\":\"true\"},domProps:{\"value\":(_vm.inputValues[index])},on:{\"keydown\":_vm.handleKeydown,\"keyup\":function($event){return _vm.handleInputFocus(index)},\"paste\":function($event){$event.preventDefault();return _vm.handlePastedValues.apply(null, arguments)},\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.inputValues, index, $event.target.value)},function($event){return _vm.returnFullString()}]}})}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueFakeInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-5.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueFakeInput.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueFakeInput.vue?vue&type=style&index=0&id=32c17cb5&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-3.use[2]!../../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-3.use[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueFakeInput.vue?vue&type=style&index=0&id=32c17cb5&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VueFakeInput.vue?vue&type=template&id=32c17cb5&scoped=true&\"\nimport script from \"./VueFakeInput.vue?vue&type=script&lang=js&\"\nexport * from \"./VueFakeInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VueFakeInput.vue?vue&type=style&index=0&id=32c17cb5&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32c17cb5\",\n null\n \n)\n\nexport default component.exports"],"names":["defaultName","default","color1","color2","vrModeColor","iconColor","iconBackground","defaultColor","activeColor","thumbnailBorder","icons","back","require","more","info","pointThumbnails","itemThumbnails","fullscreenOn","fullscreenOff","autoRotation","gyroRotation","videoControls","vrEffect","vrExit","videoPlay","videoPause","videoBwd5","videoFwd5","close","minimize","controls","controlsShow","controlsHide","overlayVideoPlay","volumeUp","volumeOff","theme1","settings","isMobile","bowser","isSupportCrossOriginVideoTexture","themes","currentTheme","Url","window","location","href","query","theme","errorMessage","placeData","placeId","mapId","pointId","itemId","size","width","height","fov","max","FOV_MAX","min","FOV_MIN","value","FOV_DEFAULT","cameraRotation","x","y","imageQuality","vrMode","deviceOrientationDetected","deviceMotionDenied","telopEnabled","autoRotationDirection","ignoreAutoRotation","eyeControlEnable","radarEnabled","videoPlaying","videoDuration","videoStartTime","videoCurrentTime","videoSpeed","videoRepeat","videoMuted","videoVolume","itemContextHistory","panoramaZoomEnabled","pointThumbnailsActive","itemThumbnailsActive","videoControlsActive","videoSpeedMenuActive","videoAutoPlay","moreMenuActive","infoModalActive","imageQualityModalActive","airtagInformationActive","airtagInformation","image_url","text","youtube_url","eyeTrackingState","none","looking","selected","lookAtItemObject","itemObject","counter","itemTransition","name","loading","fullscreen","fullscreenExecuted","locationHashParams","getAttributeValue","place","attributeName","_a","_b","attributes","find","attr","clampRotation","THREE","euclideanModulo","minDiff","diffRotation","maxDiff","a","b","d","Math","abs","initialItemContext","state","getters","firstPiont","getPointById","firstPointId","map","maps","point","points","item","items","length","id","allMaps","filter","m","allPoints","forEach","push","apply","_toConsumableArray","allItems","getMapById","getItemById","currentMap","currentPoint","currentItem","pointsOfCurrentMap","itemsOfCurrentPoint","primary","panoramaName","panorama_name","pointName","_c","trim","currentItemContext","__spreadValues","lastItemContext","itemComponentInfo","_d","_e","_f","_g","_h","_i","_j","_k","_l","quality","key","concat","type","img","BowserAccessor","checkIpad","pointRotation","pointDirection","movablePoints","airtags","tripodCoverUrl","tripod_cover","tripodCoverScale","tripod_cover_scale","masking","meta_data","common","cameraSpeed","cameraPan","nextPointId","next_point_id","fisheye250FocalLength","fisheye_250_image","focal_length","verticalFov","horizontalFov","aspect","fovV","radToDeg","atan","tan","degToRad","toHorizontalFov","cameraRotationRange","viewableArea","viewable_area","rotation","mapDirection","xMin","x_angle_min","xMax","x_angle_max","yMin","y_angle_min","yMax","y_angle_max","camera","speed","pan","drawWalkThrough","allow_items","allow_item","point_id","clone","tags","airtag","i","index","backButtonVisible","title","Boolean","join","mapViewVisible","mapImageUrl","image_file_path","mapPoints","visible","active","mapLines","lines","allowItem","line","sort","Object","values","isRadarVisible","drawRadar","direction","imageUrl","image_file_path_thumb","caption","scene_name","displayingThumbnailList","itemThumbnailsVisible","autoRotationVisible","includes","autoRotationOn","gyroRotationOn","videoControlVisible","parentPlaceTelopText","parent","itemTelopText","telop","itemTelopSpeed","scroll","itemBrightness","parseFloat","brightness","externalLink","url","excuseText","hideAnnotation","processingType","isVideoFallback","processing_tags","homeStagingTagged","itemRemovalTagged","renovationTagged","keepMovementDirection","keep_movement_direction","initialCameraRotation","xAngle","x_angle","yAngle","y_angle","clamp","initialCameraFov","canForward","findIndex","vectorToPoint","mapAspect","aspect_ratio","p1","p2","v1","sub","directionToPoint","v","angle","panoramaZoomBottom","panoramaZoomActive","panoramaGyroRotationAvailable","gyroRotationEnable","vrModeAvailable","vreffectEnable","panoramaThumbUrl","panorama_thumb_url","setSettings","menuOpen","itemThumbsOpen","setErrorMessage","setPlaceData","_a2","_a3","setItemContext","_ref","arguments","undefined","transition","_ref$videoForceAutoPl","videoForceAutoPlay","videoPlaybackAutomatically","appendItemContextHistory","removeLastItemContext","pop","setSize","_ref2","setFov","setCameraRotation","_ref3","setPanoramaZoomEnabled","enabled","togglePointThumbnails","toggleItemThumbnails","hideItemThumbnails","toggleVideoControls","toggleVideoSpeedMenu","setVideoMuted","muted","setVideoVolume","toggleMoreMenu","toggleInfoModal","toggleImageQualityModal","toggleAirtagInformation","setVideoDuration","duration","setVideoCurrentTime","currentTime","setVideoPlaying","playing","setVideoSpeed","setTelopEnabled","setAutoRotation","invertAutoRotationDirection","setIgnoreAutoRotation","setGyroRotation","setRadarEnabled","setAirtagInformation","_ref4","setLookingAtItemObject","_ref5","setStopLookingAtItemObject","setSelectedItemObject","setLoading","setVrMode","logger","sendEvent","setImageQuality","setDeviceOrientationDetected","setDeviceMotionDenied","setFullscreen","setFullscreenExecuted","setLocationHashParams","EventSubjects","_classCallCheck","this","_changePointSubject","Rx","_itemShownSubject","_screenClickSubject","_fovChangedByUserSubject","_airTagClickSubject","e","next","data","Analytics","eventSubjects","AnalyticsNamespace","attachPanoramaEvents","onItemShownAsObservable","subscribe","console","log","onPointChangeAsObservable","onAirTagClickAsObservable","onFovChangedByUserAsObservable","notifyItemShown","notifyPointChanged","seekPositionMillisec","pointIndex","notifyAirTagClick","phi","theta","notifyFovChangedByUser","rotateCameraTween","loadPanorama","_0","_1","__async","panoramaDataUrl","commit","dispatch","_regeneratorRuntime","mark","_callee","response","wrap","_context","prev","Nurve","$http","get","sent","t0","stop","showInitialItem","_callee2","_getters$initialItemC","_context2","__spreadProps","analytics","requestPermissionDeviceMotion","DeviceMotionEvent","DeviceOrientationEvent","requestPermission","then","permission","rotateCamera","Promise","resolve","reject","fromRotation","toRotation","TWEEN","to","easing","Quadratic","Out","onUpdate","onComplete","start","setTimeout","changeCameraRotation","_ref6","_ref7","changePointWithoutForwardProcess","_ref8","_ref9","_callee3","_context3","abrupt","p","event","overrideIds","changePoint","_ref10","_ref11","_ref11$videoForceAuto","_callee4","_context4","changePointForward","_ref12","_ref13","_ref13$videoForceAuto","catch","changePointFade","_ref14","_ref15","_ref15$videoForceAuto","changeItem","_ref16","_ref17","_callee5","_context5","changeImageQuality","_ref18","_callee6","itemContext","_context6","backPrevPoint","_ref19","changeFov","_ref20","oldFov","changeFovWithAnimation","_ref21","_ref22","obj","onAirtagClick","_ref23","_ref24","information","onStopLookAtItemObject","_ref25","onLookAtArrowPoint","_ref26","_ref27","arrowPoint","onLookAtAirtag","_ref28","_ref29","clampCameraRotation","_ref30","range","_state$cameraRotation","_ref31","_ref32","namespaced","mutations","actions","computed","mapState","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","_self","staticClass","_v","_s","methods","mapMutations","dispose","beforeEnter","el","style","opacity","enter","done","Exponential","In","afterEnter","beforeLeave","leave","afterLeave","created","mixins","transition2d","setup","mediumStore","useMediumStore","mapGetters","onTap","$emit","hlsActive","attrs","on","directives","rawName","expression","arg","Vue","waitMetadata","reactiveVideo","video","disposables","CompositeDisposable","addSubscription","metadataReadyProperty","asObservable","ready","onErrorAsObservable","error","videoElement","overlayVideoPlayButton","overlayVideoReplayButton","changeVideoVolumeTimer","initVideoEvent","_this","onPlayingAsObservable","onEndedAsObservable","playVideo","screenfull","postMessage","JSON","stringify","action","by","dispatchEvent","Event","onPauseAsObservable","onTimeupdateAsObservable","onRatechangeAsObservable","playbackRate","onWaitingAsObservable","onCanplayAsObservable","onSeekingAsObservable","parseInt","ended","onSeekedAsObservable","_this2","play","err","muteVideo","pauseVideo","pause","skipVideo","seconds","time","changeVideoSpeed","unmuteVideo","startVideoLoading","waitInitialCanplayEvent","load","_this3","changeVideoVolume","volume","_this4","clearTimeout","mapActions","mounted","add","ReactiveVideoElement","videoControlsBus","$on","$el","querySelector","appendChild","beforeDestroy","$off","props","overlayStyle","$event","VideoTextureCache","_createClass","texture","hlsVideo","ImageTextureCache","VideoCache","_MediumCacheProvider","src","_videoTextureCaches","createVideoTextureCache","_imageTextureCaches","createImageTextureCache","_videoCaches","createVideoCache","MediumElementFactory","isHlsAvailable","createHlsVideo2","texture2","createThreeVideoTexture","createStandardVideo","minFilter","magFilter","imageTexture","format","MediumCacheProvider","videoPlayer","components","VideoOverlay","getVideoCache","videoObject","promiseManifestParsed","setupLevelHandling","destroyed","target","_default","store","panorama","_Transition3dBase","_inherits","_super","call","showAirTagsAndMoveTags","tween","tweenPromise","TweenPromisify","timeoutPromise","delay","panoramaFovMax","all","Transition3dBase","pos","applyEuler","inner","position","copy","tween1","z","promise1","tween2","promise2","createTransition","Transition3dFade","$store","object","Transition3dForward","Transition3dNull","$_transition","$_onTap","raycaster","threeContext","createRaycaster","center","moveTag","findMoveTagOnRay","airTag","findAirTagOnRay","$_onPanStart","$_panX","$_panY","$_onPan","deltaY","deltaX","$_onPanEnd","$_onPinchStart","$_fov","$_onPinch","scale","$_onPinchEnd","$_onWheel","preventDefault","sign","wheelDeltaY","wheelDelta","detail","$listen","_ItemBaseObject","_opacity","mesh","createMesh","airTags","moveTags","addAirAndMoveTags","tripodCoverMesh","createTripodCover","maskingMesh","createMaskingMesh","switchVrMode","watch","Error","tag","createAirtagObject","threeObject","updateShowByTimeAirtags","nextPoint","createMoveTagObject","colorTween","r","g","repeat","Infinity","yoyo","updateMoveTagsColor","material","geometry","getImageTextureCache","color","transparent","PI","renderOrder","set","side","setFromSpherical","lookAt","targetPoint","label","Tag","create","setLength","ARROW_DIST_MIN","multiplyScalar","ARROW_DIST_MAX","atan2","setFromSphericalCoords","deg","callback","onClick","arrowSize","ARROW_SIZE","forPanorama","showByTime","getVisibilityByContext","onRay","setColor","selectedTag","hoverOn","hoverOff","updateOpacity","ItemBaseObject","ShaderMaterial","userData","_get","_getPrototypeOf","prototype","transition3d","gesture","removeItemObject","ItemCelestialSphereImageObject","setBrightness","addItemObject","domProps","threshold","pinch","enable","videoTextureCache","getVideoTextureCache","source","restoreVideoPlaying","cache","ItemCelestialSphereVideoObject","createGeometry","createFisheyeGeometory","ItemFisheyeImageObject","uvScale","ItemFisheyeVideoObject","horizontal","imageBoxWidth","imageBoxHeight","imageWidth","imageHeight","offsetX","offsetY","speedX","speedY","autoSwing","imageStyle","transform","pointerEvents","diffWidth","minOffsetX","maxOffsetX","diffHeight","minOffsetY","maxOffsetY","onLoad","$refs","image","naturalWidth","naturalHeight","$nextTick","updateSize","animate","updateOffset","requestAnimationFrame","bind","clientWidth","clientHeight","onPanStart","onPan","velocityX","velocityY","onCopy","addEventListener","ref","StereoEffect","renderer","_stereo","StereoCamera","Vector2","setEyeSeparation","eyeSep","render","scene","updateMatrixWorld","update","getSize","autoClear","clear","setScissorTest","setScissor","setViewport","cameraL","cameraR","RING_IN_RADIUS","RING_OUT_RADIUS","RING_T_SEG","RING_P_SEG","targetEye","createTargeEye","selectBar","createSelectBar","children","geometry1","setFromPoints","line1","geometry2","line2","pt","setPositionSelectBar","airtagSprite","normalize","count","rate","rotateY","rotateX","quat","setRotationFromQuaternion","remove","vrObject","VrObject","order","antialias","canvas","domElement","effect","controlObject","DeviceOrientationControls","resetDeviceOrientation","updateFov","updateCameraRotation","deep","_this$panoramaSize","panoramaSize","setPixelRatio","devicePixelRatio","updateProjectionMatrix","panoramaFov","lookAtCamera","quaternion","selectd","setFromCamera","isDetect","setPositionSelectBarWithArrow","countSelectBar","setPositionSelectBarWithAirtag","disconnect","connect","setVisible","updateVrMode","updateNonVrMode","detectIntersection","rotationSpeedX","rotationSpeedY","factor","cy","normalizeDegree180","setParent","_this$panoramaSize2","vector","ItemImage","ItemVideo","ItemCelestialSphereImage","ItemCelestialSphereVideo","ItemFisheyeImage","ItemFisheyeVideo","ItemSwingImage","ItemEmpty","ThreeContext","itemComponent","enableCssFilter","_t","scrollWidth","scrollLeft","maxScrollLeft","isLeftScrollable","isRightScrollable","updateWidth","onScroll","page","newScrollLeft","activated","deactivated","Scrollable","thumbnailBorderColor","thumbnal","onScrollLeft","scrollable","onScrollRight","thumbnail","class","borderColor","staticStyle","SvgColoredIcon","iconStyle","backgroundColor","disabled","icon","ButtonIcon","imageQualityModal","ExternalLink","isTopWindow","fullscreenEnabled","parentExists","toggleFullscreen","document","onFullscreenChange","toggleMaximize","startVrMode","URL","searchParams","open","startGyroMode","locationHashParser","params","hash","substring","split","_p$split2","k","top","fullscreenEnable","$parent","oldValue","trackLength","thumbStyle","vertical","left","updateValue","track","delta","Slider","fovValue","bottom","model","$$v","currentPosition","originalWidth","originalHeight","zoomScale","panOffset","normalization","longSide","imageX","imageY","raderShape","pointX","pointY","dir","createRaderShape","updateImageSize","handler","InOut","getImage","Image","onload","onerror","cx","x1","cos","y1","sin","dx","dy","onWheel","showWalkThrough","zoom","viewFocalCurrentPointX","viewFocalCurrentPointY","imageFocalCurrentPointX","imageFocalCurrentPointY","panTo","restrictPan","xGap","yGap","pointById","drawLine","MapSvg","mapSvg","onZoom","MapSmall","MapLarge","small","videoVolumeValue","VideoVolumeSlider","videoVolumeSlideActive","touch","lastActiveTime","Date","getTime","checkDeactive","toggleMute","mute","unmute","mouseOverVolume","mouseLeaveVolume","intervalId","setInterval","clearInterval","speeds","selectMenuItem","currentTarget","stopPropagation","LEVELS","showImageQualityModal","toggleHlsAutomaticVideoLevel","autoHlsLevelActiveProperty","autoHlsLevelActive","changeLevel","hlsLevelIndexProperty","hlsLevels","hlsLevelIndex","_q","dummyImage","prevPosX","prevPosY","transX","transY","isPinchEnd","infoImgStyle","maxWidth","maxHeight","loadedImage","loadFailed","setScale","updateImageTransform","maxTransX","maxTransY","onPanEnd","onPinchStart","currentImgWidth","onPinch","srcEvent","onPinchEnd","__name","__props","toRefs","videoId","getVideoId","iv_load_policy","autoplay","disablekb","showinfo","modestbranding","loop","playlist","qs","__sfc","_setupProxy","AirtagMovie","AirtagImage","imgElem","isActive","imgMinWidth","imgMinHeight","btnCloseX","btnCloseY","isImageLoaded","airtagInformationText","replaceUrlToLink","updateBtnCloseLocate","modalElemRect","modal","getBoundingClientRect","right","onClose","onImageLoaded","imageLoadFinished","onImageloadFailed","replace","match","touches","slot","showModal","overlayModalData","overlay_modal","content","external_url","external_label","Telop","ExcuseText","PointThumbnails","ItemThumbnails","TitleBar","BottomBar","PanoramaZoom","MapView","VideoControls","VideoSpeedMenu","MoreMenu","InfoModal","ImageQualityModal","AirtagInformation","OverlayMessageModal","defaultOverlayButtonTop","overlayButtonTop","telopHeight","mapViewStyle","panoramaHeaderStyle","showOverlayModal","excuseTextStyle","hideControls","isMenu","timeId","vrMenuStyle","fullscreenElement","exitFullscreen","requestFullscreen","toggoleMenu","CustomEvent","removeEventListener","VueFakeInput","passcode","inputColor","check","bcrypt","hashed","result","Loading","ErrorMessage","ItemView","UiFull","UiMinimal","UiVr","Passcode","waitPasscode","motionPermitted","showControls","hasDeviceMotionOptInFeature","viewMode","uiComponent","requestMotionPermission","onResize","onDeviceOrientaion","alpha","beta","gamma","checkPasscode","passcodeError","compare","passCodeHash","showPanorama","pathPanorama","uri","atbb_helper","contexts","modernizr","webgl","AtbbHelper","atbbUserId","isAccesible","isSecondaryAd","_m","config","devtools","process","env","RAILS_ENV","use","VueAddEventListener","VueHammer","Vuex","PiniaVuePlugin","pinia","createPinia","strict","registerModule","contexts_module","panorama_module","createLogger","DocumentReady","gon","panoramaParams","boolean","fullscreen_enable","vreffect_enable","gyro_rotation_enable","eye_control_enable","menu_open","item_thumbs_open","draw_line","draw_radar","draw_walkthrough","auto_rotation","video_repeat","q","image_quality","image_quality_modal","hide_controls","hide_annotation","vr_mode","view_mode","path_panorama","atbb_user_id","pass_code_hash","video_playback_automatically","classList","h","RootComponent","convertPoints","temporary_position_count","floor","convertItem","viewPosition","sight_direction","sight_updown","normalizeDegree","convertLines","point1Id","point1_id","point2Id","point2_id","randomFallback","random","len","module","self","Uint32Array","Array","slice","safeStringCompare","known","unknown","wrong","charCodeAt","setRandomFallback","random2","genSaltSync","rounds","seed_length","GENSALT_DEFAULT_LOG2_ROUNDS","_typeof","salt","toString","base64_encode","BCRYPT_SALT_LEN","genSalt","_async","callback2","nextTick","res","hashSync","s","_hash","progressCallback","salt2","compareSync","substr","comp","getRounds","getSalt","setImmediate","BASE64_CODE","BASE64_INDEX","stringFromCharCode","String","fromCharCode","c1","c2","off","rs","base64_decode","c3","o","code","slen","olen","utfx2","utfx","dst","cp","c","fail","b2","indexOf","RangeError","UTF16toUTF8","encodeUTF8","decodeUTF8","UTF8toUTF16","l","calculateCodePoint","n","now","BLOWFISH_NUM_ROUNDS","MAX_EXECUTION_TIME","P_ORIG","S_ORIG","C_ORIG","_encipher","lr","P","S","_streamtoword","offp","word","_key","sw","offset","plen","_crypt","cdata","clen","j","ret","Int32Array","_ekskey","minor","charAt","str","out","real_salt","passwordb","encodeUTF16toUTF8","saltb","finish","bytes","err2","encodeBase64","decodeBase64","___CSS_LOADER_EXPORT___","Number","required","fontSize","fontColor","allowPaste","onlyNumber","inputValues","fkFontSize","fkWidth","handleKeydown","charCode","keyCode","generateInputId","fkInputColor","handleInputFocus","_slicedToArray","focus","handlePastedValues","pastedValue","clipboardData","getData","splitValues","canPaste","RegExp","test","updateInputValue","returnFullString","$set","component","input","refInFor","borderBottom","composing"],"sourceRoot":""}