# 탭이벤트 (tap event)

컴포넌트에 마우스 클릭이나 터치 이벤트가 발생했을 때의 동작을 정의한다.

## 동작

### 눌림 효과

컴포넌트에 tap 이벤트가 발생했을 때, 설정된 그림자 효과가 사라지고,
그림자 설정의 X축 위치와 Y축 위치 만큼 컴포넌트가 이동했다가 원상태로 복구된다.
이는 컴포넌트가 버튼처럼 눌리는 효과를 나타내게된다.

### 동작

- goto target board
  - 타겟으로 지정한 대상 보드로 이동한다.
  - 이를 지원하는 뷰어는 현재 보드에서 타겟보드로 화면이 바뀌게 되며, 뷰어에서 제공하는 '뒤로 가기' 기능으로 되돌아 오거나, 대상 보드의 특정 컴포넌트의 탭이벤트가 'close current board'로 설정되어있다면, 해당 컴포넌트를 클릭해서 돌아올 수 있다.
  - 이처럼 보드 네비게이션을 제공하는 뷰어에서 효과를 발휘한다.
  - 파라미터
    - 대상(target) : 팝업창으로 보여줄 대상 보드를 보드목록에서 지정한다.
- open new window for target link
  - 새로운 브라우저 탭에서 지정한 링크 페이지를 오픈한다.
  - 파라미터
    - 대상(target) : 새로운 브라우저 탭으로 열릴 페이지의 URL을 설정한다.
- move to target link
  - 현재 브라우저 탭에서 지정한 링크 페이지를 오픈한다.
  - 파라미터
    - 대상(target) : 현재 브라우저 탭에 열릴 페이지의 URL을 설정한다.
- route to page
  - Things Factory 프레임워크 안의 다른 페이지로 이동한다.
  - 예를 들어, 'settings' 라고 대상 페이지를 설정하면, 설정 페이지로 이동한다.
  - 파라미터
    - 대상(target) : 이동할 페이지 라우트를 설정한다. 컨텍스트 패스 등을 제외한 ':page[/:resource]' 형식으로 지정할 수 있다.
- popup target board
  - 타겟으로 지정한 대상 보드를 팝업창에 보인다.
  - 팝업창의 위치는 팝업 대상 보드의 크기와 호버된 컴포넌트의 위치를 감안해서 다음의 위치중 한 곳에 보여진다.
    - top-left, top-right, bottom-left, bottom-right, center
  - 팝업창의 크기는 현재 보드의 크기보다 커서는 안된다. 팝업 대상 보드의 크기가 현재 보드보다 크면, 팝업 대상 보드의 모든 내용을 보기 힘들게 된다.
  - 팝업창을 닫기 위해서는 팝업창 우측 상단의 'X' 클로즈 버튼을 누르거나, 대상 보드의 특정 컴포넌트의 탭이벤트가 'close current board'로 설정되어있다면, 해당 컴포넌트를 클릭해서 닫을 수 있다.
  - 파라미터
    - 대상(target) : 팝업창으로 보여줄 대상 보드를 보드목록에서 지정한다.
    - 입력데이타 : 대상보드에 전달될 초기값. 이 파라미터에 지정된 컴포넌트의 데이터값이 초기값으로 전달된다.
    - 리턴값 반영 : 대상보드가 닫힐(closed) 때 리턴된 값이 이 컴포넌트의 데이터값으로 반영된다.
- modal popup target board
  - popup target board 와 동일하나 팝업창은 'modal'식으로 동작한다. 팝업창을 닫기 위해서는 팝업창 주변의 backdrop 부분을 클릭하거나, esc 키로 제거한다.
- close current board
  - 이 컴포넌트가 속한 보드가 'popup target board'으로 오픈된 경우이면 popup이 클로즈된다.
  - 이 컴포넌트가 속한 보드가 'goto target board'로 이동된 경우이면 이전 보드로 돌아간다.
- open infowindow
  - 'info-window' 컴포넌트에 설정된 내용으로 호버된 포인트에 근접한 위치에 인포윈도우를 띄워준다.
  - 파라미터
    - 대상(target) : 대상 인포윈도우의 아이디를 지정한다.
- toggle open infowindow
  - 'info-window' 컴포넌트에 설정된 내용으로 호버된 포인트에 근접한 위치에 인포윈도우를 띄우거나, 띄워진 인포윈도우를 닫는다.
  - 파라미터
    - 대상(target) : 대상 인포윈도우의 아이디를 지정한다.
- toggle target component data
  - 대상 컴포넌트의 현재 데이타를 기준으로 불린값 true/false 순서로 데이타를 토글시킨다.
  - 파라미터
    - 대상(target) : 데이타를 토글시킬 대상 컴포넌트
- tristate(0/1/2) target component data
  - 대상 컴포넌트의 현재 데이타를 기준으로 숫자 0/1/2 순서로 데이타를 순환시킨다.
  - 파라미터
    - 대상 : 데이타를 순환시킬 대상 컴포넌트
- forcely execute data spreading of target component
  - 대상 컴포넌트의 현재 데이타를 이용해서 강제 데이타 전파를 실행한다.
  - 파라미터
    - 대상(target) : 데이타전파를 실행할 대상 컴포넌트
- set value to target component data
  - 설정한 값으로 대상 컴포넌트의 'data'를 변경한다.
  - 보통 컴포넌트의 data를 변화시키는 것은 대상 컴포넌트에 지정된 데이타 스프레드를 트리거링하는 효과를 발휘한다.
  - 파라미터
    - 대상(target) : data를 변경할 대상 컴포넌트
    - value : 대상 컴포넌트에 설정될 값 (문자열, 숫자 또는 오브젝트 타입을 지정할 수 있다)
- set value to target component value
  - 설정한 값으로 대상 컴포넌트의 'value'를 변경한다.
  - 보통 컴포넌트의 value를 변화시키는 것은 대상 컴포넌트의 지정된 동작을 트리거링하는 효과를 발휘한다.
  - 파라미터
    - 대상(target) : value를 변경할 대상 컴포넌트
    - value : 대상 컴포넌트에 설정될 값 (문자열, 숫자 또는 오브젝트 타입을 지정할 수 있다)
- start the given scenario
  - 설정한 값으로 대상 시나리오를 시작한다.
  - 대상 시나리오를 시작만 시키며, 시나리오의 종료까지 기다리지 않는다. 시나리오가 이미 시작 중인 경우 새로운 인스턴스를 시작시키지는 않는다.
  - 파라미터
    - 대상(target) : 시작할 시나리오
    - value : 시나리오에 전달될 파라미터
- run the given scenario
  - 설정한 값으로 대상 시나리오를 실행한다.
  - 대상 시나리오의 새로운 인스턴스를 시작시키고, 종료까지 기다리고 최종 시나리오 결과를 받아서 컴포넌트 데이터 속성에 바로 저장한다. 이로 인한 데이터 변경은 데이타 전파를 일으킨다.
  - 파라미터
    - 대상(target) : 실행할 시나리오
    - value : 시나리오에 전달될 파라미터
- export data
  - 컴포넌트의 데이타를 설정한 파일이름의 엑셀파일로 다운로드할 수 있다.
  - 파라미터
    - 대상(target) : 다운로드될 엑셀파일의 이름
- import data
  - 엑셀파일을 오픈해서 첫번째 시트의 데이타를 해당 컴포넌트의 데이타로 설정한다.
