import { SizeTypes } from '../../../types' /** * カレンダーの展開位置を取得する */ export const calendarPosition = ( refInput: HTMLElement | undefined, inputSize: SizeTypes, labelFlag: boolean ) => { // インプットトップ const elementInput = refInput! const inputCoordinateTop = elementInput.getBoundingClientRect().top // ブラウザ中心値 const innerHeightCenter = window.innerHeight / 2 if ( inputCoordinateTop < innerHeightCenter && (inputSize === 's' || inputSize === 'S') && !labelFlag ) { // インプットがブラウザの中心から上にあり、サイズがSで、ラベル等が設定されていない場合 return '44px' } else if ( inputCoordinateTop < innerHeightCenter && (inputSize === 'm' || inputSize === 'M') && !labelFlag ) { // インプットがブラウザの中心から上にあり、サイズがMで、ラベル等が設定されていない場合 return '49px' } else if ( inputCoordinateTop < innerHeightCenter && (inputSize === 'l' || inputSize === 'L') && !labelFlag ) { // インプットがブラウザの中心から上にあり、サイズがLで、ラベル等が設定されていない場合 return '54px' } else if ( inputCoordinateTop < innerHeightCenter && (inputSize === 's' || inputSize === 'S') && labelFlag ) { // インプットがブラウザの中心から上にあり、サイズがSで、ラベル等が設定されている場合 return '68px' } else if ( inputCoordinateTop < innerHeightCenter && (inputSize === 'm' || inputSize === 'M') && labelFlag ) { // インプットがブラウザの中心から上にあり、サイズがMで、ラベル等が設定されている場合 return '73px' } else if ( inputCoordinateTop < innerHeightCenter && (inputSize === 'l' || inputSize === 'L') && labelFlag ) { // インプットがブラウザの中心から上にあり、サイズがLで、ラベル等が設定されている場合 return '78px' } else if (inputCoordinateTop > innerHeightCenter) { // インプットがブラウザの中心から下にある場合 return '-395px' } return '0px' }