Add application codebase: PDF annotation for e-Court
Next.js 14 + Drizzle/PostgreSQL + SSE realtime sync — highlight, freehand, comment, bookmark + ฟีเจอร์ต่อยอด F1–F19 (edit/move, undo/redo, shapes, redaction, export PDF/CSV, reply, resolve, search, summary, textbox, stamp, version history) Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
parent
6fd0c3174f
commit
eddcec28c7
60 changed files with 15055 additions and 0 deletions
9
utils/csv.ts
Normal file
9
utils/csv.ts
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// CSV field สำหรับ export สรุปหมายเหตุ (F16/D3) — route export-csv ใช้ร่วม
|
||||
|
||||
/** ครอบ field ด้วย double quote (RFC 4180) แล้ว escape `"` เป็น `""`
|
||||
* FIX-6: field ที่ขึ้นต้นด้วย = + - @ หรือ TAB/CR ต้องนำหน้าด้วย '
|
||||
* ก่อนครอบ quote — กัน Excel/Sheets ตีความค่าเป็นสูตรเมื่อเปิดไฟล์ (OWASP CSV Injection) */
|
||||
export function csvField(v: string): string {
|
||||
const guarded = /^[=+\-@\t\r]/.test(v) ? `'${v}` : v;
|
||||
return `"${guarded.replace(/"/g, '""')}"`;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue