Skip to content

Latest commit

Β 

History

History
326 lines (254 loc) Β· 16 KB

migration-guide-v2.md

File metadata and controls

326 lines (254 loc) Β· 16 KB

v2 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ°€μ΄λ“œ

λͺ©μ°¨

κ°œμš”

preactλ₯Ό μ΄μš©ν•΄ 더 효율적으둜 μΊ˜λ¦°λ”λ₯Ό λ Œλ”λ§ν•˜λŠ” TOAST UI Calendar v2.0이 μΆœμ‹œλ˜μ—ˆλ‹€. v2μ—μ„œλŠ” λ²ˆλ“€ 크기 κ°œμ„  및 λͺ¨λ˜ 개발 ν™˜κ²½μœΌλ‘œ μ—…κ·Έλ ˆμ΄λ“œν•˜μ—¬ λ‹€λ₯Έ κΈ°λŠ₯듀을 μΆ”κ°€ν•˜κΈ° μš©μ΄ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•œ κΈ°λ°˜μ„ λ§ˆλ ¨ν–ˆλ‹€. 이λ₯Ό μ΄μš©ν•΄ μΊ˜λ¦°λ”λ₯Ό μ‚¬μš©ν•˜λŠ” μ‚¬μš©μžλ“€μ˜ 이해λ₯Ό 높일 수 μžˆλ„λ‘ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ κ°€μ΄λ“œλ‘œ μ œκ³΅ν•˜κ³  μžˆλ‹€.

μ„€μΉ˜

νŒ¨ν‚€μ§€ 및 파일 이름 λ³€κ²½

νŒ¨ν‚€μ§€λͺ…이 tui-calendarμ—μ„œ @toast-ui/calendar둜 λ³€κ²½λ˜μ—ˆλ‹€.

# v1
npm install tui-calendar@<version> # 1.x νŠΉμ • 버전

# v2
npm install @toast-ui/calendar # μ΅œμ‹  버전
npm install @toast-ui/calendar@<version> # 2.0 이후 νŠΉμ • 버전

파일λͺ… λ˜ν•œ tui-calendarμ—μ„œ toastui-calendar둜 λ³€κ²½λ˜μ—ˆλ‹€.

/* Node.js ν™˜κ²½μ—μ„œ ES6 λͺ¨λ“ˆ */
// v1
import Calendar from 'tui-calendar';
import "tui-calendar/dist/tui-calendar.min.css";

// v2
import Calendar from '@toast-ui/calendar';
import '@toast-ui/calendar/dist/toastui-calendar.min.css';
<!-- CDN -->
<!-- v1 -->
<link rel="stylesheet" href="https://uicdn.toast.com/tui-calendar/latest/tui-calendar.min.css" />
<script src="https://uicdn.toast.com/tui-calendar/latest/tui-calendar.min.js"></script>

<!-- v2 -->
<link rel="stylesheet" href="https://uicdn.toast.com/calendar/latest/toastui-calendar.min.css" />
<script src="https://uicdn.toast.com/calendar/latest/toastui-calendar.min.js"></script>

CDN 디렉토리 ꡬ쑰 λ³€κ²½

CDN의 디렉토리 ꡬ쑰와 λ²ˆλ“€ 파일 이름이 λ³€κ²½λ˜μ—ˆλ‹€. v1μ—μ„œλŠ” https://uicdn.toast.com/tui-calendar/latest/tui-calendar.js와 같이 tui-calendar λΌλŠ” 폴더 내에 tui-calendarλΌλŠ” 파일이 μ‘΄μž¬ν–ˆλ‹€. ν•˜μ§€λ§Œ v2μ—μ„œλŠ” https://uicdn.toast.com/calendar/latest/toastui-calendar.js처럼 calendar 폴더 내에 toastui-calendarλΌλŠ” 파일이 μ‘΄μž¬ν•œλ‹€.

