You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
4.8 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/* 아리 — '오늘의 여정' 데이터 (클린 화이트 테마)
하루를 4단계 흐름으로 보고, 작업↔사람↔미팅을 의미 있는 링크로 연결한다.
링크는 DOM 위치를 측정해 실시간 베지어 곡선으로 그린다. */
(function () {
/* 클린 화이트 팔레트 */
const C = {
blue: "#4f72e0", coral: "#df7256", green: "#4e9b66",
violet: "#8b6fd4", amber: "#e0a23c", ink: "#29241f",
};
/* ---------- 사람 ---------- */
const people = [
{ id: "jiwoo", name: "지우", ini: "지", c: C.blue, me: true, tasks: 4, role: "나 · PM" },
{ id: "hyunwoo", name: "현우", ini: "현", c: C.violet, tasks: 2, role: "디자인" },
{ id: "minseo", name: "민서", ini: "민", c: C.green, tasks: 2, role: "팀 운영" },
{ id: "jaeho", name: "재호", ini: "재", c: C.coral, tasks: 2, role: "데이터" },
{ id: "sua", name: "수아", ini: "수", c: C.ink, tasks: 3, role: "리서치" },
];
const P = Object.fromEntries(people.map((p) => [p.id, p]));
/* ---------- 4단계 ---------- */
const stages = [
{ id: "s1", title: "아침 준비", time: "06:40 09:00", c: C.blue, n: "2" },
{ id: "s2", title: "오전 집중", time: "09:00 13:00", c: C.coral, n: "4" },
{ id: "s3", title: "오후 협업", time: "13:00 17:00", c: C.violet, n: "4" },
{ id: "s4", title: "마무리 & 내일", time: "17:00 23:00", c: C.ink, n: "4" },
];
/* ---------- 단계별 카드 ---------- */
const cards = {
s1: [
{ node: "m-sleep", kind: "routine", ic: "moon", title: "수면 7시간 12분", meta: "평소만큼 푹 잔 밤", tag: "컨디션 좋음", tool: "tick", toolC: "ok" },
{ node: "m-brief", kind: "routine", ic: "sun", title: "아침 브리핑 확인", meta: "맑음 24° · 출근 23분", tag: "4분 빠름", tool: "cal" },
],
s2: [
{ node: "t-report", kind: "task", title: "분기 리포트 초안 마무리", meta: "경영 전략 · 우선", who: "jiwoo", done: false },
{ node: "t-wire", kind: "task", title: "온보딩 와이어프레임 피드백", meta: "온보딩 · 우선", who: "hyunwoo", done: false },
{ node: "t-interview", kind: "task", title: "사용자 인터뷰 5건 정리", meta: "온보딩 · 리서치", who: "sua", done: false },
{ node: "t-welcome", kind: "task", title: "신규 입사자 환영 메일", meta: "팀 운영", who: "minseo", done: true },
],
s3: [
{ node: "k-stand", kind: "meet", time: "13:00", title: "팀 데일리 스탠드업", meta: "프로덕트 · 15분", who: "minseo" },
{ node: "k-design", kind: "meet", time: "14:00", title: "디자인 리뷰", meta: "온보딩 · 45분", who: "hyunwoo" },
{ node: "k-strat", kind: "meet", time: "15:00", title: "분기 전략 미팅", meta: "경영진 · 60분", who: "jaeho", soon: true },
{ node: "k-11", kind: "meet", time: "16:30", title: "1:1 — 민서님", meta: "팀 · 30분", who: "minseo" },
],
s4: [
{ node: "w-focus", kind: "tile", hi: true, ic: "target", tt: "지금 집중", ts: "분기 리포트 마무리" },
{ node: "w-retro", kind: "tile", ic: "send", tt: "회고 배포", ts: "팀 채널 공유" },
{ node: "w-health", kind: "tile", ic: "heart", tt: "운동 30분", ts: "주 3/4회" },
{ node: "w-next", kind: "tile", ic: "cal", tt: "내일 준비", ts: "일정 4건" },
],
};
/* ---------- 의미 있는 흐름 링크 (from → to, 둘 다 node) ---------- */
const links = [
{ from: "m-brief", to: "t-report", c: C.blue },
{ from: "t-report", to: "k-strat", c: C.coral },
{ from: "t-wire", to: "k-design", c: C.violet },
{ from: "t-interview", to: "k-11", c: C.green, dash: true },
{ from: "t-welcome", to: "k-stand", c: C.green, dash: true },
{ from: "k-strat", to: "w-focus", c: C.ink },
{ from: "k-design", to: "w-retro", c: C.violet, dash: true },
{ from: "k-11", to: "w-next", c: C.green, dash: true },
];
/* ---------- 하단 작업 테이블 ---------- */
const rows = [
{ star: true, node: "t-report", nm: "분기 리포트 초안", st: "prog", stt: "진행중", date: "09:00", who: "jiwoo" },
{ node: "t-wire", nm: "온보딩 와이어프레임 피드백", st: "review", stt: "검토", date: "11:00", who: "hyunwoo" },
{ node: "t-interview", nm: "사용자 인터뷰 5건 정리", st: "prog", stt: "진행중", date: "13:30", who: "sua" },
{ star: true, node: "t-welcome", nm: "신규 입사자 환영 메일", st: "done", stt: "완료", date: "08:30", who: "minseo" },
{ node: "t-card", nm: "구독 결제 카드 갱신", st: "sched", stt: "예정", date: "18:00", who: "jiwoo" },
];
window.AriJourney = { C, people, P, stages, cards, links, rows };
})();