legal-doc-editor 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -3
- package/dist/LegalEditor.d.ts +1 -1
- package/dist/clauses.d.ts +5 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +377 -309
- package/dist/io.d.ts +1 -0
- package/dist/numbering.d.ts +2 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
계약서·합의서 같은 **법률문서를 만드는 React 에디터**입니다.
|
|
6
6
|
|
|
7
7
|
- **조·항·호 자동 번호**: 조를 넣거나 옮기면 제1조, ①, 1. 번호가 알아서 다시 매겨져요
|
|
8
|
+
- **입증방법 호증 번호**: `갑 제1호증`, `갑 제2호증`… 증거를 중간에 넣거나 빼도 호증 번호가 알아서 다시 매겨져요
|
|
8
9
|
- **`{{변수}}` 채우기**: 본문에 `{{갑}}`을 입력하면 입력칸이 생기고, 값을 넣으면 문서에 반영돼요
|
|
9
10
|
- **한글(.hwp·.hwpx)·Word(.docx·.doc) 열기·저장**: 일반 문단으로 쓴 계약서도 "제N조", "①", "1." 패턴을 인식해서 조·항·호 구조로 바꿔요. "제1조(목적) 이 계약은…"처럼 한 줄에 붙은 조는 제목과 본문으로 나눠요
|
|
10
11
|
- 저장은 `.docx`, `.hwpx`, `.hwp`(HWP 5.0)예요. `.hwpx`는 한글 2014 이상에서 열려요
|
|
@@ -50,11 +51,14 @@ export default function Page() {
|
|
|
50
51
|
| `h2` | 조 | 제N조 |
|
|
51
52
|
| `h3` | 소제목 (청구취지·고소이유 등) | 가운데 정렬 |
|
|
52
53
|
| `p[data-num="1"~"4"]` | 번호 문단 (소장식) | 1. → 가. → (1) → (가), 제목·조·소제목마다 1부터 |
|
|
54
|
+
| `p[data-evidence="갑"\|"을"\|"병"]` | 호증 문단 (입증방법) | 갑 제1호증 → 갑 제2호증, 당사자별로 문서 전체에서 이어 셈. 번호 문단과 함께 쓰면 `1. 갑 제1호증` |
|
|
53
55
|
| `table` | 표 | 표 |
|
|
54
56
|
| `ol > li` | 항 | ①, ② |
|
|
55
57
|
| `ol ol > li` | 호 | 1., 2. |
|
|
56
58
|
| `span[data-var]` 또는 `{{이름}}` | 변수 | 입력값 |
|
|
57
59
|
|
|
60
|
+
툴바 **호증** 버튼은 누를 때마다 갑 → 을 → 해제로 바뀌고, 호증 문단 끝에서 Enter를 누르면 다음 호증이 이어져요. 파일을 열 때는 입증방법·증명방법·증거방법 소제목 아래의 `갑 제N호증`이 차례대로일 때만 호증 문단으로 바꿔요. `갑 제1호증의 1` 같은 가지번호, `내지`로 묶은 줄, 본문 속 `(갑 제1호증)` 참조는 글자로 두니 번호가 바뀌면 직접 고쳐 주세요.
|
|
61
|
+
|
|
58
62
|
### 판례·법령 인용
|
|
59
63
|
|
|
60
64
|
본문에 적힌 인용을 알아보고 밑줄을 그어요. 마우스를 올리면 주소가 보이고, Ctrl(⌘)+클릭하면 국가법령정보센터에서 열려요 (읽기 전용일 때는 그냥 클릭).
|
|
@@ -86,7 +90,7 @@ export default function Page() {
|
|
|
86
90
|
|
|
87
91
|
### 조항 라이브러리
|
|
88
92
|
|
|
89
|
-
`clauses`를 넘기면 오른쪽 패널에 조항 목록이 생겨요. 검색칸에서
|
|
93
|
+
`clauses`를 넘기면 오른쪽 패널에 조항 목록이 생겨요. 분류 칩(전체·일반·기간·의무·책임·종료·분쟁)으로 좁히거나 검색칸에서 제목·분류로 찾고, 누르면 커서 위치에 조항이 들어가요. `전체`에서는 분류별로 묶어 보여줘요. 조항 안의 `{{변수}}`는 입력칸에 바로 나타나고 뒤쪽 조 번호는 알아서 밀려요.
|
|
90
94
|
|
|
91
95
|
```tsx
|
|
92
96
|
import { LegalEditor, clauses } from 'legal-doc-editor'
|
|
@@ -141,6 +145,7 @@ import { LegalEditor, clauses } from 'legal-doc-editor'
|
|
|
141
145
|
| --- | --- |
|
|
142
146
|
| `<LegalEditor content values onChange onValuesChange editable autoFees searchCases clauses hwpWasmUrl />` | 에디터 컴포넌트 |
|
|
143
147
|
| `clauses` | 기본 조항 목록 `{ id, title, category, html }[]` |
|
|
148
|
+
| `groupClauses(clauses, { category, query })` | 조항을 분류별로 묶음 `[분류, 조항[]][]` (분류 선택·검색 적용) |
|
|
144
149
|
| `formatCaseCitation(result)` | 판례 검색 결과 → `대법원 2016. 4. 28. 선고 2015다12345 판결` |
|
|
145
150
|
| `calcStampFee(소가, { electronic })` | 소장 인지액(원) |
|
|
146
151
|
| `calcPaymentOrderStampFee(청구금액)` | 지급명령 신청서 인지대(원) — 종이 신청 기준 |
|
|
@@ -156,9 +161,9 @@ import { LegalEditor, clauses } from 'legal-doc-editor'
|
|
|
156
161
|
| `toHwp(editor.getJSON(), values, { wasm })` | `.hwp`(HWP 5.0) Blob 생성. `wasm`은 WASM 주소나 바이트(선택) |
|
|
157
162
|
| `toPlainHtml(editor.getJSON(), values)` | 번호가 텍스트로 들어간 독립 HTML |
|
|
158
163
|
| `fromFile(file)` | `.docx` / `.doc` / `.hwp` / `.hwpx`를 에디터용 HTML로 변환 (`fromDocx`, `fromDoc`, `fromHwp`도 있음) |
|
|
159
|
-
| `normalizeLegalHtml(html)` | "제N조 / ① / 1." 문단을
|
|
164
|
+
| `normalizeLegalHtml(html)` | "제N조 / ① / 1. / 갑 제N호증" 문단을 조·항·호·호증 구조로 변환 |
|
|
160
165
|
| `Variable` | 다른 Tiptap 에디터에 넣어 쓸 수 있는 변수 확장 |
|
|
161
|
-
| `Numbering` |
|
|
166
|
+
| `Numbering` | 번호·호증 문단 확장 (`setNumbering(1~4 \| null)`, `setEvidence('갑' \| '을' \| '병' \| null)`, Tab·Shift+Tab 단계 변경, 맨 앞 Backspace 해제) |
|
|
162
167
|
| `findCitations(text)` | 글에서 판례·법령 인용 찾기 → `{ type: 'case' \| 'law', text, from, to, url }[]` |
|
|
163
168
|
| `CitationLink` | 인용에 밑줄·링크를 덧입히는 확장 (`LegalEditor`에는 이미 들어 있음) |
|
|
164
169
|
|
package/dist/LegalEditor.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Values } from './variable';
|
|
2
2
|
import { type CaseResult } from './citation';
|
|
3
|
-
import type
|
|
3
|
+
import { type Clause } from './clauses';
|
|
4
4
|
import { type CourtFeeOptions } from './fees';
|
|
5
5
|
import './legal.css';
|
|
6
6
|
export interface LegalEditorProps {
|
package/dist/clauses.d.ts
CHANGED
|
@@ -5,4 +5,9 @@ export interface Clause {
|
|
|
5
5
|
/** 조 하나: h2(조 제목) + 본문(p) 또는 항(ol) · 호(중첩 ol). 조 번호는 자동으로 매겨지므로 적지 않는다 */
|
|
6
6
|
html: string;
|
|
7
7
|
}
|
|
8
|
+
/** 분류별로 묶음 (분류 순서는 목록에 처음 나온 순). category를 주면 그 분류만, query는 분류·제목에서 찾음. 빈 묶음은 뺌 */
|
|
9
|
+
export declare function groupClauses(list: Clause[], { category, query }?: {
|
|
10
|
+
category?: string;
|
|
11
|
+
query?: string;
|
|
12
|
+
}): [string, Clause[]][];
|
|
8
13
|
export declare const clauses: Clause[];
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { calcStampFee, calcPaymentOrderStampFee, calcServiceFee, withCourtFees,
|
|
|
8
8
|
export type { CourtFeeOptions, Procedure } from './fees';
|
|
9
9
|
export { toKoreanAmount, formatAmount, parseAmount } from './amount';
|
|
10
10
|
export { templates } from './templates';
|
|
11
|
-
export { clauses } from './clauses';
|
|
11
|
+
export { clauses, groupClauses } from './clauses';
|
|
12
12
|
export type { Clause } from './clauses';
|
|
13
13
|
export type { Template } from './templates';
|
|
14
14
|
export type { Values } from './variable';
|