v1μ—μ„œ μ‚¬μš©ν•˜λ˜ CDN μ£Όμ†ŒλŠ” μœ μ§€λ˜μ§€λ§Œ, /tui-calendar/latest/ λ‚΄λΆ€ νŒŒμΌμ€ TOAST UI Calendar의 μ΅œμ‹ λ²„μ „μ΄ μ•„λ‹ˆλΌ v1의 μ΅œμ‹  버전이닀. μ΅œμ‹  버전을 μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄ /calendar/latest/ λ‚΄λΆ€ νŒŒμΌμ„ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

- uicdn.toast.com/
  β”œβ”€ tui-calendar/ # v1
  β”‚  β”œβ”€ latest     # v1의 μ΅œμ‹  버전
  β”‚  β”‚  β”œβ”€ tui-calendar.css
  β”‚  β”‚  β”œβ”€ tui-calendar.js
  β”‚  β”‚  β”œβ”€ tui-calendar.min.css
  β”‚  β”‚  β”œβ”€ tui-calendar.min.js
  β”‚  β”œβ”€ v1.0.0/    # v1의 νŠΉμ • 버전
  β”‚  β”‚  β”œβ”€ ...
  β”œβ”€ calendar/     # v2 이상
  β”‚  β”œβ”€ latest     # μ΅œμ‹  버전
  β”‚  β”‚  β”œβ”€ toastui-calendar.css
  β”‚  β”‚  β”œβ”€ toastui-calendar.js
  β”‚  β”‚  β”œβ”€ toastui-calendar.min.css
  β”‚  β”‚  β”œβ”€ toastui-calendar.min.js
  β”‚  β”‚  β”œβ”€ toastui-calendar.ie11.js
  β”‚  β”‚  β”œβ”€ toastui-calendar.ie11.min.js
  β”‚  β”‚  β”‚  toastui-calendar.mjs
  β”‚  β”œβ”€ v2.0.0/    # v2 이상 νŠΉμ • 버전
  β”‚  β”‚  β”œβ”€ ...

λΈŒλΌμš°μ € 지원 λ²”μœ„(IE >= 11)

v2λΆ€ν„° μ§€μ›ν•˜λŠ” λΈŒλΌμš°μ € λ²”μœ„κ°€ 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬ 11 μ΄μƒμœΌλ‘œ λ³€κ²½λœλ‹€. v1μ—μ„œλŠ” 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬ 9 μ΄μƒμ˜ λΈŒλΌμš°μ €λ₯Ό μ§€μ›ν–ˆμ§€λ§Œ μ΅œμ‹  개발 ν™˜κ²½ 및 preact X(10 버전)의 μ‚¬μš©μ„ μœ„ν•΄ 지원 λ²”μœ„λ₯Ό λ³€κ²½ν•˜κ²Œ λ˜μ—ˆλ‹€.

κΈ°λ³Έ λ²ˆλ“€μ€ λͺ¨λ˜ λΈŒλΌμš°μ €μ˜ μ΅œμ‹  2개 버전을 μ•ˆμ •μ μœΌλ‘œ μ§€μ›ν•œλ‹€. ν•˜μ§€λ§Œ κΈ°λ³Έ λ²ˆλ“€μ€ IE 11을 μœ„ν•œ 폴리필이 ν¬ν•¨λ˜μ–΄μžˆμ§€ μ•ŠμœΌλ―€λ‘œ IE 11 ν˜Ήμ€ 일정 μˆ˜μ€€ μ΄ν•˜μ˜ λ ˆκ±°μ‹œ λΈŒλΌμš°μ €λ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒκ³Ό 같이 폴리필이 ν¬ν•¨λœ IE 11 λ²ˆλ“€μ„ μΆ”κ°€ν•΄μ•Ό ν•œλ‹€. IE 11의 λ²ˆλ“€ ν¬κΈ°λŠ” κΈ°λ³Έ λ²ˆλ“€λ³΄λ‹€ 30% κ°€λŸ‰ 크기 λ•Œλ¬Έμ— λ°˜λ“œμ‹œ 지원 λ²”μœ„λ₯Ό 잘 κ³ λ €ν•˜μ—¬ λΆˆν•„μš”ν•˜κ²Œ λ²ˆλ“€ 크기λ₯Ό λŠ˜λ¦¬μ§€ μ•Šλ„λ‘ μœ μ˜ν•΄μ•Ό ν•œλ‹€.

