{"version":3,"file":"js/821.7aae3646.js","mappings":"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","sources":["webpack://surface/./src/components/common/MeshOverlayContainer.vue","webpack://surface/./src/components/common/Tooltip.vue","webpack://surface/./src/components/common/Tooltip.vue?fd4c","webpack://surface/./src/components/common/ButtonCircularOverlay.vue","webpack://surface/./src/components/common/ButtonCircularOverlay.vue?2707","webpack://surface/./src/components/common/ButtonMagnifyOverlay.vue","webpack://surface/./src/components/common/ButtonMagnifyOverlay.vue?9b5b","webpack://surface/./src/components/common/MeshOverlayContainer.vue?a201"],"sourcesContent":["<template>\r\n <div\r\n id=\"meshOverlay\"\r\n class=\"ui-mesh-overlay-container\"\r\n :class=\"{\r\n 'ui-mesh-overlay-container--hidden': $store.state.meshOverlayHidden,\r\n }\"\r\n >\r\n <div v-for=\"item in items\" v-bind:key=\"item.id\">\r\n <ButtonCircularOverlay\r\n v-if=\"item.type === 'actionDot'\"\r\n :item=\"item\"\r\n :position=\"isFamilyExplorer ? position(item) : null\"\r\n :isShowing=\"isShowing(item)\"\r\n @click=\"\r\n () => {\r\n if (this.onClick) {\r\n this.onClick(item);\r\n }\r\n }\r\n \"\r\n />\r\n <ButtonMagnifyOverlay\r\n v-if=\"item.type === 'magnify'\"\r\n :item=\"item\"\r\n :position=\"isFamilyExplorer ? position(item) : null\"\r\n :isShowing=\"isShowing(item)\"\r\n @click=\"\r\n () => {\r\n if (this.onClick) {\r\n this.onClick(item);\r\n }\r\n }\r\n \"\r\n :isOpen=\"currentTooltip === item.id\"\r\n />\r\n <Tooltip\r\n v-if=\"item.type === 'tooltip'\"\r\n :item=\"item\"\r\n :position=\"isFamilyExplorer ? position(item) : null\"\r\n :isShowing=\"isShowing(item)\"\r\n :id=\"item.id\"\r\n :isOpen=\"currentTooltip === item.id\"\r\n :isFamExplorer=\"isFamilyExplorer\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { computed } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport Tooltip from \"@/components/common/Tooltip\";\r\nimport ButtonCircularOverlay from \"@/components/common/ButtonCircularOverlay\";\r\nimport ButtonMagnifyOverlay from \"@/components/common/ButtonMagnifyOverlay\";\r\n\r\nexport default {\r\n name: \"MeshOverlayContainer\",\r\n components: {\r\n Tooltip,\r\n ButtonCircularOverlay,\r\n ButtonMagnifyOverlay,\r\n },\r\n setup(props) {\r\n const store = useStore();\r\n\r\n const items = computed(() => {\r\n return store.state.meshOverlay.items;\r\n });\r\n const itemsPos = computed(() => {\r\n return store.state.meshOverlay.itemsPos;\r\n });\r\n const isFamilyExplorer = computed(() => {\r\n return store.state.isFamilyExplorer;\r\n });\r\n const cameraDeg = computed(() => {\r\n return store.state.camDeg;\r\n });\r\n\r\n const currentTooltip = computed(() => {\r\n return store.state.currentTooltip;\r\n });\r\n const famExpCurrentPosture = computed(() => {\r\n return store.state.famExpCurrentPosture;\r\n });\r\n const famExpCurrentModel = computed(() => {\r\n return store.state.famExpCurrentModel;\r\n });\r\n\r\n function position(item) {\r\n return itemsPos.value[item.id];\r\n }\r\n\r\n function isShowing(item) {\r\n let answer = true;\r\n let rangesAnswer = true;\r\n if (isFamilyExplorer.value) {\r\n answer = false;\r\n rangesAnswer = false;\r\n\r\n if (\r\n (currentTooltip.value && currentTooltip.value === item.id) ||\r\n !currentTooltip.value\r\n ) {\r\n answer = true;\r\n }\r\n if (item.type === \"actionDot\" && !currentTooltip.value) {\r\n answer = true;\r\n }\r\n if (item.data.ranges && item.data.modelRanges) {\r\n rangesAnswer =\r\n this.isInRange(item, \"ranges\", famExpCurrentPosture.value) &&\r\n this.isInRange(item, \"modelRanges\", famExpCurrentModel.value);\r\n } else if (item.data.modelRanges) {\r\n rangesAnswer = this.isInRange(\r\n item,\r\n \"modelRanges\",\r\n famExpCurrentModel.value\r\n );\r\n } else {\r\n rangesAnswer = this.isInRange(\r\n item,\r\n \"ranges\",\r\n famExpCurrentPosture.value\r\n );\r\n }\r\n }\r\n\r\n return answer && rangesAnswer;\r\n }\r\n\r\n function isValueInRange(range, val) {\r\n if (range[0] > range[1]) {\r\n return val >= range[0] || val <= range[1];\r\n } else {\r\n return val >= range[0] && val <= range[1];\r\n }\r\n }\r\n\r\n function isInRange(item, ranges, postureOrModel) {\r\n if (isFamilyExplorer.value && item.data[ranges]) {\r\n if (item.data[ranges][postureOrModel]) {\r\n // if there is more than one range, make sure it is within one of them\r\n if (item.data[ranges][postureOrModel][0][0]) {\r\n let isInAnyRange = false;\r\n item.data[ranges][postureOrModel].forEach(range => {\r\n if (!isInAnyRange) {\r\n isInAnyRange = isValueInRange(\r\n [range[0], range[1]],\r\n cameraDeg.value\r\n );\r\n }\r\n });\r\n return isInAnyRange;\r\n } else {\r\n return isValueInRange(\r\n [\r\n item.data[ranges][postureOrModel][0],\r\n item.data[ranges][postureOrModel][1],\r\n ],\r\n cameraDeg.value\r\n );\r\n }\r\n } else if (Array.isArray(item.data[ranges])) {\r\n return isValueInRange(\r\n [item.data[ranges][0], item.data[ranges][1]],\r\n cameraDeg.value\r\n );\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n return {\r\n props,\r\n items,\r\n itemsPos,\r\n cameraDeg,\r\n currentTooltip,\r\n position,\r\n isShowing,\r\n isInRange,\r\n };\r\n },\r\n props: {\r\n isFamilyExplorer: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n onClick: {\r\n type: Function,\r\n required: false,\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.ui-mesh-overlay-container {\r\n position: absolute;\r\n background-color: transparent;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n pointer-events: none;\r\n touch-action: none;\r\n transition: opacity 0.35s ease;\r\n opacity: 1;\r\n\r\n &--hidden {\r\n opacity: 0;\r\n }\r\n\r\n > div > * {\r\n pointer-events: all;\r\n touch-action: auto;\r\n }\r\n\r\n &.DragActive {\r\n .buttonCircularOverlay__icon {\r\n transform: scale3d(1.1, 1.1, 1.1) !important;\r\n\r\n &--inner {\r\n transform: scale3d(2, 2, 2) !important;\r\n }\r\n }\r\n }\r\n\r\n &.DragHover {\r\n .buttonCircularOverlay__icon {\r\n transform: scale3d(1.1, 1.1, 1.1);\r\n\r\n &--inner {\r\n transform: scale3d(1.25, 1.25, 1.25);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div\r\n :id=\"id\"\r\n class=\"tooltip\"\r\n :class=\"{\r\n 'tooltip--left': item.data.titleLeft,\r\n 'tooltip--hidden': !isShowing && item.id !== $store.state.currentTooltip,\r\n 'tooltip--family-explorer': isFamExplorer,\r\n }\"\r\n :style=\"{\r\n transform: `translate3d(${position ? position.x : item.position.x}px, ${\r\n position ? position.y : item.position.y\r\n }px, 0)`,\r\n }\"\r\n >\r\n <div class=\"tooltip__icon\">\r\n <button\r\n class=\"tooltip-plus\"\r\n :class=\"{ 'tooltip-plus--close': props.isOpen }\"\r\n @click=\"\r\n () => {\r\n props.isOpen && $store.state.currentTooltip === item.id\r\n ? $store.dispatch('updateCurrentTooltip', '')\r\n : $store.dispatch('updateCurrentTooltip', item.id);\r\n }\r\n \"\r\n :tabindex=\"$store.state.isFamilyExplorer ? -1 : 0\"\r\n :aria-label=\"\r\n $t(item.data.title, { interpolation: { escapeValue: false } })\r\n \"\r\n >\r\n <div class=\"tooltip-plus__line tooltip-plus__line--horizontal\"></div>\r\n <div class=\"tooltip-plus__line tooltip-plus__line--vertical\"></div>\r\n </button>\r\n <transition name=\"fade\">\r\n <div\r\n v-show=\"props.isOpen && item.data.description\"\r\n class=\"tooltip__drawer\"\r\n :class=\"positionClass\"\r\n :style=\"{\r\n width: item.data.drawerWidth ? item.data.drawerWidth : '350px',\r\n 'max-height': maxDrawerHeight,\r\n }\"\r\n >\r\n <h2\r\n v-if=\"$store.state.isFamilyExplorer\"\r\n v-html=\"\r\n $t(item.data.title, { interpolation: { escapeValue: false } })\r\n \"\r\n class=\"tooltip__drawer-title\"\r\n />\r\n <div\r\n v-html=\"\r\n $t(item.data.description, {\r\n interpolation: { escapeValue: false },\r\n })\r\n \"\r\n class=\"tooltip__drawer-main\"\r\n :class=\"{\r\n 'tooltip__drawer-main--overflowing': isOverflowing,\r\n }\"\r\n ref=\"tooltipDrawerMain\"\r\n />\r\n <div class=\"tooltip__drawer-flag\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\r\n <polygon points=\"30 0 30 30 0 30 30 0\" style=\"fill:#E6E6E6\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </transition>\r\n </div>\r\n <div\r\n class=\"tooltip__title\"\r\n :style=\"{ color: item.data.textColor || '#fff' }\"\r\n v-if=\"$route.path != '/' + $store.state.actualLang\"\r\n >\r\n {{ $t(item.data.title) }}\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { computed, onMounted, ref, watch, nextTick } from \"vue\";\r\n\r\nexport default {\r\n setup(props) {\r\n const currentPosition = ref({ x: \"right\", y: \"bottom\" });\r\n const maxDrawerHeight = ref(\"initail\");\r\n const tooltipDrawerMain = ref(null);\r\n const isOverflowing = ref(false);\r\n\r\n onMounted(() => {\r\n if (\r\n props.item.data.changeTopBaseOnScreenWidth &&\r\n window.innerWidth < 1024\r\n ) {\r\n props.item.data.top\r\n ? (currentPosition.value.y = \"bottom\")\r\n : (currentPosition.value.y = \"top\");\r\n } else {\r\n props.item.data.top\r\n ? (currentPosition.value.y = \"top\")\r\n : (currentPosition.value.y = \"bottom\");\r\n }\r\n\r\n if (\r\n props.item.data.changeLeftBaseOnScreenWidth &&\r\n window.innerWidth < 1024\r\n ) {\r\n props.item.data.left\r\n ? (currentPosition.value.x = \"right\")\r\n : (currentPosition.value.x = \"left\");\r\n } else {\r\n props.item.data.left\r\n ? (currentPosition.value.x = \"left\")\r\n : (currentPosition.value.x = \"right\");\r\n }\r\n });\r\n\r\n const positionClass = computed(() => {\r\n return `tooltip__drawer--${currentPosition.value.x}-${currentPosition.value.y}`;\r\n });\r\n\r\n const computeMaxDrawerHeight = () => {\r\n if (\r\n currentPosition.value.y === \"bottom\" &&\r\n props.position &&\r\n props.position.y\r\n ) {\r\n // position.y + iconHight + drawer top + drawer margin-top + a little extra padding\r\n maxDrawerHeight.value = `calc(100vh - ${Math.floor(\r\n props.position.y + 28 + 38 + 30 + 10\r\n )}px)`;\r\n } else if (\r\n currentPosition.value.y === \"top\" &&\r\n props.position &&\r\n props.position.y\r\n ) {\r\n // position.y - drawer bottom - drawer margin-bottom - extra padding\r\n maxDrawerHeight.value = `${Math.floor(\r\n props.position.y - 40 - 30 - 40\r\n )}px`;\r\n }\r\n nextTick(() => {\r\n if (\r\n tooltipDrawerMain.value &&\r\n tooltipDrawerMain.value.scrollHeight >\r\n tooltipDrawerMain.value.clientHeight\r\n ) {\r\n isOverflowing.value = true;\r\n } else {\r\n isOverflowing.value = false;\r\n }\r\n });\r\n };\r\n\r\n watch(\r\n () => props.isOpen,\r\n newVal => {\r\n if (newVal && props.isFamExplorer) {\r\n if (\r\n props.position &&\r\n props.position.y &&\r\n props.position.y + 15 >= window.innerHeight / 2\r\n ) {\r\n currentPosition.value.y = \"top\";\r\n } else {\r\n currentPosition.value.y = \"bottom\";\r\n }\r\n\r\n computeMaxDrawerHeight();\r\n } else {\r\n maxDrawerHeight.value = \"initail\";\r\n }\r\n }\r\n );\r\n\r\n return {\r\n props,\r\n positionClass,\r\n maxDrawerHeight,\r\n tooltipDrawerMain,\r\n isOverflowing,\r\n };\r\n },\r\n props: {\r\n id: {\r\n type: String,\r\n required: true,\r\n },\r\n item: {\r\n type: Object,\r\n required: true,\r\n },\r\n position: {\r\n type: Object,\r\n default: null,\r\n },\r\n isOpen: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n isShowing: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n isFamExplorer: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.tooltip {\r\n $tooltipIconSize: 28px;\r\n position: absolute;\r\n z-index: 11;\r\n color: white;\r\n display: flex;\r\n align-items: center;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n font-size: 16px;\r\n line-height: 0.9;\r\n cursor: default;\r\n margin-top: $tooltipIconSize / -2;\r\n margin-left: $tooltipIconSize / -2;\r\n transition: opacity 0.3s ease-in;\r\n will-change: transform;\r\n\r\n &--hidden {\r\n opacity: 0;\r\n pointer-events: none;\r\n touch-action: none;\r\n }\r\n\r\n &__icon {\r\n position: relative;\r\n border-radius: 100%;\r\n width: $tooltipIconSize;\r\n height: $tooltipIconSize;\r\n\r\n .tooltip-plus {\r\n position: relative;\r\n // backdrop-filter: $backdropBlur;\r\n border-radius: 100%;\r\n width: 28px;\r\n height: 28px;\r\n margin: 1px 0px 0px 1px;\r\n border: 1px solid #242424;\r\n background-color: $backgroundColorBlur;\r\n transform: scale3d(1, 1, 1);\r\n transition: all 250ms ease;\r\n cursor: pointer;\r\n padding: 0;\r\n text-align: left;\r\n box-sizing: content-box;\r\n\r\n &__line {\r\n position: absolute;\r\n background-color: #242424;\r\n transition: all 250ms ease;\r\n transform: scale3d(1, 1, 1);\r\n transform-origin: 50% 50%;\r\n\r\n &--horizontal {\r\n width: 11px;\r\n height: 1px;\r\n top: 14px;\r\n left: 9px;\r\n }\r\n\r\n &--vertical {\r\n height: 11px;\r\n width: 1px;\r\n top: 9px;\r\n left: 14px;\r\n }\r\n }\r\n\r\n &--close {\r\n .tooltip-plus__line {\r\n transform: scale3d(1, 1, 1) rotate(45deg);\r\n }\r\n }\r\n }\r\n }\r\n &__title {\r\n position: absolute;\r\n white-space: nowrap;\r\n right: -12px;\r\n transform: translateX(100%);\r\n user-select: none;\r\n }\r\n &--left {\r\n .tooltip__icon {\r\n margin: 0 0 0 12px;\r\n }\r\n .tooltip__title {\r\n left: 0;\r\n right: initial;\r\n transform: translateX(-100%);\r\n }\r\n }\r\n\r\n &__drawer {\r\n font-family: \"Segoe UI\", Arial, sans-serif;\r\n position: relative;\r\n width: 300px;\r\n background: $lightGray;\r\n padding: 20px 2px 20px 20px;\r\n margin: 30px 0;\r\n color: $extraDarkGray;\r\n font-size: 16px;\r\n line-height: 1.5em;\r\n font-weight: 500;\r\n text-transform: none;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @media all and (max-width: 1024px) and (max-height: 900px) {\r\n max-width: 330px;\r\n }\r\n\r\n p {\r\n position: relative;\r\n margin: 0 0;\r\n font-size: 16px;\r\n line-height: 1.5em;\r\n }\r\n\r\n &-title {\r\n margin-block-start: 0;\r\n margin-block-end: 10px;\r\n @include text(bodyBold);\r\n }\r\n\r\n &-main {\r\n overflow: auto;\r\n padding-right: 18px;\r\n &--overflowing {\r\n padding-right: 4px;\r\n }\r\n }\r\n\r\n &-flag {\r\n position: absolute;\r\n width: 30px;\r\n height: 30px;\r\n overflow: hidden;\r\n padding: 8px 8px 0px 8px;\r\n }\r\n\r\n &--left-top {\r\n position: absolute;\r\n bottom: 40px;\r\n right: 14px;\r\n box-shadow: 2px 2px 8px 0px rgba($darkGray, 0.5);\r\n .tooltip__drawer-flag {\r\n position: fixed;\r\n bottom: 71px;\r\n right: 6px;\r\n transform: translateY(100%) scaleY(-1);\r\n\r\n svg {\r\n filter: drop-shadow(1px -3px 4px rgba($darkGray, 0.35));\r\n }\r\n }\r\n }\r\n &--right-top {\r\n position: absolute;\r\n bottom: 40px;\r\n left: 16px;\r\n box-shadow: 2px 2px 8px 0px rgba($darkGray, 0.5);\r\n .tooltip__drawer-flag {\r\n position: fixed;\r\n bottom: 71px;\r\n left: 8px;\r\n transform: translateY(100%) scale(-1, -1);\r\n\r\n svg {\r\n filter: drop-shadow(1px -3px 4px rgba($darkGray, 0.35));\r\n }\r\n }\r\n }\r\n &--left-bottom {\r\n position: absolute;\r\n top: 38px;\r\n right: 14px;\r\n box-shadow: 2px 2px 8px 0px rgba($darkGray, 0.5);\r\n .tooltip__drawer-flag {\r\n position: fixed;\r\n top: 70px;\r\n right: 6px;\r\n transform: translateY(-100%);\r\n\r\n svg {\r\n filter: drop-shadow(0px 0px 4px rgba($darkGray, 0.35));\r\n }\r\n }\r\n }\r\n &--right-bottom {\r\n position: absolute;\r\n top: 38px;\r\n left: 16px;\r\n box-shadow: 2px 2px 8px 0px rgba($darkGray, 0.5);\r\n\r\n .tooltip__drawer-flag {\r\n position: fixed;\r\n top: 70px;\r\n left: 8px;\r\n transform: translateY(-100%) scaleX(-1);\r\n\r\n svg {\r\n filter: drop-shadow(-2px 5px 4px rgba($darkGray, 0.35));\r\n }\r\n }\r\n }\r\n }\r\n\r\n .tooltip-plus {\r\n &:hover {\r\n border-color: #000000;\r\n background-color: $backgroundColorBlurIntense;\r\n transform: scale3d(1.1, 1.1, 1.1);\r\n\r\n &__line {\r\n background-color: #000000;\r\n transform: scale3d(1.25, 1.25, 1.25);\r\n }\r\n\r\n &--close {\r\n .tooltip-plus__line {\r\n transform: scale3d(1.25, 1.25, 1.25) rotate(45deg);\r\n }\r\n }\r\n }\r\n }\r\n &:active {\r\n outline: none;\r\n }\r\n &:active,\r\n &:focus {\r\n .tooltip-plus {\r\n outline: none;\r\n border-color: $darkGray;\r\n\r\n &__line {\r\n background-color: $darkGray;\r\n }\r\n }\r\n }\r\n\r\n :deep(ul) {\r\n list-style: none !important;\r\n padding-left: 0 !important;\r\n margin-left: 0 !important;\r\n }\r\n :deep(li) {\r\n margin-bottom: 6px;\r\n }\r\n :deep(b) {\r\n font-weight: 600;\r\n }\r\n\r\n &--family-explorer {\r\n :deep(ul) {\r\n padding-left: 24px !important;\r\n\r\n li {\r\n margin-left: 0;\r\n padding-left: 0;\r\n }\r\n }\r\n :deep(.tooltip__drawer-main) {\r\n > p {\r\n margin-top: 12px !important;\r\n &:first-child {\r\n margin-top: 0 !important;\r\n }\r\n }\r\n > ul {\r\n margin-top: 8px !important;\r\n &:first-child {\r\n margin-top: 0 !important;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./Tooltip.vue?vue&type=template&id=74bfa357&scoped=true\"\nimport script from \"./Tooltip.vue?vue&type=script&lang=js\"\nexport * from \"./Tooltip.vue?vue&type=script&lang=js\"\n\nimport \"./Tooltip.vue?vue&type=style&index=0&id=74bfa357&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-74bfa357\"]])\n\nexport default __exports__","<template>\r\n <button\r\n class=\"buttonCircularOverlay\"\r\n :class=\"{\r\n 'buttonCircularOverlay--hidden':\r\n !isShowing && item.id !== $store.state.currentTooltip,\r\n }\"\r\n :style=\"{\r\n transform: `translate3d(${position ? position.x : item.position.x}px, ${\r\n position ? position.y : item.position.y\r\n }px, 0)`,\r\n }\"\r\n @keypress.enter=\"\r\n !$store.state.isFamilyExplorer ? $store.dispatch('next') : null\r\n \"\r\n :tabindex=\"$store.state.isFamilyExplorer ? -1 : 0\"\r\n :aria-label=\"item && item.data.text ? $t(item.data.text) : ''\"\r\n >\r\n <div\r\n class=\"buttonCircularOverlay__description\"\r\n :style=\"{ color: item.data.textColor || '#fff' }\"\r\n >\r\n {{ $t(item.data.text) }}\r\n </div>\r\n <div class=\"buttonCircularOverlay__icon\">\r\n <div class=\"buttonCircularOverlay__icon--inner\"></div>\r\n </div>\r\n <div\r\n v-if=\"item.data.arrows\"\r\n class=\"buttonCircularOverlay__arrows-container\"\r\n >\r\n <div\r\n v-if=\"item.data.arrows && item.data.arrows.top\"\r\n class=\"buttonCircularOverlay__arrow buttonCircularOverlay__arrowTop\"\r\n ></div>\r\n <div\r\n v-if=\"item.data.arrows && item.data.arrows.right\"\r\n class=\"buttonCircularOverlay__arrow buttonCircularOverlay__arrowRight\"\r\n ></div>\r\n <div\r\n v-if=\"item.data.arrows && item.data.arrows.bottom\"\r\n class=\"buttonCircularOverlay__arrow buttonCircularOverlay__arrowBottom\"\r\n ></div>\r\n <div\r\n v-if=\"item.data.arrows && item.data.arrows.left\"\r\n class=\"buttonCircularOverlay__arrow buttonCircularOverlay__arrowLeft\"\r\n ></div>\r\n </div>\r\n </button>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n setup(props) {\r\n return { props };\r\n },\r\n props: {\r\n item: {\r\n type: Object,\r\n required: true,\r\n },\r\n position: {\r\n type: Object,\r\n default: null,\r\n },\r\n isShowing: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.buttonCircularOverlay {\r\n $svgSize: 30px;\r\n position: absolute;\r\n top: calc((#{$svgSize} / 2) * -1);\r\n left: calc((#{$svgSize} / 2) * -1);\r\n display: flex;\r\n font-family: sans-serif;\r\n color: white;\r\n pointer-events: all;\r\n touch-action: auto;\r\n transition: opacity 0.3s ease-in;\r\n // transition-delay: 0.1s;\r\n cursor: pointer;\r\n will-change: transform;\r\n background: transparent;\r\n border: none;\r\n padding: 0;\r\n text-align: left;\r\n\r\n &--hidden {\r\n opacity: 0 !important;\r\n pointer-events: none !important;\r\n touch-action: none !important;\r\n }\r\n\r\n &__icon {\r\n position: relative;\r\n // backdrop-filter: $backdropBlur;\r\n border-radius: 100%;\r\n width: $svgSize - 2px;\r\n height: $svgSize - 2px;\r\n margin: 1px 0px 0px 1px;\r\n border: 1px solid $blue;\r\n background-color: $backgroundColorBlur;\r\n transform: scale3d(1, 1, 1);\r\n transition: all 250ms ease;\r\n\r\n &--inner {\r\n background-color: $blue;\r\n position: absolute;\r\n width: 8px;\r\n height: 8px;\r\n top: calc(50% - 4px);\r\n left: calc(50% - 4px);\r\n border-radius: 100%;\r\n transform: scale3d(1, 1, 1);\r\n transition: all 250ms ease;\r\n }\r\n }\r\n\r\n &__arrows-container {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 0;\r\n }\r\n &__arrow {\r\n position: absolute;\r\n content: url(\"data:image/svg+xml,%3Csvg width='7' height='9' viewBox='0 0 7 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 4.5L0.25 8.39711L0.25 0.602885L7 4.5Z' fill='%230078D4'/%3E%3C/svg%3E%0A\");\r\n width: 14px;\r\n &Top {\r\n transform: translate(50%, -100%) rotate(270deg);\r\n top: -4px;\r\n right: 50%;\r\n }\r\n &Right {\r\n transform: translate(100%, -50%);\r\n top: 50%;\r\n right: -4px;\r\n }\r\n &Bottom {\r\n transform: translate(50%, 100%) rotate(90deg);\r\n bottom: -4px;\r\n right: 50%;\r\n }\r\n &Left {\r\n transform: translate(-100%, -50%) rotate(180deg);\r\n top: 50%;\r\n left: -4px;\r\n }\r\n }\r\n\r\n &__description {\r\n position: absolute;\r\n left: 50%;\r\n top: -8px;\r\n transform: translate(-50%, -100%);\r\n text-align: center;\r\n text-transform: uppercase;\r\n white-space: nowrap;\r\n font-weight: 600;\r\n font-size: 15px;\r\n line-height: 120%;\r\n user-select: none;\r\n color: $darkGray;\r\n transition: opacity 0.25s ease;\r\n\r\n &--bottom {\r\n top: initial;\r\n bottom: -4px;\r\n transform: translate(-50%, 100%);\r\n }\r\n }\r\n\r\n &:hover {\r\n .buttonCircularOverlay__icon {\r\n transform: scale3d(1.1, 1.1, 1.1);\r\n\r\n &--inner {\r\n transform: scale3d(1.25, 1.25, 1.25);\r\n }\r\n }\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n outline: none;\r\n .buttonCircularOverlay__icon {\r\n transform: scale3d(1.1, 1.1, 1.1);\r\n\r\n &--inner {\r\n transform: scale3d(2, 2, 2);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./ButtonCircularOverlay.vue?vue&type=template&id=1b52b6e2&scoped=true\"\nimport script from \"./ButtonCircularOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonCircularOverlay.vue?vue&type=script&lang=js\"\n\nimport \"./ButtonCircularOverlay.vue?vue&type=style&index=0&id=1b52b6e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1b52b6e2\"]])\n\nexport default __exports__","<template>\r\n <button\r\n class=\"buttonMagnifyOverlay\"\r\n :class=\"{\r\n 'buttonMagnifyOverlay--hidden':\r\n !isShowing && item.id !== $store.state.currentTooltip,\r\n }\"\r\n :style=\"{\r\n transform: `translate3d(${position ? position.x : item.position.x}px, ${\r\n position ? position.y : item.position.y\r\n }px, 0)`,\r\n }\"\r\n @click=\"handleClick\"\r\n :tabindex=\"$store.state.isFamilyExplorer ? -1 : 0\"\r\n :aria-label=\"item && item.data.text ? $t(item.data.text) : ''\"\r\n >\r\n <div\r\n v-if=\"item.data.text\"\r\n class=\"buttonMagnifyOverlay__description\"\r\n :style=\"{ color: item.data.textColor || '#fff' }\"\r\n >\r\n {{ $t(item.data.text) }}\r\n </div>\r\n <div class=\"buttonMagnifyOverlay__icon\">\r\n <svg\r\n width=\"28\"\r\n height=\"28\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <!-- <circle cx=\"14\" cy=\"14\" r=\"14\" fill=\"#E6E6E6\" fill-opacity=\"0.85\" /> -->\r\n <!-- <circle cx=\"14\" cy=\"14\" r=\"13.5\" stroke=\"#000\" /> -->\r\n <circle cx=\"12.8\" cy=\"12.8\" r=\"4.3\" stroke=\"#242424\" />\r\n <path d=\"M16 16l4 4.002\" stroke=\"#242424\" />\r\n </svg>\r\n </div>\r\n </button>\r\n</template>\r\n\r\n<script>\r\nimport { useStore } from \"vuex\";\r\n\r\nexport default {\r\n setup(props) {\r\n const store = useStore();\r\n function handleClick() {\r\n if (\r\n (props.isOpen && store.state.currentTooltip === props.item.id) ||\r\n !props.item.clickOnly\r\n ) {\r\n store.dispatch(\"updateCurrentTooltip\", \"\");\r\n } else {\r\n store.dispatch(\"updateCurrentTooltip\", props.item.id);\r\n }\r\n }\r\n\r\n return { props, handleClick };\r\n },\r\n props: {\r\n item: {\r\n type: Object,\r\n required: true,\r\n },\r\n position: {\r\n type: Object,\r\n default: null,\r\n },\r\n isOpen: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n isShowing: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.buttonMagnifyOverlay {\r\n $svgSize: 30px;\r\n position: absolute;\r\n top: calc((#{$svgSize} / 2) * -1);\r\n left: calc((#{$svgSize} / 2) * -1);\r\n display: flex;\r\n font-family: sans-serif;\r\n color: white;\r\n pointer-events: all;\r\n touch-action: auto;\r\n transition: opacity 0.3s ease-in;\r\n // transition-delay: 0.1s;\r\n cursor: pointer;\r\n will-change: transform;\r\n background: transparent;\r\n border: none;\r\n padding: 0;\r\n text-align: left;\r\n\r\n &--hidden {\r\n opacity: 0;\r\n pointer-events: none;\r\n touch-action: none;\r\n }\r\n\r\n &__icon {\r\n position: relative;\r\n // backdrop-filter: $backdropBlur;\r\n border-radius: 100%;\r\n width: 28px;\r\n height: 28px;\r\n margin: 1px 0px 0px 1px;\r\n border: 1px solid $darkGray;\r\n background-color: $backgroundColorBlur;\r\n transition: all 250ms ease;\r\n transform: scale3d(1, 1, 1);\r\n\r\n svg {\r\n position: relative;\r\n transition: all 250ms ease;\r\n transform: scale3d(1, 1, 1);\r\n width: $svgSize;\r\n height: $svgSize;\r\n\r\n circle,\r\n path {\r\n transition: all 250ms ease;\r\n }\r\n }\r\n }\r\n\r\n &__description {\r\n position: absolute;\r\n left: calc(100% + 8px);\r\n top: calc(50% - 1px);\r\n transform: translate(0, -50%);\r\n text-align: center;\r\n text-transform: uppercase;\r\n white-space: nowrap;\r\n color: #000;\r\n font-weight: 600;\r\n font-size: 15px;\r\n line-height: 120%;\r\n user-select: none;\r\n }\r\n\r\n &:hover {\r\n .buttonMagnifyOverlay__icon {\r\n border-color: #000000;\r\n background-color: $backgroundColorBlurIntense;\r\n transform: scale3d(1.1, 1.1, 1.1);\r\n\r\n svg {\r\n transform: scale3d(1.2, 1.2, 1.2);\r\n circle,\r\n path {\r\n stroke: #000000;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n .buttonMagnifyOverlay__icon {\r\n transform: scale3d(0.9, 0.9, 0.9);\r\n border-color: $darkGray;\r\n svg {\r\n transform: scale3d(0.9, 0.9, 0.9);\r\n circle,\r\n path {\r\n stroke: $darkGray;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import { render } from \"./ButtonMagnifyOverlay.vue?vue&type=template&id=3721ac76&scoped=true\"\nimport script from \"./ButtonMagnifyOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./ButtonMagnifyOverlay.vue?vue&type=script&lang=js\"\n\nimport \"./ButtonMagnifyOverlay.vue?vue&type=style&index=0&id=3721ac76&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3721ac76\"]])\n\nexport default __exports__","import { render } from \"./MeshOverlayContainer.vue?vue&type=template&id=f1233668\"\nimport script from \"./MeshOverlayContainer.vue?vue&type=script&lang=js\"\nexport * from \"./MeshOverlayContainer.vue?vue&type=script&lang=js\"\n\nimport \"./MeshOverlayContainer.vue?vue&type=style&index=0&id=f1233668&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createElementBlock","id","class","_normalizeClass","_ctx","$store","state","meshOverlayHidden","_Fragment","_renderList","$setup","items","item","key","type","_createBlock","_component_ButtonCircularOverlay","position","$props","isFamilyExplorer","isShowing","onClick","_createCommentVNode","_component_ButtonMagnifyOverlay","isOpen","currentTooltip","_component_Tooltip","isFamExplorer","_createElementVNode","_hoisted_4","_hoisted_5","xmlns","viewBox","points","style","data","titleLeft","_normalizeStyle","x","y","_hoisted_2","props","_cache","dispatch","tabindex","$t","title","interpolation","escapeValue","_hoisted_6","_hoisted_3","_createVNode","_Transition","name","default","_withCtx","positionClass","drawerWidth","maxDrawerHeight","innerHTML","_hoisted_7","description","isOverflowing","ref","_hoisted_8","_hoisted_9","_","$route","path","actualLang","color","textColor","_hoisted_1","setup","currentPosition","tooltipDrawerMain","onMounted","changeTopBaseOnScreenWidth","window","innerWidth","top","value","changeLeftBaseOnScreenWidth","left","computed","computeMaxDrawerHeight","Math","floor","nextTick","scrollHeight","clientHeight","watch","newVal","innerHeight","String","required","Object","Boolean","__exports__","onKeypress","_withKeys","$event","text","arrows","right","bottom","width","height","fill","cx","cy","r","stroke","d","args","handleClick","store","useStore","clickOnly","components","Tooltip","ButtonCircularOverlay","ButtonMagnifyOverlay","meshOverlay","itemsPos","cameraDeg","camDeg","famExpCurrentPosture","famExpCurrentModel","answer","rangesAnswer","ranges","modelRanges","this","isInRange","isValueInRange","range","val","postureOrModel","isInAnyRange","forEach","Array","isArray","Function","render"],"sourceRoot":""}