Kendo Window

<--
  Kendo Window Component
  
  열기/닫기:
    - VitsKendoWindow.open('id')
    - VitsKendoWindow.close('id')
    - VitsKendoWindow.open('id', { onOpen: function() { fn_loadData(); } })

  params:
    - id: string (필수) // 윈도우 고유 ID
    - size: '480' | '710' (선택) // 미입력시 auto
    - title: string (필수) // 헤더 타이틀
    - subtitle: string (선택) // 헤더 서브타이틀
    - contentPath: string (필수) // 컨텐츠 EJS 경로
    - opt: object (선택)
      - draggable: true // 헤더 드래그 이동 (기본: false)
      - resizable: true // 크기 조절 (기본: false)
    - buttons: array (선택) // 미입력시 푸터 없음
      - text: string // 버튼 텍스트
      - variant: 'primary' | 'secondary' // 기본: primary
      - action: 'close' // 닫기 동작
      - attrs: object // 추가 속성

  버튼 비율:
    - secondary (취소): flex 2
    - primary (확인): flex 3

  사용 예시:

  // 기본 (타이틀만)
  <% const win1 = { 
    id: 'myWindow', 
    size: '480', 
    title: '제목', 
    contentPath: `${_src}/views/.../content.ejs` 
  }; %>

  // 서브타이틀 + 드래그
  <% const win2 = { 
    id: 'myWindow', 
    size: '480', 
    title: '제목',
    subtitle: '서브타이틀',
    opt: { draggable: true },
    contentPath: `${_src}/views/.../content.ejs` 
  }; %>

  // 버튼 1개
  <% const win3 = { 
    id: 'myWindow', 
    size: '480', 
    title: '제목',
    contentPath: `${_src}/views/.../content.ejs`,
    buttons: [
      { text: '확인', variant: 'primary', action: 'close' }
    ]
  }; %>

  // 버튼 2개 (취소 2 : 확인 3 비율)
  <% const win4 = { 
    id: 'myWindow', 
    size: '480', 
    title: '제목',
    contentPath: `${_src}/views/.../content.ejs`,
    buttons: [
      { text: '취소', variant: 'secondary', action: 'close' },
      { text: '확인', variant: 'primary', action: 'close' }
    ]
  }; %>

  // 인클루드
  <%- include(`${_src}/views/components/kendo/kendo-window.ejs`, win1) %>
-->

기본 (480)

큰 사이즈 (710)

자동 너비