import Calendar from '@toast-ui/calendar/ie11';

API λ§ˆμ΄κ·Έλ ˆμ΄μ…˜

v2λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ API λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄ ν•„μš”ν•œ APIλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 진행 λ‹¨μœ„λŠ” 크게 κΈ°λŠ₯ κ°œμ„ , λ³€κ²½, 제거 둜 κ΅¬λΆ„λœλ‹€.

  • κΈ°λŠ₯ κ°œμ„ : κΈ°λŠ₯이 κ°œμ„ λ˜κ±°λ‚˜ μƒˆλ‘œ μΆ”κ°€λœ API
  • λ³€κ²½: κΈ°λŠ₯은 μœ μ§€λ˜λ‚˜ 이름, νƒ€μž… 등이 λ³€κ²½λœ API
  • 제거: λΆˆν•„μš”ν•˜κ±°λ‚˜ μŠ€νŽ™ μ•„μ›ƒμœΌλ‘œ 제거된 API

v2μ—μ„œλŠ” λ‚ μ§œλ‚˜ μ‹œκ°„μ„ 선택할 λ•Œμ˜ μ˜μ—­μ„ λ‚˜νƒ€λ‚΄λŠ” creationGuideλŠ” gridSelection으둜 λ³€κ²½λ˜μ—ˆλ‹€. 각 νŒ¨λ„μ„ μ‘°μ ˆν•˜λ˜ vpanelSplitterλŠ” panelResizer둜 μš©μ–΄κ°€ λ³€κ²½λ˜μ—ˆλ‹€. daygridλ‚˜ dayGridSchedule처럼 ν†΅μΌλ˜μ§€ μ•Šμ€ μš©μ–΄λ“€μ€ dayGridλ‚˜ timeGrid처럼 ν†΅μΌλ˜μ—ˆλ‹€.

scheduleμ—μ„œ event둜 μš©μ–΄ λ³€κ²½

v2μ—μ„œλŠ” μΌμ •μ΄λΌλŠ” μ˜λ―Έμ— 맞게 κΈ°μ‘΄ scheduleμ—μ„œ event둜 넀이밍이 λ³€κ²½λ˜μ—ˆλ‹€. λ‹¨μˆœν•œ λ³€μˆ˜λͺ… 뿐만 μ•„λ‹ˆλΌ schedule이 ν¬ν•¨λœ μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ, μΈμŠ€ν„΄μŠ€ 이벀트 λ“±μ˜ κ΄€λ ¨λœ API λͺ¨λ‘κ°€ event둜 λ³€κ²½λ˜μ—ˆλ‹€.

currentTimeIndicator, currentTimeLineμ—μ„œ nowIndicator둜 μš©μ–΄ λ³€κ²½

v1μ—μ„œλŠ” ν˜„μž¬ μ‹œκ°„μ„ μ„ λ‚˜νƒ€λ‚΄λŠ” μš©μ–΄λ‘œ currentTimeIndicatorκ³Ό currentTimeLine이 ν˜Όμš©λ˜μ—ˆλ‹€. v2μ—μ„œλŠ” 이λ₯Ό nowIndicator둜 ν†΅μΌν–ˆλ‹€.

κΈ°λŠ₯ κ°œμ„ 

λ Œλ”λ§ μ΅œμ ν™”

v1μ—μ„œλŠ” μΊ˜λ¦°λ”μ˜ λ Œλ”λ§μ„ 직접적인 DOM μ‘°μž‘μœΌλ‘œ μ²˜λ¦¬ν–ˆλ‹€. 이에 따라 μΊ˜λ¦°λ”λ₯Ό μ‘°μž‘ν•  λ•Œλ§ˆλ‹€ λΆˆν•„μš”ν•œ λ Œλ”λ§μ΄ 일어날 수 μžˆμ—ˆλ‹€.

