OPEN_GRID 0.4.0 을 공개합니다. 이번 릴리스의 주인공은 단연 그리드와 그리드 사이로 데이터를 옮기는 기능입니다.
한 그리드의 행을 잡아 다른 그리드로 드래그하면 그대로 이동하고, 두 그리드의 컬럼 구조가 달라도 필드 매칭(매핑)으로 자연스럽게 변환되어 들어갑니다.
모든 기능은 AI 페어프로그래밍으로 설계·구현하고, 기존 데모를 전수 점검해 회귀 없음을 확인한 뒤 배포했습니다.
🔀 그리드 ↔ 그리드 데이터 이동 (이번 릴리스의 핵심)
두 그리드에 draggable: true + crossGrid: true 만 켜면, 행 핸들(⠿)을 잡고 다른 그리드로 끌어 이동할 수 있습니다.
여러 행을 선택해 한 번에 옮길 수 있고, 드래그 중에는 삽입 위치를 ▶━━◀ 마커로 또렷하게 보여줍니다.
const common = {
columns, selection: 'multiple',
draggable: true,
crossGrid: true, // 양쪽 그리드 모두 켜기
onGridDropBefore: (e) => { if (locked) return false; }, // 변경전(취소 가능)
onGridDropAfter: (e) => save(e.rows), // 변경후(저장)
onGridDropComplete: (e) => toast('이동 완료'), // 완료시
};
new OpenGrid('#left', common);
new OpenGrid('#right', common);
- 3단계 이벤트 — 변경전 / 변경후 / 완료시로 나뉘어, 검증·저장·알림을 단계별로 처리합니다.
- 화살표 셔틀 — 드래그 대신 체크박스 +
▶ ◀버튼으로 옮기는 UI도 제공합니다(createGridShuttle). - 이동 결과는 보낸 쪽
removed· 받은 쪽added상태로 추적되어, 변경분만 서버에 저장할 수 있습니다.
🔗 컬럼이 다른 그리드 — 필드 매칭(매핑)
소스와 타깃의 필드 이름이 다를 때를 위한 crossGridMapping 옵션입니다.
- interactive — 스키마가 다르면 매핑 UI(모달)가 떠서 “타깃 필드 ← 소스 필드”를 직접 연결합니다. 확인하면 변환 스크립트가 자동 생성되어, 복사해 코드에 baking 하면 다음부터는 모달 없이 자동 변환됩니다.
- 함수 매핑 —
crossGridMapping: (src) => ({ dept: src.team, memo: src.note })처럼 미리 정해두면 모달 없이 즉시 변환됩니다.
↕️ 가변 행 높이 (autoHeight)
autoHeight: true + 컬럼 wrap: true 조합으로, 긴 텍스트를 자르지 않고 줄바꿈하며 행 높이가 내용에 맞춰 자동으로 늘어납니다.
💱 통화 포맷
숫자 컬럼을 통화 기호와 함께 표시합니다. 포맷 문자열로 직접('₩#,##0'·'$#,##0.00'·'¥#,##0'·음수 괄호 '₩#,##0;(₩#,##0)') 지정하거나, ISO 코드(currency: 'JPY')로 로케일 통화 포맷을 자동 적용할 수 있습니다. 가이드에는 사용 가능한 통화코드 162종 표를 함께 실었습니다.
🛠️ 그 외
- 헤더 드래그로 조절한 컬럼 너비가 재계산 후에도 유지되도록 수정(특히 가변 행 높이 모드).
✅ 품질 — 기존 데모 전수 점검
새 코어로 교체한 뒤, 기존 데모를 그냥 믿지 않고 실제로 전부 실행해 확인했습니다.
- 단위 테스트 354건 통과.
- 기존 데모 53개 섹션 × Vanilla·React·jQuery = 159개를 헤드리스로 로드, 런타임 에러 0건.
- 모든 변경이 가산적이라 기존 API는 그대로 — 기존 예제 코드 수정 불필요.
📦 설치 / 링크
npm i open-grid@0.4.0
<link rel="stylesheet" href="https://unpkg.com/open-grid@0.4.0/dist/open-grid-base.css">
<script type="module">
import { OpenGrid } from 'https://unpkg.com/open-grid@0.4.0/dist/open-grid.js';
</script>
- 📥 다운로드: open-grid-v0.4.0.zip
- 🧪 데모: 그리드 간 이동 데모 · 전체 라이브 데모
- 📖 가이드: 개발 가이드
OPEN_GRID 0.4.0 · MIT License · framework-agnostic (Vanilla / React / Vue / jQuery / Angular)