v2μ—μ„œλŠ” 가상 DOM을 μ΄μš©ν•΄ λΆˆν•„μš”ν•œ λ Œλ”λ§μ„ 쀄여 λ Œλ”λ§ 속도λ₯Ό κ°œμ„ ν•˜κ³  μΆ”ν›„ μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(SSR)을 μ§€μ›ν•˜κΈ° μœ„ν•΄ preactλ₯Ό λ„μž…ν•˜μ˜€λ‹€. 이에 따라 μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ μ‚¬μš© μ‹œ λ Œλ”λ§μ„ μ œμ–΄ν•˜λŠ” force, silent λ“±μ˜ νŒŒλΌλ―Έν„°κ°€ μ œκ±°λ˜μ—ˆκ³  μΊ˜λ¦°λ” λ‚΄λΆ€μ˜ μƒνƒœμ— 따라 λ Œλ”λ§μ΄ μ œμ–΄λ˜μ–΄ μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  λ•Œ λ Œλ”λ§μ„ μ œμ–΄ν•  수 μ—†κ²Œ λ˜μ—ˆλ‹€.

ν…Œλ§ˆ κ°œμ„ 

ν…Œλ§ˆκ°€ κ°œμ„ λ˜μ—ˆλ‹€. .으둜 μ—°κ²°λœ λ¬Έμžμ—΄ ν‚€ κ°’μœΌλ‘œ ν…Œλ§ˆλ₯Ό μ§€μ •ν•˜λŠ” λ°©μ‹μ—μ„œ 쀑첩 객체λ₯Ό μ΄μš©ν•œ λ°©μ‹μœΌλ‘œ κ°œμ„ λ˜μ—ˆλ‹€. 이에 따라 setTheme λ©”μ„œλ“œλ„ 쀑첩 객체λ₯Ό νŒŒλΌλ―Έν„°λ‘œ λ°›μ•„ μ²˜λ¦¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ°œμ„ λ˜μ—ˆλ‹€. μžμ„Έν•œ 사항은 ν…Œλ§ˆμ—μ„œ 확인할 수 μžˆλ‹€.

// v1
calendar.setTheme({
  'common.dayName.color': '#333',
});
// v2
calendar.setTheme({
  common: {
    dayName: {
      color: '#333',
    },
  },
});

v1μ—μ„œ μ‚¬μš©ν•˜λ˜ λ‹€μŒ ν”„λ‘œνΌν‹°λ“€μ΄ ν…Œλ§ˆμ—μ„œ μ œκ±°λ˜κ±°λ‚˜ 이름이 λ³€κ²½λ˜μ—ˆλ‹€. 각쒅 색상 κ°’λ“€κ³Ό μ£Όκ°„/μΌκ°„λ·°μ˜ 각 νŒ¨λ„μ˜ μ™Όμͺ½ μ˜μ—­μ˜ λ„ˆλΉ„λ₯Ό μ œμ™Έν•œ ν…Œλ§ˆ 값듀은 μ „λΆ€ μ œκ±°λ˜μ—ˆλ‹€.

  • month.dayname.height
  • month.dayname.paddingLeft
  • month.dayname.paddingRight
  • month.dayname.fontSize
  • month.dayname.fontWeight
  • month.dayname.textAlign
  • month.day.fontSize
  • month.schedule 전체
  • month.moreView.paddingBottom
  • month.moreViewTitle.height
  • month.moreViewTitle.marginBottom
  • month.moreViewTitle.borderBottom
  • month.moreViewTitle.padding
  • month.moreViewList.padding
  • week.dayname.height
  • week.dayname.paddingLeft
  • week.dayname.textAlign
  • week.vpanelSplitter.height
  • week.vpanelSplitter.border -> week.panelResizer.border
  • week.daygridLeft.paddingRight
  • week.timegridLeft.fontSize
  • week.timegridLeftTimezoneLabel.height
  • week.timegridOneHour.height
  • week.timegridHalfHour.height
  • week.timegridHalfHour.borderBottom -> week.timeGridHalfHourLine.borderBottm
  • week.timegridHorizontalLine.borderBottom -> week.timeGridHourLine.borderBottom
  • week.timegrid.paddingRight
  • week.timegridSchedule 전체
  • week.currentTime -> week.nowIndicatorLabel
  • week.currentTime.fontSize
  • week.currentTime.fontWeight
  • week.currentTimeLinePast -> week.nowIndicatorPast
  • week.currentTimeLineBullet -> week.nowIndicatorBullet
  • week.currentTimeLineToday -> week.nowIndicatorToday
  • week.currentTimeLineFuture -> week.nowIndicatorFuture
  • week.pastTime.fontWeight
  • week.futureTime.fontWeight
  • week.creationGuide.fontSize
  • week.creationGuide.fontWeight
  • week.dayGridSchedule 전체

제거된 ν…Œλ§ˆ 값은 λŒ€μ‹  CSSλ₯Ό ν™œμš©ν•΄ 속성을 μ μš©ν•  수 μžˆλ‹€. λ‹€μŒμ€ 제거된 ν…Œλ§ˆ 값에 μ—°κ΄€λœ CSS νŒŒμΌμ΄λ‹€.

제거된 ν…Œλ§ˆ κ°’ μ—°κ΄€ 파일 μœ„μΉ˜
month.dayname κ΄€λ ¨ dayNames.css
month.shedule κ΄€λ ¨ dayGrid.css
month.moreView κ΄€λ ¨ seeMore.css
week.dayname κ΄€λ ¨ dayNames.css
week.dayGridLeft κ΄€λ ¨ allday.css
week.timeGridLeft κ΄€λ ¨ timeColumn.css
week.timeGridSchedule κ΄€λ ¨ time.css
week.gridSelection(v1의 creationGuide) κ΄€λ ¨ column.css
week.dayGridSchedule κ΄€λ ¨ dayGrid.css

view κ΄€λ ¨ νƒ€μž… κ°œμ„ 

view와 κ΄€λ ¨λœ μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œμ˜ νŒŒλΌλ―Έν„° 및 λ°˜ν™˜ νƒ€μž…μ΄ μ’€ 더 λͺ…ν™•νžˆ λ‚˜μ˜€κ²Œ λ˜μ—ˆλ‹€. μΊ˜λ¦°λ”μ—μ„œ μ‚¬μš©ν•˜λŠ” 뷰의 μ’…λ₯˜λŠ” μ›”κ°„λ·°, μ£Όκ°„λ·° 및 μΌκ°„λ·°μ˜ 3가지 뷰둜 λ‚˜λˆ μ§€λ©° μ΄λŠ” μΊ˜λ¦°λ”μ—μ„œ 'month', 'week', 'day'의 νƒ€μž…μ„ 가지도둝 νƒ€μž…μ„ λͺ…ν™•νžˆ ν•˜μ˜€λ‹€.

λ©”μ„œλ“œλͺ… 변경사항
changeView λ³€κ²½ν•˜λ €λŠ” λ·° 이름 νŒŒλΌλ―Έν„°μ˜ νƒ€μž… κ°œμ„ 
getViewName λ°˜ν™˜λ˜λŠ” λ·° μ΄λ¦„μ˜ νƒ€μž… κ°œμ„ 

taskView, eventView νƒ€μž… κ°œμ„ 

μ£Όκ°„/μΌκ°„λ·°μ—μ„œ milestone, task νŒ¨λ„μ„ ν‘œμ‹œν• μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” taskView μ˜΅μ…˜κ³Ό allday, time νŒ¨λ„μ„ ν‘œμ‹œν• μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” eventView μ˜΅μ…˜μ˜ νƒ€μž…μ΄ λͺ…ν™•ν•˜κ²Œ λ³€κ²½λ˜μ—ˆλ‹€.

const calendar = new Calendar('#calendar', {
  week: {
    taskView: ['task'],
    eventView: ['time'],
  },
});

λ³€κ²½

μ˜΅μ…˜ 변경사항

μ•„λž˜μ˜ μ˜΅μ…˜μ΄ μ˜΅μ…˜ 객체 λ‚΄μ—μ„œ μœ„μΉ˜κ°€ μ΄λ™ν•˜κ±°λ‚˜ ν…Œλ§ˆλ‘œ μ΄λ™λ˜μ—ˆλ‹€.

μ˜΅μ…˜ 변경사항 μΆ”κ°€ μ„€λͺ…
options.taskView options.week.taskView
options.eventView options.week.eventView
options.disableDblClick options.gridSelection.enableDblClick 기본값이 falseμ—μ„œ true둜 변경됨
options.disableClick options.gridSelection.enableClick 기본값이 falseμ—μ„œ true둜 변경됨
options.timezone.offsetCalculator options.timezone.customOffsetCalculator
options.month.grid ν…Œλ§ˆλ‘œ 이동
options.month.moreLayerSize ν…Œλ§ˆλ‘œ 이동
options.month.isAlways6Week options.month.isAlways6Weeks둜 λ³€κ²½
options.month.daynames options.month.dayNames둜 λ³€κ²½
options.week.daynames options.week.dayNames둜 λ³€κ²½

μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ 변경사항

v1의 creation popupμ΄λΌλŠ” λͺ…칭이 v2μ—μ„œ form popupμ΄λΌλŠ” λͺ…μΉ­μœΌλ‘œ 변경됨에 따라 νŒμ—…μ„ λ„μš°λŠ” μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ openCreationPopup도 openFormPopup으둜 λ³€κ²½λ˜μ—ˆλ‹€.

// v1
calendar.openCreationPopup(schedule);
// v2
calendar.openFormPopup(event);

νŠΉμ • μΊ˜λ¦°λ” IDλ₯Ό 가진 일정듀을 보이지 μ•Šκ²Œ ν•˜κ±°λ‚˜ 보이게 ν•˜λŠ” v1의 toggleSchedules μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œλŠ” 보닀 μ •ν™•ν•œ 의미λ₯Ό μ§€λ‹Œ setCalendarVisibility둜 λ³€κ²½λ˜μ—ˆλ‹€. λ‹€μŒμ€ μΊ˜λ¦°λ” idκ°€ '1'인 일정듀을 보이지 μ•Šκ²Œ ν•˜λŠ” μ˜ˆμ œλ‹€.

// v1
calendar.toggleSchedules('1', true);
// v2
calendar.setCalendarVisibility('1', false);

μΈμŠ€ν„΄μŠ€ 이벀트 변경사항

v1의 clickMore μΈμŠ€ν„΄μŠ€ μ΄λ²€νŠΈκ°€ μ’€ 더 λͺ…ν™•ν•œ 의미λ₯Ό 가진 clickMoreEventsBtn으둜 λ³€κ²½λ˜μ—ˆλ‹€.

// v1
calendar.on('clickMore', (event) => {
  console.log(event.date, event.target);
});
// v2
calendar.on('clickMoreEventsBtn', (event) => {
  console.log(event.date, event.target);
});

ν…œν”Œλ¦Ώ 변경사항

v1의 timegridCurrentTime이 timegridNowIndicatorLabel둜 이름이 λ³€κ²½λ˜μ—ˆλ‹€.

제거

v2μ—μ„œλŠ” bower에 λŒ€ν•œ 지원과 jquery plugin에 λŒ€ν•œ 지원을 μ€‘λ‹¨ν–ˆλ‹€.

λ Œλ”λ§ κ΄€λ ¨ νŒŒλΌλ―Έν„° λ³€κ²½ 사항

λ‹€μŒ μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œλ“€μ˜ force, silent λ˜λŠ” immediately νŒŒλΌλ―Έν„°κ°€ μ œκ±°λ˜μ—ˆλ‹€. v2μ—μ„œλŠ” preactλ₯Ό ν†΅ν•œ λ Œλ”λ§ 방식을 μ‚¬μš©ν•˜λ―€λ‘œ μΈμœ„μ μœΌλ‘œ λ Œλ”λ§μ„ μ‘°μ ˆν•  수 μžˆλŠ” ν•΄λ‹Ή νŒŒλΌλ―Έν„°λ“€μ€ μ œκ±°λ˜μ—ˆλ‹€.

  • changeView
  • clear
  • createEvents (v1의 createSchedules)
  • deleteEvent (v1의 deleteSchedule)
  • render
  • setCalendarColor
  • setOptions
  • updateEvent